Fabric: SSH 配置中主机名的 DNS 问题

创建于 2012-04-16  ·  5评论  ·  资料来源: fabric/fabric

非常简单的场景:

env.use_ssh_config = True

@hosts(['example'])
def test():
    run('uname')

并使用以下 SSH 配置:

Host example
  HostName example.com

我得到这个:

$ 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

知道发生了什么吗?

最有用的评论

也被额外的空白错误所困扰,将其发布在这里以供将来的搜索者使用:
我得到的错误是Fatal error: Name lookup failed for hosts - 因为我们使用的是基于字典的env.roledefs定义。

所有5条评论

我刚刚发现我在 SSH 配置中有HostName example.com_ (下划线是一个意外的尾随空格)。

看起来又像#305 了?

我认为这需要在ssh端完成,因为输入(Fabric 要求主机"example" )与 ssh 配置键的实际匹配,这是需要剥离的( "example ")是在SSHConfig.lookup中执行的。我会在那里做一个参考。

请参阅SSH #23

谢谢@yuvadm - 额外的空间也让我

也被额外的空白错误所困扰,将其发布在这里以供将来的搜索者使用:
我得到的错误是Fatal error: Name lookup failed for hosts - 因为我们使用的是基于字典的env.roledefs定义。

此页面是否有帮助?
0 / 5 - 0 等级