使用Ansible,Jenkins和docker构建快速测试环境

thi*_*ter 6 jenkins ansible docker

我打算用ansible,jenkins和docker一起构建测试环境.计划是这样的.

为您在环境中使用的每个工具创建ansible playbooks并将它们存储在git上.使用jenkins创建作业以在dev服务器上创建docker容器,并使用ansible playbooks来配置docker容器.将创建Jenkins作业,以便用户可以选择要与docker容器一起使用的playbooks,并相应地构建容器.

整个概念可以概括如下图所示.

DEVOPS

我看到的好处是

自动复制精确的生产环境.
根据要求扩展测试环境.
为单个服务器上的应用程序测试提供不同的平台.
更快的集成测试.
推广敏捷方法论.
自由开发和定制测试环境.
开发人员和测试人员可以自己创建环境,即使他们对操作系统,配置一无所知.
在干净的环境中测试应用程序的部署,这是一个全新的版本.

有没有人实现过这种类型的环境架构,我想讨论同样可行性的实际好处.

bla*_*ops 4

我正在使用类似但不同的方法:

  • 定义 Dockerfile 或 Chef/puppet/ansible/salt 配置。就像你的方法一样。

  • 将这些描述置于版本控制之下。就像你的方法一样。

  • 使用 Jenkins A 进行 CI 和夜间构建映像并将其上传到注册表中。为了管理不同的版本并保留旧图像。这会在您的图表中引入图像注册表。

  • 使用 Jenkins-Swarm 从属扩展这些镜像。这使得您可以在 Jenkins 环境中进行临时部署。

在这里,我将软件的构建和构建从属本身的构建分开。

  • 我部署了 Jenkins B 以便在环境中构建软件。

  • 现在,我在想要永久部署的容器和构建我想要按需部署的容器之间进行选择。

    • 构建作业大量使用的永久容器作为集群奴隶启动,并通过夜间构建每天进行交换。
    • Ad-hoc 容器由 Jenkins-Docker-Plugin 管理。
    • 对于更复杂的环境配置,我使用 docker-compose 来管理临时可用性。
    • 对于临时环境,即用于运行这些配置的虚拟机,我使用 docker-swarm。

图表: 在此输入图像描述