Python 将Fabric env.host字符串作为变量传递

Python 将Fabric env.host字符串作为变量传递,python,cloud-hosting,fabric,Python,Cloud Hosting,Fabric,我希望能够以编程方式创建一个新的云服务器,然后传递新的root@1.2.3.4插入其他结构命令以运行其他安装脚本 我能够创建服务器,获取相关变量,并启动本地sshroot@1.2.3.4“)命令将新IP添加到我的已知主机文件。但是,不管怎样,我都会尝试传递字符串的root@1.2.3.4“对于Fabric,它仍然向我展示了: 找不到主机。请为连接指定(单个)主机字符串: 我尝试过各种字符串操作,例如: 环境主机=“%s”%host env.hosts=[host] env.host=str(主机

我希望能够以编程方式创建一个新的云服务器,然后传递新的root@1.2.3.4插入其他结构命令以运行其他安装脚本

我能够创建服务器,获取相关变量,并启动本地sshroot@1.2.3.4“)命令将新IP添加到我的已知主机文件。但是,不管怎样,我都会尝试传递字符串的root@1.2.3.4“对于Fabric,它仍然向我展示了:

找不到主机。请为连接指定(单个)主机字符串:

我尝试过各种字符串操作,例如:

环境主机=“%s”%host

env.hosts=[host]

env.host=str(主机)

然而,Fabric总是向我显示“找不到主机”提示。如果我复制并粘贴“打印主机”的结果,效果很好。诚然,这不是一个巨大的障碍,但确实打破了我试图采取的整个自动推出方法

是否有人成功地使用变量将env.host/hosts声明传递给结构?

错误“找不到主机”有点欺骗性。如果您在
env.hosts
中输入的内容格式不正确,它将抛出<代码>环境主机的外观应类似于以下内容之一:

env.hosts = ['1.2.3.4']
env.hosts = ['1.2.3.4', 'hostname', '4.5.6.7']
它不应包括用户(
root@1.2.3.4
)传递给
env.user

试着这样做:

h = '1.2.3.4'
env.hosts = [h]