我已编写了部署脚本,并且我使用@hosts
装饰器告诉函数使用哪个主机:
@hosts('rdp_p11@localhost')
def put_p11(f, path):
put(f, path)
@hosts('rdp_p12@localhost')
def put_p12(f, path):
put(f, path)
出于某种原因,我收到以下消息:
No hosts found. Please specify (single) host string for connection:
我正在fabfile.py
有什么想法吗?感谢
答案 0 :(得分:2)
正如Fabric的文档Library Use所述:
运行,sudo和其他操作只在连接时查看一个位置:env.host_string。设置主机的所有其他机制在运行时由fab工具解释,并且在作为库运行时无关紧要。
由于您在python中手动调用这些函数,fab
不会处理这些函数中的设置,即使您正在使用它来启动主函数。
您可以使用上下文管理器轻松操作env
:
from fabric.api import settings
with settings(host_string="myhost"):
your_function()