【发布时间】:2016-02-04 11:04:16
【问题描述】:
我在 AWS 上运行 CoreOS 集群。 在 AWS 中的每个实例上,我运行一个 docker 容器。 例如,我有 2 个名为 API 的实例,它们使用我们最新的软件版本运行 docker 映像。
我还有 6 个处理器实例运行另一个最新版本的 docker 映像。
我想更新集群中的每个容器,所以今天我使用 GoCD 和管道来激活一个可以完成所有工作的 ansible-playbook。 管道监听 github 项目,一旦我将更改推送到该分支,它就会激活管道。
它构建 API 和处理器新的 docker 镜像, 它将新更新的图像上传到 dockerhub, 然后它连接到 AWS 实例并为它刚刚上传的图像发出 docker pull, 最终,它使用新拉取的图像启动容器。
这是我目前控制版本部署的方式。
问题是:
- 需要很长时间
- 有时会因各种原因而失败
- 不灵活(我需要硬编码特定分支以在 github 上收听并从中提取文件)
您还有其他建议\工具来完成这项工作吗? 有时我需要更新 3 台机器,有时需要更新 7 台机器,而且我需要可扩展的东西。
【问题讨论】:
-
你看过fabric (fabfile.org)吗?
-
这有点像使用 ansible 只是不同的语法..
标签: git amazon-web-services docker ansible go-cd