Question:
How do I specify a sudo password for Ansible in non-interactive way?
I’m running Ansible playbook like this:
1 2 3 |
$ ansible-playbook playbook.yml -i inventory.ini \ --user=username --ask-sudo-pass |
But I want to run it like this:
1 2 3 |
$ ansible-playbook playbook.yml -i inventory.ini \ --user=username` **--sudo-pass=12345** |
Is there a way? I want to automate my project deployment as much as possible.
Answer:
You can pass variable on the command line via --extra-vars "name=value"
. Sudo password variable is ansible_sudo_pass
. So your command would look like:
1 2 3 |
ansible-playbook playbook.yml -i inventory.ini --user=username \ --extra-vars "ansible_sudo_pass=yourPassword" |
Update 2017: Ansible 2.2.1.0 now uses var ansible_become_pass
. Either seems to work.
Update 2021: ansible_become_pass is still working, but for now, we should use -e instead of –extra-vars