我有点困惑。作为课程的一部分,我们应该使用Jenkins,Docker和Chef设置CI和CD解决方案,如何指定流程。
我们一直在设置Jenkins,因此对于每个新的git提交,它会创建一个Jenkins从属设备,它们会旋转测试所需的特定容器,然后拆掉它们并报告结果。
因此,今天一直在寻找有关使用Chef和Docker进行持续交付/部署的信息。我看到的用例如下,在Chef中指定机器部署选项,每台服务器有多少台机器,数据库等等。当Jenkins slave成功构建并测试应用程序时,是时候部署了。删除任何旧容器并在Chef中构建新容器,处理配置和其他必要的管理。
一直在寻找类似用例的信息,似乎没有太多关于它的信息。一直在使用chef-provision-docker修改chef-provision插件,但是使用例如docker插件的信息并不是非常直观。然后我偶然发现了这篇文章(https://coderanger.net/provisioning/),它基本上不建议开始使用chef-provision插件的新项目。
是否有我遗漏的东西,这种用例不是很流行甚至只是愚蠢吗?是否还有其他任何我错过的插件或其他更适合厨师的设置?
提前干杯!
答案 0 :(得分:1)
这种纯粹程序化的东西并不是厨师所用的。您可能希望使用直接与Jenkins集成的内容作为插件。或者,如果您正在谈论食谱集成测试,那么可以使用厨房 - 码头和厨房 - 驱动器来为您处理集装箱管理。
编辑:上面的问题不是真正的问题,新答案。您正在寻找的工具通常称为资源调度程序或集群协调程序。厨师可以通过厨师配置或docker
食谱来完成此操作。在这两者之间,我会使用后者。但话说回来,厨师真的不是这项工作的最佳工具。有一整代专用调度程序,包括Mesos + Marathon,Kubernetes,Nomad和docker-compose + swarm。在所有这些中,Nomad可能是最简单的,但Kube有一个庞大的社区跟随并且正在快速增长。我会考虑将Chef用作这个中间步骤。
答案 1 :(得分:0)
我建议使用像kubernetes,docker swarm或mesos这样的容器编排平台。我个人建议使用kubernetes,因为它是列出的三个中的主要平台。
chef是一个很好的配置管理工具,使用它来配置容器会起作用,但它不是最好的解决方案。您会遇到诸如管理容器应该配置的位置以及监视容器状态以及如何处理其故障等问题。像kubernetes这样的平台会为你处理这个问题。
这对于获得一些投入是有用的: https://www.youtube.com/watch?v=24X18e4GVbk
更多内容如下: http://www.devoperandi.com/how-we-do-builds-in-kubernetes/