我打算用ansible,jenkins和docker一起构建测试环境.计划是这样的.
为您在环境中使用的每个工具创建ansible playbooks并将它们存储在git上.
使用jenkins创建作业以在dev服务器上创建docker容器,并使用ansible playbooks来配置docker容器.
将创建Jenkins作业,以便用户可以选择要与docker容器一起使用的playbooks,并相应地构建容器.
整个概念可以概括如下图所示.
我看到的好处是
自动复制精确的生产环境.
根据要求扩展测试环境.
为单个服务器上的应用程序测试提供不同的平台.
更快的集成测试.
推广敏捷方法论.
自由开发和定制测试环境.
开发人员和测试人员可以自己创建环境,即使他们对操作系统,配置一无所知.
在干净的环境中测试应用程序的部署,这是一个全新的版本.
有没有人实现过这种类型的环境架构,我想讨论同样可行性的实际好处.
>定义Dockerfiles或chef / puppet / ansible / salt配置.就像你的方法一样.
>将这些描述置于版本控制之下.就像你的方法一样.
>使用Jenkins A来CI和夜间构建图像并将它们上载到注册表中.为了管理不同的版本和保留旧图像.这在您的图表中引入了一个图像注册表.
>使用Jenkins-Swarm从属扩展这些图像.这样可以在Jenkins环境中进行临时部署.
在这里,我将建立软件和构建奴隶本身分开.
>我部署了一个Jenkins B,以便在环境中构建软件.
>现在,我选择要永久部署的容器和构建我想按需部署的容器.
>构建作业大量使用的永久性容器作为群体奴隶启动,每天由夜间构建进行交换.
> Ad-hoc容器由Jenkins-Docker-Plugin管理.
>对于更复杂的环境配置,我使用docker-compose来管理临时可用性.
>对于ad-hoc环境,即运行这些配置的VM,我使用docker-swarm.