120 votes

Comment définir le nom d'utilisateur/mot de passe Ansible par défaut pour la connexion SSH ?

J'utilise Ansible et j'ai cette configuration dans mon inventaire/all :

[master]
192.168.1.10 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant

[slave]
192.168.1.11 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant
192.168.1.12 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant

[app]
192.168.1.13 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant

[all:children]
master
slave

Je ne veux pas répéter tous les paramètres pour chaque nouvelle instance. Comment puis-je les configurer à un seul endroit ? Existe-t-il un fichier contenant ces paramètres ?

3 votes

~/.ssh/config

1 votes

@ceejayoz Pourriez-vous expliquer un peu

0 votes

Je ne suis pas un administrateur Ansible, et les documents sont confus sur le sujet ( s'agit-il d'une "variable" ou d'un "paramètre" et y a-t-il une différence ? ) mais il semble que vous puissiez définir des variables au niveau du groupe.

1voto

activedecay Points 185

Vous devez définir les bonnes variables. Vous devez utiliser :

# yml syntax
ansible_user: myusername
ansible_password: mypassword

# inventory syntax
host ansible_user=myusername ansible_password=mypassword

Vous devez lire très attentivement, car ansible_ssh_password y ansible_ssh_user ne fonctionne pas dans la version : ansible 2.9.6

1voto

Voici les étapes à suivre pour définir le nom d'utilisateur/mot de passe Ansible par défaut pour la connexion SSH.

La configuration ansible.cfs sera

$ cat ansible.cfg
\[defaults\]
inventory = ./inventory

\[privilege\_escalation\]
become = True
become\_method = sudo
become\_user = root

Le fichier d'inventaire sera

$ cat inventory
\[App1\]
10.163.128.21

\[App1:vars\]
ansible\_password=\*\*\*\*\*\*\*\*\*\*\*\*\*
ansible\_ssh\_user=Appuser1
host\_key\_checking=False

résultat du succès de l'exécution ansible

$ ansible App1 -m ping
10.163.128.21 | SUCCESS => {
    "ansible\_facts": {
        "discovered\_interpreter\_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X