我已经使用ansible配置了一个aws asg来配置新实例,然后通过“user_data”脚本以与此问题中建议类似的方式安装codedeploy代理:
Can I use AWS code Deploy for pulling application code while autoscaling?
CodeDeploy工作正常,我可以在创建后将我的应用程序安装到asg上。当通过我的一个规则(例如高CPU使用率)在ASG中触发新实例时,正确安装了codedeploy代理。问题是,CodeDeploy不会在这些新实例上安装应用程序。我怀疑它是在user_data脚本完成之前尝试运行的。还有其他人遇到过这个问题吗?或者知道如何让CodeDeploy自动将应用程序部署到作为ASG一部分生成的新实例中?
答案 0 :(得分:0)
AutoScaling告诉CodeDeploy在用户数据启动之前启动部署。为了解决这个问题,CodeDeploy为实例提供长达一个小时的时间来开始轮询第一个生命周期事件而不是5分钟的命令。
由于您遇到自动部署问题而不是手动部署问题,并且假设您没有对您忘记的实例进行任何手动更改,因此很可能存在特定于您的部署的依赖关系。在实例启动时尚未提供。
尝试列出部署成功所需的所有内容,并确保在安装Host Agent之前每个部分都可用。如果您可以足够快地登录实例(在AutoScaling终止实例之前),您可以尝试获取主机代理日志和应用程序的日志,以找出部署失败的位置。
如果您认为Host Agent无法完全安装,请确保已安装Ruby2.0。默认情况下它应该存在于AmazonLinux上,但是在安装Host Agent之前,Ubuntu和RHEL需要将其作为用户数据的一部分安装。在/tmp
中有一个安装程序日志,您可以在初始安装中检查问题(同样,您必须在实例终止之前快速获取日志)。