Jak ustawić domyślnego użytkownika ssh dla wszystkich hostów w Ansible?

11

Wersja Ansible 2.1

Mam plik inwentarza hosts

[nodes]
host1
host2
...

I prosty podręcznik site.yml

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

Jeśli tylko zacznę grę,

ansible-playbook -i hosts site.yml -vvvv

Otrzymuję ten błąd dla wszystkich hostów,

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

Jednak czytając dokument Ansible Inventory , dodałem ansible_userdo hostspliku,

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

To rozwiązuje SSH CONNECTION UNREACHABLEbłąd. Czy jednak muszę dodać ansible_user=rootobok wszystkich hostów? A może jest to prostszy sposób?

Howard Lee
źródło

Odpowiedzi:

11

Sprawdź przykładowy / domyślny ansible.cfgplik, a znajdziesz to pod [defaults]:

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

Odkomentuj remote_useri ustaw użytkownika jako, na który chcesz się zalogować.

Skąd się bierze Ansible ansible.cfg? Ten sam plik wyjaśnia:

# 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
źródło
Dzięki @Deltik, czy mógłbyś również odpowiedzieć na to pytanie ?
Howard Lee
@HowardLee: Twoje drugie pytanie jest oparte głównie na opiniach i nie jest odpowiednie dla superużytkownika .
Deltik
4

Innym sposobem jest użycie --userdo zdefiniowania zdalnego użytkownika ssh. Wpisz, ansible-playbook --helpaby przeczytać więcej. To jest moje typowe polecenie:

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

--ask-pass poprosi o podanie hasła dla --user

Howard Lee
źródło