Ansible SSH как пользователь и выполнить имеет root (ожидаем, как)

8

Мне нужно администрировать большое количество хостов, где только один пользователь может получить доступ из SSH (назовем его foo), а затем должен войти в систему как root для выполнения привилегированных команд.

У пользователя Foo нет никаких привилегий sudo, поэтому я вынужден войти в систему как root для выполнения привилегированных команд. Я на самом деле использую ожидаемый скрипт для этой работы (ssh login как foo, login как root через su) и я хочу переключиться на Ansible. Я знаю, что мог бы создать нового пользователя и дать ему привилегии sudo или, по сути, дать привилегии sudo для foo, но возможно ли сделать то же, что я делаю, ожидая с Ansible?

Я хотел бы сделать ssh-соединение как foo, а затем выполнить playbooks или любой вид команды adhoc от имени root. Я не нашел никакой информации в документации Ansible по этому поводу, поэтому я спрашиваю, был ли у кого-то такой опрос.

Arka
источник

Ответы:

13

С помощью 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.

Дауд
источник
1
Спасибо. Как вы можете иметь разные su-пароли для каждого хоста? ansible_su_pass не существует
Арка
Вы нашли, как выбрать ansible su pass?
Джеремиека
Начиная с версии 1.9.4, вы не можете иметь разные пароли для каждого хоста. Вы можете иметь разные ключи SSH, хотя.
bschlueter