Подтвердить что ты не робот

Ansible: ansible_user в инвентаре против remote_user в playbook

Я пытаюсь запустить Ansible playbook против сервера, используя учетную запись, отличную от той, которую я зарегистрировал на управляющей машине. Я попытался указать ansible_user в файле инвентаризации в соответствии с документацией на Inventory:

[srv1]
192.168.1.146 ansible_connection=ssh ansible_user=user1

Однако Ansible, вызываемый с помощью ansible-playbook -i inventory playbook.yml -vvvv, печатает следующее:

GATHERING FACTS ***************************************************************
<192.168.1.146> ESTABLISH CONNECTION FOR USER: techraf

Что сработало для меня, это добавить аргумент remote_user в playbook:

- hosts: srv1
  remote_user: user1

Теперь та же самая Ansible-команда соединяется как user1:

GATHERING FACTS ***************************************************************
<192.168.1.146> ESTABLISH CONNECTION FOR USER: user1

Также добавление переменной remote_user в ansible.cfg делает Ansible используемым пользователем, а не вошедшим в систему.

Являются ли ansible_user в файле инвентаря и remote_user в playbook/ansible.cfg для разных целей?

Для чего используется ansible_user? Или почему Ansible не соблюдает настройки в инвентаре?

4b9b3361

Ответ 1

Вероятно, вы столкнулись с общей проблемой: опубликованные доступные документы предназначены для версии разработки (2.0 прямо сейчас), и мы не сохраняем старые. Это большая точка зрения... Предполагая, что вы используете что-то до 2.0, требуемое имя инвентаря var ansible_ssh_user. ansible_user работает в 2.0 (как и ansible_ssh_user - он получает псевдоним).

Ответ 2

Я обычно добавляю свое удаленное имя пользователя в /etc/ansible/ansible.cfg следующим образом:

remote_user = MY_REMOTE_USERNAME

Таким образом, нет необходимости настраивать ansible_user в файле инвентаризации для каждой записи хоста.