Мне нужно управлять важным количеством хостов, на которых есть только один пользователь, имеющий доступ по SSH (назовем его foo), а затем мне нужно войти в систему как root для выполнения привилегированных команд.
У пользователя Foo нет никаких прав sudo, поэтому я вынужден войти в систему как root для выполнения привилегированных команд. На самом деле я использую сценарий ожидания для выполнения этой задачи (вход в ssh как foo, вход как root через su), и я хочу переключиться на Ansible. Я знаю, что могу создать нового пользователя и дать ему привилегии sudo или просто предоставить привилегии sudo для foo, но возможно ли сделать то же самое, что и я, с Ansible?
Я хотел бы установить ssh-соединение как foo, а затем выполнить playbooks или любую другую команду adhoc как root. Я не нашел никакой информации об этом в документации Ansible, поэтому я спрашиваю здесь, проводил ли кто-нибудь такой допрос.
С участием ansible
, ты можешь использовать sudo
или su
:
- hosts: example.com
gather_facts: False
su: yes
su_user: root
tasks:
- shell: whoami
Вы также можете сделать это из командной строки:
ansible-playbook --su --su-user=root --ask-su-pass playbook.yml
Эта функция была доступна с этот запрос на перенос, и присутствует в текущей версии 1.6.6.