Як встановити користувача ssh за умовчанням для всіх хостів у Ansible?


11

Відповідна версія 2.1

У мене є інвентарний файл hosts

[nodes]
host1
host2
...

І проста ігрова книжка site.yml

---
- hosts: all
  tasks:
    - include: tasks/main.yml

Якщо я тільки розпочну п'єсу,

ansible-playbook -i hosts site.yml -vvvv

Я отримую цю помилку для всіх хостів,

ESTABLISH SSH CONNECTION FOR USER: None
fatal: [host1]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh.", "unreachable": true}
...

Однак, читаючи документ довідкового інвентаря , я додав ansible_userу hostsфайл,

[nodes]
host1    ansible_user=root
host2    ansible_user=root
...

Це вирішує SSH CONNECTION UNREACHABLEпомилку. Однак чи потрібно додати ansible_user=rootпоруч усіх хостів? Або є простіший спосіб зробити це?

Відповіді:


11

Перевірте приклад / ansible.cfgфайл за замовчуванням , і ви знайдете це під [defaults]:

# default user to use for playbooks if user is not specified
# (/usr/bin/ansible will use current user as default)
#remote_user = root

Відмовтесь remote_userвід користувача та налаштуйте його на те, на що ви хочете увійти.

Де береться Ansible ansible.cfg? Цей же файл пояснює:

# nearly all parameters can be overridden in ansible-playbook 
# or with command line flags. ansible will read ANSIBLE_CONFIG,
# ansible.cfg in the current working directory, .ansible.cfg in
# the home directory or /etc/ansible/ansible.cfg, whichever it
# finds first

Дякую @Deltik, чи зможеш ти відповісти і на це ?
Говард Лі

@HowardLee: Ваше інше питання в першу чергу ґрунтується на думці, а не дуже підходить для Super User.
Делтік

4

Інший спосіб - це використовувати --userдля визначення віддаленого користувача ssh. Введіть, ansible-playbook --helpщоб прочитати більше. Це моя типова команда:

ansible-playbook -i hosts site.yml --user <user> --ask-pass -vvvv

--ask-pass запропонує ввести пароль для --user


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.