it-swarm.com.de

ansible SSH-Verbindung schlägt fehl

Ich versuche, eine Ansible-Rolle auf mehreren Servern auszuführen, aber ich erhalte eine Fehlermeldung:

tödlich: [192.168.0.10]: UNERREICHBAR! => {"geändert": false, "msg": Msgstr "Verbindung zum Host über ssh fehlgeschlagen.", "Nicht erreichbar": true}

Meine/etc/ansible/hosts -Datei sieht folgendermaßen aus:

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

Ich habe keine Ahnung, was los ist - alles sieht gut aus - ich kann mich über SSH anmelden, aber ein ansprechbarer Ping gibt den gleichen Fehler zurück.

Das Protokoll von ausführlicher Ausführung:

<192.168.0.10> SSH-VERBINDUNG FÜR BENUTZER ERSTELLEN: Benutzer <192.168.0.10> SSH: EXEC ssh -C -vvv -o ControlMaster = auto -o ControlPersist = 60s -o KbdInteractiveAuthentication = kein -o PreferredAuthentications = gssapi-with-mic, gssapi-keyex, hostbased, publickey -o PasswordAuthentication = no -o Benutzer = Benutzer -o ConnectTimeout = 10 -o ControlPath =/root/.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" ) "" "" ""

Kannst du mir irgendwie helfen? Wenn ich im lokalen Modus (-c local) ansible verwenden muss, ist es nutzlos.

Ich habe versucht, ansible_Sudo_pass und ansible_ssh_user zu löschen, aber es hat nicht geholfen.

25
Thomas

Sie müssen auch den ansible_ssh_pass- oder den ssh-Schlüssel ändern. Ich verwende dies beispielsweise in meiner Inventardatei:

192.168.33.100 ansible_ssh_pass=vagrant ansible_ssh_user=vagrant

Danach kann ich mich mit dem entfernten Host verbinden:

ansible all -i tests -m ping

Mit folgendem Ergebnis:

192.168.33.100 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Hoffe das hilft dir.

37
Arbab Nazar
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

Gehen Sie in Ihr Playbook-Verzeichnis und führen Sie ansible all -m ping aus

4
SJP

Versuchen Sie, Ihre Host-Datei zu ändern: 

192.168.0.10
192.168.0.11
192.168.0.12
2
Nikola

$ansible -m ping all -vvv

Nach der Installation von ansible auf Ubuntu oder CentOS ..__ können Sie unten stehende Nachrichten anzeigen. Keine Panik, Sie müssen über ein Zugriffsrecht auf die Datei /tmp des Benutzers [/home/user_name/.ansible/tmp/] . "Authentication or permission failure" verfügen.

Diese Vorkonzentration löst das Problem.

[Your_server ~]$ ansible -m ping all
rusub-bm-gt | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
Your_server | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
0

Ich hatte dieses Problem, aber es war aus einem anderen Grund als in anderen Antworten dokumentiert. Mein Host, den ich bereitstellen wollte, war nur verfügbar, indem er eine Sprungbox durchging. Ursprünglich dachte ich, dass Ansible meine SSH-Konfigurationsdatei nicht erkannte, aber es war. Die Lösung für mich bestand darin, sicherzustellen, dass der in der SSH-Konfigurationsdatei vorhandene Benutzer mit dem Benutzer im Ansible-Playbook übereinstimmt. Das hat das Problem für mich gelöst.

0
entpnerd

Der Ansible_ssh_port hat sich beim Neuladen der VM geändert. 

==> Standard: VM wird gestartet ...

==> Standard: Warten auf den Start des Computers. Das kann ein paar minuten dauern...

default: SSH address: 127.0.0.1:2222

default: SSH username: vagrant

default: SSH auth method: private key

Also musste ich die Inventar/hosts-Datei wie folgt aktualisieren:

default ansible_ssh_Host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user='centos' ansible_ssh_private_key_file=<key path>
0
Geetha