From e55e123c01ef72bd8b436c457e6b4aa460685848 Mon Sep 17 00:00:00 2001 From: willthames Date: Thu, 4 Apr 2013 13:10:30 +1000 Subject: [PATCH] Added DEFAULT_EXECUTABLE as a constant Use DEFAULT_EXECUTABLE when no executable is passed to _low_level_command_exec Works as a standard constant - can be overridden in all the normal ways and defaults to /bin/sh Motiviation is for a user that only has /bin/bash in /etc/sudoers --- lib/ansible/constants.py | 1 + lib/ansible/runner/__init__.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ansible/constants.py b/lib/ansible/constants.py index bf1df51a87e..fb6af67afc1 100644 --- a/lib/ansible/constants.py +++ b/lib/ansible/constants.py @@ -95,6 +95,7 @@ DEFAULT_SUDO_EXE = get_config(p, DEFAULTS, 'sudo_exe', 'ANSIBLE_SUDO_EX DEFAULT_SUDO_FLAGS = get_config(p, DEFAULTS, 'sudo_flags', 'ANSIBLE_SUDO_FLAGS', '-H') DEFAULT_HASH_BEHAVIOUR = get_config(p, DEFAULTS, 'hash_behaviour', 'ANSIBLE_HASH_BEHAVIOUR', 'replace') DEFAULT_JINJA2_EXTENSIONS = get_config(p, DEFAULTS, 'jinja2_extensions', 'ANSIBLE_JINJA2_EXTENSIONS', None) +DEFAULT_EXECUTABLE = get_config(p, DEFAULTS, 'executable', 'ANSIBLE_EXECUTABLE', '/bin/sh') DEFAULT_ACTION_PLUGIN_PATH = shell_expand_path(get_config(p, DEFAULTS, 'action_plugins', 'ANSIBLE_ACTION_PLUGINS', '/usr/share/ansible_plugins/action_plugins')) DEFAULT_CALLBACK_PLUGIN_PATH = shell_expand_path(get_config(p, DEFAULTS, 'callback_plugins', 'ANSIBLE_CALLBACK_PLUGINS', '/usr/share/ansible_plugins/callback_plugins')) diff --git a/lib/ansible/runner/__init__.py b/lib/ansible/runner/__init__.py index 6fc7736dcdc..a914eea6fd9 100644 --- a/lib/ansible/runner/__init__.py +++ b/lib/ansible/runner/__init__.py @@ -527,7 +527,7 @@ class Runner(object): ''' execute a command string over SSH, return the output ''' if executable is None: - executable = '/bin/sh' + executable = C.DEFAULT_EXECUTABLE sudo_user = self.sudo_user rc, stdin, stdout, stderr = conn.exec_command(cmd, tmp, sudo_user, sudoable=sudoable, executable=executable)