0

I have configured an aws asg using ansible to provision new instances and then install the codedeploy agent via "user_data" script in a similar fashion as suggested in this question:

Can I use AWS code Deploy for pulling application code while autoscaling?

CodeDeploy works fine and I can install my application onto the asg once it has been created. When new instances are triggered in the ASG via one of my rules (e.g. high cpu usage), the codedeploy agent is installed correctly. The problem is, CodeDeploy does not install the application on these new instances. I suspect it is trying to run before the user_data script has finished. Has anyone else encountered this problem? Or know how to get CodeDeploy to automatically deploy the application to new instances which are spawned as part of the ASG?

4

1 回答 1

0

AutoScaling 告诉 CodeDeploy 在启动用户数据之前启动部署。为了解决这个问题,CodeDeploy 为实例提供了长达一小时的时间来开始轮询第一个生命周期事件的命令,而不是 5 分钟。

由于您在使用自动部署而不是手动部署方面遇到问题,并且假设您没有对您忘记的实例进行任何手动更改,因此很可能存在特定于您的部署的依赖项,该依赖项在实例启动时尚不可用.

尝试列出部署成功所需的所有内容,并确保在安装主机代理之前每一项都可用。如果您可以足够快地登录到实例(在 AutoScaling 终止实例之前),您可以尝试获取主机代理日志和应用程序的日志,以找出部署失败的位置。

如果您认为主机代理无法完全安装,请确保您已安装 Ruby2.0。它应该在 AmazonLinux 上默认存在,但 Ubuntu 和 RHEL 需要先将其作为用户数据的一部分安装,然后才能安装主机代理。有一个安装程序日志/tmp,您可以在初始安装中检查问题(同样,您必须在实例终止之前快速获取日志)。

于 2015-07-16T16:35:07.470 回答