非常简单的场景:
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
知道发生了什么吗?
我刚刚发现我在 SSH 配置中有HostName example.com_
(下划线是一个意外的尾随空格)。
看起来又像#305 了?
我认为这需要在ssh
端完成,因为输入(Fabric 要求主机"example"
)与 ssh 配置键的实际匹配,这是需要剥离的( "example ")
是在SSHConfig.lookup
中执行的。我会在那里做一个参考。
请参阅SSH #23
谢谢@yuvadm - 额外的空间也让我
也被额外的空白错误所困扰,将其发布在这里以供将来的搜索者使用:
我得到的错误是Fatal error: Name lookup failed for hosts
- 因为我们使用的是基于字典的env.roledefs
定义。
最有用的评论
也被额外的空白错误所困扰,将其发布在这里以供将来的搜索者使用:
我得到的错误是
Fatal error: Name lookup failed for hosts
- 因为我们使用的是基于字典的env.roledefs
定义。