diff --git a/awx/main/conf.py b/awx/main/conf.py
index d8e8b97206..cfe7ebe80d 100644
--- a/awx/main/conf.py
+++ b/awx/main/conf.py
@@ -408,6 +408,21 @@ register(
unit=_('seconds'),
)
+register(
+ 'DEFAULT_JOB_IDLE_TIMEOUT',
+ field_class=fields.IntegerField,
+ min_value=0,
+ default=0,
+ label=_('Default Job Idle Timeout'),
+ help_text=_(
+ 'If no output is detected from ansible in this number of seconds the execution will be terminated. '
+ 'Use value of 0 to used default idle_timeout is 600s.'
+ ),
+ category=_('Jobs'),
+ category_slug='jobs',
+ unit=_('seconds'),
+)
+
register(
'DEFAULT_INVENTORY_UPDATE_TIMEOUT',
field_class=fields.IntegerField,
diff --git a/awx/main/tasks.py b/awx/main/tasks.py
index daf96484cf..01c13bb661 100644
--- a/awx/main/tasks.py
+++ b/awx/main/tasks.py
@@ -1487,6 +1487,10 @@ class BaseTask(object):
},
}
+ idle_timeout = getattr(settings, 'DEFAULT_JOB_IDLE_TIMEOUT', 0)
+ if idle_timeout > 0:
+ params['settings']['idle_timeout'] = idle_timeout
+
if isinstance(self.instance, AdHocCommand):
params['module'] = self.build_module_name(self.instance)
params['module_args'] = self.build_module_args(self.instance)
diff --git a/awx/ui/src/screens/Setting/Jobs/JobsDetail/JobsDetail.test.js b/awx/ui/src/screens/Setting/Jobs/JobsDetail/JobsDetail.test.js
index afcdc3c990..9b0dda4233 100644
--- a/awx/ui/src/screens/Setting/Jobs/JobsDetail/JobsDetail.test.js
+++ b/awx/ui/src/screens/Setting/Jobs/JobsDetail/JobsDetail.test.js
@@ -64,6 +64,7 @@ describe('', () => {
);
assertDetail(wrapper, 'Maximum Scheduled Jobs', '10');
assertDetail(wrapper, 'Default Job Timeout', '0 seconds');
+ assertDetail(wrapper, 'Default Job Idle Timeout', '0 seconds');
assertDetail(wrapper, 'Default Inventory Update Timeout', '0 seconds');
assertDetail(wrapper, 'Default Project Update Timeout', '0 seconds');
assertDetail(wrapper, 'Per-Host Ansible Fact Cache Timeout', '0 seconds');
diff --git a/awx/ui/src/screens/Setting/Jobs/JobsEdit/JobsEdit.js b/awx/ui/src/screens/Setting/Jobs/JobsEdit/JobsEdit.js
index 81aedde43f..1e6d8cef73 100644
--- a/awx/ui/src/screens/Setting/Jobs/JobsEdit/JobsEdit.js
+++ b/awx/ui/src/screens/Setting/Jobs/JobsEdit/JobsEdit.js
@@ -155,6 +155,11 @@ function JobsEdit() {
config={jobs.DEFAULT_JOB_TIMEOUT}
type="number"
/>
+