J'utilise le fichier Host comme ci-dessous,
[qa-workstations]
10.39.19.190 ansible_user=test ansible_ssh_pass=test
J'utilise la commande ci-dessous pour exécuter la commande "whoami" dans l'hôte
root@Svr:~/ansible# ansible all -a "whoami" -i /etc/ansible/Host
10.39.19.190 | success | rc=0 >>
root
ansible par défaut essayant d'utiliser le nom d'utilisateur dans lequel je me suis connecté, c'est-à-dire root au lieu de l'utilisateur de test que j'ai spécifié dans le fichier hôte
Cela fonctionne bien lorsque j'essaie de passer le nom d'utilisateur dans la commande ansible cli
root@Svr:~/ansible# ansible all -a "whoami" -i /etc/ansible/Host -u test
10.39.19.190 | success | rc=0 >>
test
Mais il ne m'est pas possible de transmettre le nom d'utilisateur à chaque fois dans la CLI car un hôte différent utilise un nom d'utilisateur différent. De plus, je n'ai pas de paire de clés générée pour chaque hôte, car la machine hôte change souvent
version utilisée:
ansible 1.5.4
Ubuntu 14.04 LTS
Créez un ansible.cfg dans votre répertoire playbook ou modifiez le "global" ansible.cfg
Remarque: Un seul fichier de configuration est traité. Le premier gagne dans la liste ci-dessous. http://docs.ansible.com/ansible/intro_configuration.html
- ANSIBLE_CONFIG (une variable d'environnement)
- ansible.cfg (dans le répertoire courant)
- .ansible.cfg (dans le répertoire personnel)
- /etc/ansible/ansible.cfg
[defaults]
remote_user=test
Avec les versions récentes d'Ansible, vous pouvez utiliser le ansible_user
paramètre dans la définition de l'hôte.
Par exemple, sur l'hôte mysql-Host.mydomain
l'utilisateur avec lequel je dois me connecter est mysql
:
[docker-hosts]
mysql-Host.mydomain ansible_user=mysql
Mais comme vous utilisez une ancienne version de ansible, vous devrez peut-être utiliser ansible_ssh_user
au lieu