我想使用 Fabric 将我的 web 应用程序代码部署到开发、运行和生产服务器上:
def deploy_2_dev():
deploy('dev')
def deploy_2_staging():
deploy('staging')
def deploy_2_prod():
deploy('prod')
def deploy(server):
print 'env.hosts:', env.hosts
env.hosts = [server]
print 'env.hosts:', env.hosts
输出样本:
host:folder user$ fab deploy_2_dev
env.hosts: []
env.hosts: ['dev']
No hosts found. Please specify (single) host string for connection:
当我创建 set_hosts()
任务时(如 布料文件所示) ,env.hosts 被正确设置。但是,这不是一个可行的选择,装饰者也不是。在命令行上传递主机将最终导致某种类型的 shell 脚本调用 Fabfile,我希望只有一个工具能够正确地完成这项工作。
它在 Fabric 文档中说,‘ env.hosts 只是一个 Python 列表对象’。根据我的观察,这根本不是真的。
有人能解释一下这是怎么回事吗? 我该如何设置主机部署到哪里?