From 3f5820adf8a1880fc19cc45758d7755044ec00b8 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Wed, 22 Apr 2020 20:36:48 -0400 Subject: [PATCH] Don't override ANSIBLE_SSH_ARGS for ad-hoc commands. This reverts 8beed7f4, which says: Disable ControlPersist for ad hoc commands, should avoid any issues with proot or needing to clean up sockets afterwards. Given we've switched to the much less finicky bwrap for process isolation, along with runner-based process killing, this probably isn't needed any more. --- awx/main/tasks.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 95118c5751..c4c66f74ef 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -2737,9 +2737,12 @@ class RunAdHocCommand(BaseTask): env['ANSIBLE_LOAD_CALLBACK_PLUGINS'] = '1' env['ANSIBLE_SFTP_BATCH_MODE'] = 'False' - # Specify empty SSH args (should disable ControlPersist entirely for - # ad hoc commands). - env.setdefault('ANSIBLE_SSH_ARGS', '') + # Create a directory for ControlPath sockets that is unique to each + # ad hoc command and visible inside the proot environment (when enabled). + cp_dir = os.path.join(private_data_dir, 'cp') + if not os.path.exists(cp_dir): + os.mkdir(cp_dir, 0o700) + env['ANSIBLE_SSH_CONTROL_PATH'] = cp_dir return env