Python Fabric模块

时间:2018-10-04 19:03:24

标签: python sockets fabric

我尝试通过遵循fabric documentation中的示例,使用ls模块运行一个简单的命令(fabric)。但是,当我尝试在run对象上调用Connection方法时,我收到

  

socket.gaierror:[Errno 8]提供的节点名或服务名,或者未知

import fabric 
c = fabric.Connection('host')
c.run('ls')

我以前使用过socket模块,并且在运行socket.gethostbyname(socket.gethostname())将套接字绑定到计算机时通常会出现上述错误。但是,socket.gethostbyname(socket.gethostname())对我来说运行没有错误。

如何成功使用fabric在Shell中运行命令?由于fabric使用SSH,在使用fabric之前是否需要任何SSH配置?


我在Python 3.7.0的macOS Sierra 10.12.5上运行fabric

1 个答案:

答案 0 :(得分:1)

Connection构造函数中,您需要提供真实的主机名。

例如:

import fabric

c = fabric.Connection('localhost')
c.run('ls')

如果未配置SSH协议,则会出现另一条错误消息。例如:

paramiko.ssh_exception.NoValidConnectionsError: [Errno None] Unable to connect to port 22 on 127.0.0.1, ::1 or fe80::1%lo0

Ofen,服务器名还不够,您需要添加域名,例如myserver.mydomain.com