我想使用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
Run Code Online (Sandbox Code Playgroud)
样本输出:
host:folder user$ fab deploy_2_dev
env.hosts: []
env.hosts: ['dev']
No hosts found. Please specify (single) host string for connection:
Run Code Online (Sandbox Code Playgroud)
当我创建Fabric文档中set_hosts()显示的任务时,env.hosts设置正确.但是,这不是一个可行的选择,也不是装饰者.在命令行上传递主机最终会导致调用fabfile的某种shell脚本,我宁愿让一个工具正常工作.
它在Fabric文档中说'env.hosts只是一个Python列表对象'.根据我的观察,这根本不是真的.
谁能解释一下这里发生了什么?如何设置要部署的主机?