Ansible adhoc команда выполняется с sudo
Мне нужно выполнить команду ansible adhoc.
$ ansible somehost -m command -a "cat /etc/passwd"-u someuser --ask-sudo-pass
У меня есть учетная запись пользователя (someuser) с sudo
привилегия. Обычно я становился root sudo su -
,
Как использовать команду adhoc с sudo su -
?
ANSIBLE версия 2.0.0.2
4 ответа
Правильная команда ANSIBLE
ansible all -m команда -a "информация о докере" -u myuser --become-user root --ask-pass --ask-становиться-pass
Если в вашем инвентаре есть общие SSH-ключи для ваших серверов, и вы захотите sudo
root, вы можете дополнительно уменьшить команду до этого:
$ ansible all -m command -a "docker info" -u myuser --become --ask-become-pass
Для Ansible версии 1.9 или новее вам необходимо использовать --ask-become-pass
вместо. Для старых версий --ask-sudo-pass
должно сработать.
До 1.9 Ansible в основном разрешал использование sudo и ограниченное использование su, чтобы позволить логин / удаленному пользователю становиться другим пользователем и выполнять задачи, создавать ресурсы с разрешениями второго пользователя. Начиная с версии 1.9 он заменяет старый sudo / su, в то же время будучи обратно совместимым. Эта новая система также упрощает добавление других инструментов повышения привилегий, таких как pbrun (Powerbroker), pfexec, dzdo (Centrify) и другие.
Я использую ad-hoc, и когда я столкнулся с этой проблемой, добавив-b --become-user ANSIBLE_USER
моя команда исправляет мою проблему. пример:
ansible all -m file -a "path=/etc/s.text state=touch" -b --become-user ansadmin
Разумеется, перед этим я предоставил пользователю Sudo доступ
Если вы предоставите Sudo доступ своему пользователю, вы можете написать так:
ansible all -m file -a "path=/var/s.text state=touch" -b --become-user root