J'essaie d'exécuter un playbook Ansible sur un serveur en utilisant un compte autre que celui que je suis connecté sur la machine de contrôle. J'ai essayé de spécifier un ansible_user
dans le fichier d'inventaire selon la documentation sur Inventaire :
[srv1]
192.168.1.146 ansible_connection=ssh ansible_user=user1
Cependant Ansible a appelé avec ansible-playbook -i inventory playbook.yml -vvvv
imprime ce qui suit:
GATHERING FACTS ***************************************************************
<192.168.1.146> ESTABLISH CONNECTION FOR USER: techraf
Ce qui a fonctionné pour moi a été d'ajouter le remote_user
argument du playbook:
- hosts: srv1
remote_user: user1
Maintenant, la même commande Ansible se connecte en tant que user1
:
GATHERING FACTS ***************************************************************
<192.168.1.146> ESTABLISH CONNECTION FOR USER: user1
Ajoutant également remote_user
variable à ansible.cfg
oblige Ansible à utiliser l'utilisateur prévu au lieu de l'utilisateur connecté.
Les ansible_user
dans le fichier d'inventaire et remote_user
dans le playbook/ansible.cfg
à des fins différentes?
Quel est le ansible_user
utilisé pour? Ou pourquoi Ansible n'observe-t-il pas le paramètre dans l'inventaire?
Vous rencontrez probablement un problème commun: les documents ansible publiés sont pour la version de développement (2.0 en ce moment), et nous ne gardons pas les anciens. C'est un gros point de discorde ... En supposant que vous utilisez quelque chose avant la version 2.0, le nom de l'inventaire var dont vous avez besoin est ansible_ssh_user
. ansible_user
fonctionne en 2.0 (tout comme ansible_ssh_user
- il est aliasé).
J'ajoute généralement mon nom d'utilisateur distant dans /etc/ansible/ansible.cfg
comme suit:
remote_user = MY_REMOTE_USERNAME
De cette façon, il n'est pas nécessaire de configurer ansible_user dans le fichier d'inventaire pour chaque entrée d'hôte.