diff --git a/awx/main/conf.py b/awx/main/conf.py
index d8e8b97206..ed15ea2ddb 100644
--- a/awx/main/conf.py
+++ b/awx/main/conf.py
@@ -408,6 +408,18 @@ register(
unit=_('seconds'),
)
+register(
+ 'DEFAULT_JOB_IDLE_TIMEOUT',
+ field_class=fields.IntegerField,
+ min_value=0,
+ default=600,
+ label=_('Default Job Idle Timeout'),
+ help_text=_('If no output is detected from ansible in this number of seconds the execution will be terminated.'),
+ 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 77eef071ae..f61f2847e7 100644
--- a/awx/main/tasks.py
+++ b/awx/main/tasks.py
@@ -1365,6 +1365,7 @@ class BaseTask(object):
'envvars': env,
'settings': {
'job_timeout': self.get_instance_timeout(self.instance),
+ 'idle_timeout': settings.DEFAULT_JOB_IDLE_TIMEOUT,
'suppress_ansible_output': True,
},
}
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..0c0b6e019a 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', '600 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 734b78597f..56b35341a9 100644
--- a/awx/ui/src/screens/Setting/Jobs/JobsEdit/JobsEdit.js
+++ b/awx/ui/src/screens/Setting/Jobs/JobsEdit/JobsEdit.js
@@ -137,6 +137,11 @@ function JobsEdit() {
config={jobs.DEFAULT_JOB_TIMEOUT}
type="number"
/>
+