【问题标题】:Codedeploy with AWS ASG使用 AWS ASG 进行代码部署
【发布时间】:2015-10-05 20:26:39
【问题描述】:

我已经使用 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 的一部分生成的新实例?

【问题讨论】:

    标签: amazon-web-services ansible-playbook aws-code-deploy


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-06-12
      • 2016-04-08
      • 2023-03-19
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多