Ganz einfaches Szenario:
env.use_ssh_config = True
@hosts(['example'])
def test():
run('uname')
und mit folgender SSH-Konfiguration:
Host example
HostName example.com
Ich bekomme das:
$ fab test
[example] Executing task 'test'
[example] run: uname
Fatal error: Name lookup failed for example.com
Underlying exception:
nodename nor servname provided, or not known
Aborting.
# BUT!
$ ssh example uname
Linux
Irgendeine Ahnung, was los ist?
Ich habe gerade herausgefunden, dass ich HostName example.com_
(Unterstrich ist ein versehentliches nachgestelltes Leerzeichen) in der SSH-Konfiguration hatte.
Sieht wieder wie #305 aus?
Ich denke, dies muss auf der Seite ssh
erfolgen, da der eigentliche Abgleich der Eingabe (Fabric fragt nach Host "example"
) mit dem ssh-Konfigurationsschlüssel erfolgt, was entfernt werden muss ( "example ")
wird in SSHConfig.lookup
aufgeführt. Ich werde dort eine Referenz machen.
Siehe ssh #23
Danke @yuvadm - zusätzlicher Platz hat mich auch erwischt
Wurde auch von dem zusätzlichen Whitespace-Bug gebissen und poste dies hier für zukünftige Suchende:
Der Fehler, den ich erhielt, war Fatal error: Name lookup failed for hosts
- da wir die wörterbuchbasierte env.roledefs
-Definition verwendeten.
Hilfreichster Kommentar
Wurde auch von dem zusätzlichen Whitespace-Bug gebissen und poste dies hier für zukünftige Suchende:
Der Fehler, den ich erhielt, war
Fatal error: Name lookup failed for hosts
- da wir die wörterbuchbasierteenv.roledefs
-Definition verwendeten.