持续集成:使用 AWS Cloudformation+OpsWorks 在新创建的 EC2 实例上运行 Jenkins Build,最佳实践是啥?
Posted
技术标签:
【中文标题】持续集成:使用 AWS Cloudformation+OpsWorks 在新创建的 EC2 实例上运行 Jenkins Build,最佳实践是啥?【英文标题】:Continuous Integration: running Jenkins Build on newly created EC2 Instance using AWS Cloudformation+OpsWorks, What is best practice?持续集成:使用 AWS Cloudformation+OpsWorks 在新创建的 EC2 实例上运行 Jenkins Build,最佳实践是什么? 【发布时间】:2015-07-23 11:01:50 【问题描述】:我正在寻找最佳实践。
目前的情况是: 我有一个安装了 Jenkins 的正在运行的暂存实例。在 Jenkins 中,我创建了一个作业/项目,它使用 AWS Cloudformation 和 Opsworks 创建一个新的 EC2 实例。我使用 Opsworks、Chef 和 Berkshelf 自动将我们的 GIT 存储库从 Bitbucket 下载到新创建的 EC2 实例。
我的目标: 我想设置一个 CI 环境。我想在我的登台服务器上手动启动 Jenkins 作业。然后使用 Cloudformation 和 OpsWorks 设置一个全新的 EC2 实例。 (到目前为止,一切都已经正常工作,这种方式应该是一个很好的做法!?)现在我想在新创建的 EC2 实例上自动执行我的测试并保存结果(测试通过了?,代码质量测量工具的结果(CodeSniffer ,....) 在我的暂存服务器上的 Jenkins 中。运行测试后,我想终止 EC2 实例。
我想我可以在创建的 EC2 实例上安装一个 Jenkins 从属服务器,并将我的暂存服务器用作 Jenkins 主服务器。
这是最佳做法吗?
如何在新的测试服务器上运行测试、保存结果并随后关闭服务器?
感谢您的帮助!
最好的问候, 克里斯
【问题讨论】:
【参考方案1】:您是否考虑过使用 jenkins AWS 插件,它应该负责为您创建一个从站并使用 jenkins 注册它:
https://wiki.jenkins-ci.org/display/JENKINS/Amazon+EC2+Plugin
【讨论】:
【参考方案2】:您可能会发现这很有帮助 - https://github.com/jadekler/git-chef-basic-jenkins-ci。在 EC2 实例上旋转 jenkins 有点像厨师。您可以根据需要调整 jenkins 作业/厨师脚本(也许您不需要 ruby/java 而是需要 go 或 python)。如果需要,欢迎进一步提供帮助。
【讨论】:
以上是关于持续集成:使用 AWS Cloudformation+OpsWorks 在新创建的 EC2 实例上运行 Jenkins Build,最佳实践是啥?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 AWS CloudFormation 创建 Amazon VPC?