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