我试图使用Jenkins将构build环境移至EC2。 我有很多来源检查每一次,所以我想在源代码之间永久保存源。
如果Jenkins在需要时停止/启动EC2实例(因为我可以将AMI与根EBS卷相关联),这将很容易。 但Jenkins在不使用的情况下终止实例。
我已经尝试制作一个单独的EBS卷,并使用Jenkins的启动命令将其附加到EC2实例,问题是EBS卷和EC2实例可能处于不同的可用区域。 Jenkins在启动实例时无法控制可用区域。
那么有没有办法使用Jenkins / EC2接口保持构build状态。 快照也许?
看到这个非问题从我多一点上下文。
我看了Jenkins的源代码,这是一个合理的解决办法。 不需要太多黑客手段来增加select某个地区的可用性区域的选项,或者将终止方式改为简单的停止方式。 我认为这是最好的方法。
如果有足够的动机,我可能会发布一个补丁。 源代码位于https://github.com/jenkinsci/ec2-plugin/,如果您在Java中得心应手。
我会build议看看这个部署pipe理工具。 托盘社区中越来越多的人将其与Jenkins一起使用,以完成您所描述的事物的types。
Pallet是一个类似Chef / Puppet的clojure框架,它使用JClouds与Amazon,Rackspace或其他云提供商连接。 如果需要运行testing套件,Jenkins可以调用Maven Pallet来部署整个集群。 按照你所描述的方式完全可能,但是在这个时候需要对JClouds和Pallet的工作有一些具体的了解。
如果你所要做的只是你所描述的,ec2-plugin修改可能是最好的方法。 如果你需要进一步推进,你想要维护的实例,你可以看看Pallet + Jenkins。