Ansible adhoc command execute with sudo

I need execute ansible adhoc command.

$ ansible somehost -m command -a "cat /etc/passwd"-u someuser --ask-sudo-pass

I have an user account (someuser) with sudo privilege. Usually I became root sudo su -.

How to use adhoc command with sudo su - ?

ansible version is 2.0.0.2


Solution 1:

If you have SSH keys shared to your servers in your inventory and you're going to want to sudo to root, you can further reduce the command to this:

$ ansible all -m command -a "docker info" -u myuser --become --ask-become-pass

Solution 2:

For Ansible version 1.9 or newer you need to use --ask-become-pass instead. For older versions --ask-sudo-pass should work.

Become (Privilege Escalation)

Before 1.9 Ansible mostly allowed the use of sudo and a limited use of su to allow a login/remote user to become a different user and execute tasks, create resources with the 2nd user’s permissions. As of 1.9 become supersedes the old sudo/su, while still being backwards compatible. This new system also makes it easier to add other privilege escalation tools like pbrun (Powerbroker), pfexec, dzdo (Centrify), and others.

Solution 3:

The correct ansible command is

ansible all -m command -a "docker info" -u myuser --become-user root --ask-pass --ask-become-pass