J'essaie d'exécuter le rôle ansible sur plusieurs serveurs, mais j'obtiens une erreur:
fatal: [192.168.0.10]: INCROISSABLE! => {"changé": faux, "msg": "Échec de la connexion à l'hôte via ssh.", "Inaccessible": true}
Mon fichier/etc/ansible/hosts ressemble à ceci:
192.168.0.10 ansible_Sudo_pass='passphrase' ansible_ssh_user=user
192.168.0.11 ansible_Sudo_pass='passphrase' ansible_ssh_user=user
192.168.0.12 ansible_Sudo_pass='passphrase' ansible_ssh_user=user
Je n'ai aucune idée de ce qui se passe - tout semble aller bien - je peux me connecter via SSH, mais un ping envoyable renvoie la même erreur.
Le journal de l'exécution verbeuse:
<192.168.0.10> ÉTABLIR UNE CONNEXION SSH POUR UTILISATEUR: utilisateur <192.168.0.10> SSH: EXEC ssh -C -vvv -o ControlMaster = auto -o ControlPersist = 60s -o KbdInteractiveAuthentication = no -o PreferredAuthentications = gssapi-with-mic, gssapi-keyex, basé sur l'hôte, publickey -o PasswordAuthentication = no -o Utilisateur = utilisateur -o ConnectTimeout = 10 -o ControlPath =/racine/.ansible/cp/ansible-ssh-% h-% p-% r 192.168.0.10 '/ bin/sh -c' "" "(umask 22 && mkdir -p"
echo $HOME/.ansible/tmp/ansible-tmp-1463151813.31-156630225033829
"&& echo"echo $HOME/.ansible/tmp/ansible-tmp-1463151813.31-156630225033829
") '" ""' '
Pouvez-vous m'aider d'une manière ou d'une autre? Si je dois utiliser ansible en mode local (-c local), alors c'est inutile.
J'ai essayé de supprimer ansible_Sudo_pass et ansible_ssh_user, mais cela n'a pas aidé.
Vous devez également modifier la clé ansible_ssh_pass
ou la clé ssh. Par exemple, je l'utilise dans mon fichier d'inventaire:
192.168.33.100 ansible_ssh_pass=vagrant ansible_ssh_user=vagrant
Après cela, je peux me connecter à l'hôte distant:
ansible all -i tests -m ping
Avec le résultat suivant:
192.168.33.100 | SUCCESS => {
"changed": false,
"ping": "pong"
}
J'espère que cela vous aidera.
mkdir /etc/ansible
cat > hosts
default ansible_ssh_Host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user=vagrant ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private_key
Allez dans votre répertoire playbook et lancez ansible all -m ping
Essayez de modifier votre fichier hôte pour:
192.168.0.10
192.168.0.11
192.168.0.12
$ansible -m ping all -vvv
Après avoir installé ansible sur Ubuntu ou CentOS, vous pouvez avoir les messages ci-dessous. Ne paniquez pas, vous devez avoir un droit d'accès au fichier /tmp
de l'utilisateur [/home/user_name/.ansible/tmp/
] . "Authentication or permission failure
".
Cette préconisation va résoudre le problème.
[Your_server ~]$ ansible -m ping all
rusub-bm-gt | SUCCESS => {
"changed": false,
"ping": "pong"
}
Your_server | SUCCESS => {
"changed": false,
"ping": "pong"
}
J'avais ce problème, mais c'était pour une raison différente de celle documentée dans d'autres réponses. Mon hôte que j'essayais de déployer n'était disponible qu'en passant par une boîte de transfert. A l'origine, je pensais que c'était parce qu'Ansible ne reconnaissait pas mon fichier de configuration SSH, mais c'était le cas. La solution pour moi était de m'assurer que l'utilisateur présent dans le fichier de configuration SSH correspondait à l'utilisateur du manuel Ansible. Cela a résolu le problème pour moi.
Le ansible_ssh_port a changé lors du rechargement de la machine virtuelle.
==> défaut: démarrage de la machine virtuelle ...
==> défaut: En attente de démarrage de la machine. Cela peut prendre quelques minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
J'ai donc dû mettre à jour le fichier inventaire/hôtes comme suit:
default ansible_ssh_Host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user='centos' ansible_ssh_private_key_file=<key path>