summaryrefslogtreecommitdiff
path: root/bin/ansible-playbook
diff options
context:
space:
mode:
authorPaul Durivage <pauldurivage@gmail.com>2014-01-20 19:19:03 -0600
committerPaul Durivage <pauldurivage@gmail.com>2014-01-20 19:19:03 -0600
commitf72f5a20df22c9231191d15502a606cef7f2f287 (patch)
treecc7bac1035ec2fa3cbaa905e529777d99d824f5d /bin/ansible-playbook
parent4c84ba74b049986926fafa42328a5b441987ea7a (diff)
downloadansible-f72f5a20df22c9231191d15502a606cef7f2f287.tar.gz
Revert "Revert "Merge pull request #5325 from angstwad/add-su-support""
This reverts commit c17d0e0357f1f3bdc7389eaa3171444fccda8b76. Conflicts: lib/ansible/runner/connection_plugins/paramiko_ssh.py
Diffstat (limited to 'bin/ansible-playbook')
-rwxr-xr-xbin/ansible-playbook18
1 files changed, 16 insertions, 2 deletions
diff --git a/bin/ansible-playbook b/bin/ansible-playbook
index c0db66993c..646b64a764 100755
--- a/bin/ansible-playbook
+++ b/bin/ansible-playbook
@@ -83,6 +83,13 @@ def main(args):
parser.print_help(file=sys.stderr)
return 1
+ # su and sudo command line arguments need to be mutually exclusive
+ if (options.su or options.su_user or options.ask_su_pass) and \
+ (options.sudo or options.sudo_user or options.ask_sudo_pass):
+ parser.error("Sudo arguments ('--sudo', '--sudo-user', and '--ask-sudo-pass') "
+ "and su arguments ('-su', '--su-user', and '--ask-su-pass') are "
+ "mutually exclusive")
+
inventory = ansible.inventory.Inventory(options.inventory)
inventory.subset(options.subset)
if len(inventory.list_hosts()) == 0:
@@ -90,14 +97,18 @@ def main(args):
sshpass = None
sudopass = None
+ su_pass = None
if not options.listhosts and not options.syntax and not options.listtasks:
options.ask_pass = options.ask_pass or C.DEFAULT_ASK_PASS
# Never ask for an SSH password when we run with local connection
if options.connection == "local":
options.ask_pass = False
options.ask_sudo_pass = options.ask_sudo_pass or C.DEFAULT_ASK_SUDO_PASS
- (sshpass, sudopass) = utils.ask_passwords(ask_pass=options.ask_pass, ask_sudo_pass=options.ask_sudo_pass)
+ options.ask_su_pass = options.ask_su_pass or C.DEFAULT_ASK_SU_PASS
+ (sshpass, sudopass, su_pass) = utils.ask_passwords(ask_pass=options.ask_pass, ask_sudo_pass=options.ask_sudo_pass, ask_su_pass=options.ask_su_pass)
options.sudo_user = options.sudo_user or C.DEFAULT_SUDO_USER
+ options.su_user = options.su_user or C.DEFAULT_SU_USER
+
extra_vars = {}
for extra_vars_opt in options.extra_vars:
@@ -156,7 +167,10 @@ def main(args):
only_tags=only_tags,
skip_tags=skip_tags,
check=options.check,
- diff=options.diff
+ diff=options.diff,
+ su=options.su,
+ su_pass=su_pass,
+ su_user=options.su_user
)
if options.listhosts or options.listtasks or options.syntax: