Ich kann ssh ganz gut, aber ansible sagt „no route to host“

Schrieb ich ein Skript, um mehrere vms mit vagrant, die ich dann Bestimmung mit ansible. Leider hat mein host ist ein windows-Rechner, so dass ich dachte, ich könnte das Problem auch lösen, indem man alle vms in ein vpn und dann Bestimmung aus einer anderen Maschine in der gleichen vpn.

In der Theorie, es funktioniert… ich kann die ssh-Verbindung auf den anderen Rechnern ohne Probleme. Aber wenn ich meine ansible playbook, ansible ausfällt.

Zuerst bekam ich die Meldung „ssh: connect to host 10.1.2.100 [10.1.2.100] port 22: No route to host“ beim ausführen von ansible mit -vvvv

Diesem Abend war, und ich war sehr müde, und dieser Fehler nicht mehr Auftritt am nächsten morgen. Nicht sicher, ob es hat etwas zu tun mit der vm, die ich mache Bereitstellung von neu gestartet in der Zwischenzeit, oder der empfangenden Maschine zerstört wird und uped vollständig, da dann. In jedem Fall ist das problem nicht verschwunden.

Ergebnisse jetzt, nach Neuerstellung beide vms:

# ansible-playbook -i vms -k -u vagrant vms.yml -vvvv

result:

<10.1.2.100> ESTABLISH SSH CONNECTION FOR USER: vagrant <10.1.2.100>
SSH: EXEC sshpass -d14 ssh -C -vvv -o ServerAliveInterval=50 -o
User=vagrant -o ConnectTimeout=10 -tt 10.1.2.100 '( umask 22 && mkdir
-p "$( echo $HOME/.ansible/tmp/ansible-tmp-1455781388.36-25193904947084 )" && echo
"$( echo $HOME/.ansible/tmp/ansible-tmp-1455781388.36-25193904947084
)" )' fatal: [10.1.2.100]: FAILED! => {"failed": true, "msg": "ERROR!
Using a SSH password instead of a key is not possible because Host Key
checking is enabled and sshpass does not support this.  Please add
this host's fingerprint to your known_hosts file to manage this
host."}

So weit, So klar. Ich ssh in der anderen Instanz hinzufügen, dass es zu den bekannten hosts. Dies funktioniert ohne Probleme.

Zurück zu ansible, versuche ich den gleichen Befehl erneut aus. Das Ergebnis ist jetzt:

<10.1.2.100> ESTABLISH SSH CONNECTION FOR USER: vagrant <10.1.2.100>
SSH: EXEC sshpass -d14 ssh -C -vvv -o ServerAliveInterval=50 -o
StrictHostKeyChecking=no -o User=vagrant -o ConnectTimeout=10 -tt
10.1.2.100 '( umask 22 && mkdir -p "$( echo $HOME/.ansible/tmp/ansible-tmp-1455782149.99-271768166468916 )" &&
echo "$( echo
$HOME/.ansible/tmp/ansible-tmp-1455782149.99-271768166468916 )" )'
<10.1.2.100> PUT /tmp/tmpXQKa8Z TO
/home/vagrant/.ansible/tmp/ansible-tmp-1455782149.99-271768166468916/setup
<10.1.2.100> SSH: EXEC sshpass -d14 sftp -b - -C -vvv -o
ServerAliveInterval=50 -o StrictHostKeyChecking=no -o User=vagrant -o
ConnectTimeout=10 '[10.1.2.100]' fatal: [10.1.2.100]: UNREACHABLE! =>
{"changed": false, "msg": "ERROR! SSH Error: data could not be sent to
the remote host. Make sure this host can be reached over ssh",
"unreachable": true}

Gut, ich machte Sie sicher, dass der host erreichbar ist, die von ssh, danke sehr! Ansible immer noch nicht durch, und ich bin über eine Gehirn tumor aus dem denken der Dinge, dass das problem sein könnte.

Irgendwelche Vorschläge was das problem sein könnte?

  • So, Vagrant erstellt mehrere Schnittstellen, und die vagrant ssh Befehl wird mit 127.0.01 mit einem hohen port auf den host weitergeleitet zu 22 auf der Gast-VM, nicht die 10.1.2.100 Adresse Ansible ist mit hier. Könnten Sie fügen Sie die Ausgabe der genauen Befehl ssh Ansible mit – ssh -vvv [email protected] oder etwas ähnliches?
InformationsquelleAutor UncleBob | 2016-02-17



One Reply
  1. 1

    Dieses Problem wurde hier berichtet, mit einigen workarounds:
    https://github.com/ansible/ansible/issues/15321

    Der Konsens scheint zu sein, entweder zu einer. verwenden ansible_password oder b. verwenden -u username in der Verbindungs-Parameter. Jedoch, eine beliebige Anzahl von Dingen zur Unterbrechung einer SSH-Verbindung in einer Weise, dass es sich „nicht erreichbar“ auf höherer Ebene-apps, so dass ich empfehlen, geht durch die einzelnen Schritte in das ticket.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.