Мне нужно выполнить команду ansible adhoc.
$ ansible somehost -m command -a "cat /etc/passwd"-u someuser --ask-sudo-pass
У меня есть учетная запись пользователя (someuser) с правами sudo
. Обычно я становился root sudo su -
.
Как использовать команду adhoc с sudo su -
?
доступная версия 2.0.0.2
Правильная команда ansible:
ansible all -m command -a "docker info" -u myuser --become-user root --ask-pass --ask-стать-pass
Для Ansible версии 1.9 или новее вам нужно вместо этого использовать - ask-stay-pass
. Для более старых версий - ask-sudo-pass
должен работать.
До версии 1.9 Ansible в основном разрешал использование sudo и ограниченное использование su , чтобы разрешить авторизованному / удаленному пользователю стать другим пользователем и выполнить задачи, создавайте ресурсы с разрешениями второго пользователя. По состоянию на 1.9 стать заменяет старый sudo / su, оставаясь при этом обратным совместимый. Эта новая система также упрощает добавление других инструменты повышения привилегий, такие как pbrun (Powerbroker), pfexec , dzdo (Centrify) и др.
Если у вас есть ключи SSH, общие для ваших серверов в вашем инвентаре, и вы собираетесь использовать sudo
для получения root-прав, вы можете дополнительно сократить команду до этого:
$ ansible all -m command -a "docker info" -u myuser --become --ask-become-pass