Comment définir un utilisateur ssh par défaut pour tous les hôtes dans Ansible?

11

Ansible version 2.1

J'ai un fichier d'inventaire hosts

[nodes]
host1
host2
...

Et un livre de jeu simple site.yml

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

Si je commence juste la pièce,

ansible-playbook -i hosts site.yml -vvvv

Je reçois cette erreur pour tous les hôtes,

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

Cependant, en lisant le document Ansible Inventory , j'ai ajouté ansible_userau hostsfichier,

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

Cela résout l' SSH CONNECTION UNREACHABLEerreur. Cependant, dois-je ajouter à ansible_user=rootcôté de tous les hôtes? Ou existe-t-il un moyen plus simple de procéder?

Howard Lee
la source

Réponses:

11

Vérifiez l'exemple / ansible.cfgfichier par défaut , et vous le trouverez sous [defaults]:

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

Décommentez remote_useret définissez l'utilisateur sur ce que vous souhaitez vous connecter.

Où Ansible se trouve- ansible.cfgt- il ? Le même fichier explique:

# 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
la source
Merci @Deltik, pourriez-vous également répondre à celle-ci ?
Howard Lee
@HowardLee: Votre autre question est principalement basée sur l'opinion et ne convient pas au super utilisateur.
Deltik
4

Une autre façon consiste à utiliser --userpour définir l'utilisateur ssh distant. Tapez ansible-playbook --helppour en savoir plus. Ceci est ma commande typique:

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

--ask-pass vous invite à saisir le mot de passe --user

Howard Lee
la source