Scénario très simple :
env.use_ssh_config = True
@hosts(['example'])
def test():
run('uname')
et avec la configuration SSH suivante :
Host example
HostName example.com
J'obtiens ceci :
$ 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
Une idée de ce qui se passe ?
Je viens de découvrir que j'avais HostName example.com_
(le trait de soulignement est un espace de fin accidentel) dans la configuration SSH.
Ressemble à nouveau au #305 ?
Je pense que cela doit être fait du côté ssh
depuis la correspondance réelle de l'entrée (Fabric demandant l'hôte "example"
) avec la clé de configuration ssh, qui doit être supprimée ( "example ")
est exécuté dans SSHConfig.lookup
. J'y ferai une référence.
Voir ssh #23
Merci @yuvadm - l'espace supplémentaire m'a aussi
J'ai aussi été mordu par le bogue des espaces blancs supplémentaires, en publiant ceci ici pour les futurs chercheurs :
L'erreur que j'obtenais était Fatal error: Name lookup failed for hosts
- puisque nous utilisions la définition env.roledefs
basée sur un dictionnaire.
Commentaire le plus utile
J'ai aussi été mordu par le bogue des espaces blancs supplémentaires, en publiant ceci ici pour les futurs chercheurs :
L'erreur que j'obtenais était
Fatal error: Name lookup failed for hosts
- puisque nous utilisions la définitionenv.roledefs
basée sur un dictionnaire.