【问题标题】:What is the best way to spawn and setup test environments (Amazon EC2) with Jenkins使用 Jenkins 生成和设置测试环境 (Amazon EC2) 的最佳方法是什么
【发布时间】:2014-12-22 20:33:15
【问题描述】:
我正在尝试自动化测试环境创建过程。我使用 Jenkins 作为我的 CI 服务器,并希望能够在 AmazonEC2 上生成新的 VM 实例(基于预定义的模板)。我知道如果你想将 VM 用作 jenkins 构建从站,它有一个插件。但我想将 VM 用作将部署构建工件的即用型测试环境。所以问题是什么是最好的方法?我目前正在考虑使用 Chef 配置新的 VM 实例,但如何生成 VM 本身是一个谜。任何帮助表示赞赏。谢谢。
【问题讨论】:
标签:
jenkins
amazon-ec2
continuous-integration
amazon
chef-infra
【解决方案1】:
听起来你想要Test-Kitchen 之类的东西。您可以使用 Chef 和 kitchen-ec2 启动机器,运行配方代码,然后在其上运行一些测试(通常是 serverspec 或 bats,但有很多测试驱动程序)。您可以从 Jenkins 主机本身运行 test-kitchen,因此 Jenkins 无需担心创建新实例。
【解决方案2】:
Ansible 对创建 Amazon EC2 实例等有很好的支持。有关详细信息,请参阅 this link。创建 EC2 实例后,您还可以使用 ansible 完全自动化您的应用程序部署。
【解决方案3】:
查看 Ansible 以实现部署自动化。我们所做的是让 Ansible 提供新的虚拟机,然后使用 chef/puppet 来配置管理实际的环境代码库。效果很好!
这是一个示例剧本架构:
---
- hosts: localhost
connection: local
gather_facts: True
roles:
- load_balancer
- cloud_servers
- hosts: infra
gather_facts: True
roles:
- deploy
- hosts: localhost
connection: local
gather_facts: True
roles:
- test
- clean_up