我想使用Fabric将我的Web应用程序代码部署到开发,登台和生产服务器。我的fabfile:
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:
当我创建Fabric文档中set_hosts()
所示的任务时,env.hosts设置正确。但是,这不是一个可行的选择,装饰器也不是。在命令行上传递主机最终会导致某种形式的shell脚本调用fabfile,我更愿意使用一个工具来正确完成这项工作。
它在Fabric文档中说“ env.hosts仅仅是Python列表对象”。根据我的观察,这根本不是事实。
谁能解释这是怎么回事?如何设置要部署到的主机?