【发布时间】:2013-08-15 05:20:44
【问题描述】:
我运行的环境要求在复制 Web 应用程序文件之前停止服务器。所以我想使用织物执行以下一组任务:
- 停止服务器
- 复制新文件
- 重启服务器
如果我想部署到 20 台主机,我会做这样的事情......
def deploy:
run("server stop")
run("rsync ...")
run("server start")
...会有不必要的停机时间,因为首先关闭每台服务器,然后将文件同步到所有服务器,最后恢复所有服务器。这是因为“运行”命令是在每个主机上执行的。
是否有一种优雅的方式可以在每个主机上运行多个命令?这是我正在寻找的天真的刺:
for host in env.hosts
env.host = host
run("server stop")
run("rsync ...")
run("server start")
我确实看到可以让“运行”命令并行发生,但这并不是我想要的。
【问题讨论】:
标签: python deployment fabric env