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
Другие вопросы по тегам