Выполнение команды 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 - ?

доступная версия 2.0.0.2

5
задан 27 September 2018 в 18:08
3 ответа

Правильная команда ansible:

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

2
ответ дан 3 December 2019 в 01:09

Для Ansible версии 1.9 или новее вам нужно вместо этого использовать - ask-stay-pass . Для более старых версий - ask-sudo-pass должен работать.

Become (Повышение привилегий)

До версии 1.9 Ansible в основном разрешал использование sudo и ограниченное использование su , чтобы разрешить авторизованному / удаленному пользователю стать другим пользователем и выполнить задачи, создавайте ресурсы с разрешениями второго пользователя. По состоянию на 1.9 стать заменяет старый sudo / su, оставаясь при этом обратным совместимый. Эта новая система также упрощает добавление других инструменты повышения привилегий, такие как pbrun (Powerbroker), pfexec , dzdo (Centrify) и др.

4
ответ дан 3 December 2019 в 01:09

Если у вас есть ключи SSH, общие для ваших серверов в вашем инвентаре, и вы собираетесь использовать sudo для получения root-прав, вы можете дополнительно сократить команду до этого:

$ ansible all -m command -a "docker info" -u myuser --become --ask-become-pass
4
ответ дан 3 December 2019 в 01:09

Теги

Похожие вопросы