it-swarm.com.de

Wie lege ich einen Standard-SSH-Benutzer für alle Hosts in Ansible fest?

Ansible Version 2.1

Ich habe eine Inventardatei hosts

[nodes]
Host1
Host2
...

Und ein einfaches Spielbuch site.yml

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

Wenn ich nur das Spiel beginne,

ansible-playbook -i hosts site.yml -vvvv

Ich bekomme diesen Fehler für alle Hosts,

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

Beim Lesen von Ansible Inventory doc habe ich der Datei hostsansible_user hinzugefügt.

[nodes]
Host1    ansible_user=root
Host2    ansible_user=root
...

Dies behebt den SSH CONNECTION UNREACHABLE Fehler. Muss ich jedoch ansible_user=root neben allen Hosts hinzufügen? Oder gibt es einen einfacheren Weg, dies zu tun?

10
Howard Lee

Überprüfen Sie die Beispiel-/Standard-ansible.cfg-Datei und Sie werden dies finden:

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

Kommentar für remote_user entfernen und den Benutzer auf das einstellen, unter dem Sie sich anmelden möchten.

Woher bekommt Ansible ansible.cfg? Die gleiche Datei erklärt:

# 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
9
Deltik

Eine andere Möglichkeit ist die Verwendung von --user, um einen entfernten SSH-Benutzer zu definieren. Geben Sie ansible-playbook --help ein, um weitere Informationen zu erhalten. Das ist mein typischer Befehl:

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

--ask-pass fordert zur Eingabe eines Passworts für --user auf

2
Howard Lee

Sie können nicht nur den ansible.cfg ändern, sondern auch Variablen für 'alle' Gruppen oder andere Gruppen definieren

https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#group-variables

[all:vars]
ansible_user = root
ansible_port = 22
1
ChuenChih Siu