0

当新的应用程序版本发布时,我使用 CodeShip 将我的应用程序部署到 AWS EC2 实例。CodeShip 首先将我的应用程序打包成 .zip 并放入 S3。每个部署包都使用不同的文件名生成。当我使用 CodeShip 进行部署时,他们会在CodeDeploy中创建一个新修订版并将其部署到所有当前实例。

在一个方向上,每次我部署新版本时,它都会部署到我所有已经启动的实例,但是如何将我的应用程序的最新版本从 CodeDeploy 部署到新的实例?有什么方法可以使用 aws-sdk(Ruby 或 cli)来实现这一点?

我使用 OpsWorks 来维护我的实例,并使用自定义 Chef 食谱来构建环境。

谢谢

4

2 回答 2

1

由于您有一组 EC2 实例,您希望它们运行相同的应用程序,因此请考虑使用 AutoScaling Group (ASG)。然后,基于 ASG(不是 EC2 实例标签)创建部署组。下次在此 ASG 中启动任何新机器时,Code Deploy 将自动运行并部署最后一次成功的部署包。我已经使用这种方法好几个月了,而且效果很好。

于 2016-09-12T13:19:43.280 回答
0

在 CodeDeploy http://aws.amazon.com/codedeploy/faqs/中,如果您转到概念部分并查看问题“什么是部署组”,在答案中您将更多地了解部署组的工作原理。

CodeDeploy 在创建新部署时使用部署组中的标签来查找 EC2 实例。所以对于新生的实例,基本上你只需要在那个部署组中用相同的标签来标记它们,然后用你想要的版本启动一个新的部署。CodeDeploy 将在部署组中找到所有标记有标签的 EC2 实例。

但是你应该注意到这一点,如果你想手动启动一个新的 EC2 实例,你需要做几件事。您可以按照此处的步骤操作:http: //docs.aws.amazon.com/codedeploy/latest/userguide/how-to-prepare-instances.html启动与 CodeDeploy 一起使用的实例。

在实例被标记并正确设置后,您可以按照当前的方式启动具有最新修订版的新部署。修订应由 CodeDeploy 自动部署到新实例。

于 2015-01-17T00:53:41.510 回答