持续集成:使用 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?

如何搭建一套Azure AD与ADFS集成身份的环境

如何自动化 aws 托管 UI 的徽标

如何将 Python Lambda 函数集成到 AWS Amplify 的管道中

重磅!AWS升级对Apache Hudi的集成

如何停止 aws codepipeline 部署阶段