AWS代码部署部署失败

时间:2016-03-23 05:37:21

标签: github autoscaling aws-code-deploy

我有一个弹性负载均衡器,上面运行着2个实例。我想将一个应用程序部署到这个弹性扩展组。我听说是codedeply并尝试。我对此几乎没有疑问。当我创建一个新部署时,我总是重新连接到GitHub。我无法解决这个问题。第二,当我尝试部署时,我收到此错误“部署无法继续:约束'默认'需要至少1个健康主机才能继续。剩余的主机将被跳过。” 所以我检查了我的弹性负载平衡,我发现我有2个所需实例和2个最小健康实例的配置。所以我试图将最小健康实例修改为1,它会自动终止一个实例。我不知道我在哪里做错了。请帮我解决这个问题。

4 个答案:

答案 0 :(得分:1)

确保您拥有健康的主机。如果没有,则暂时将部署配置类型更改为 AllAtOnce ,因为这在部署之前不需要健康的主机。部署完成后,您可以将其更改回原始设置。

同时检查CodeDeploy应用程序配置中的Auto Scaling组目标是否有效。蓝绿部署将复制并替换Auto Scaling组,因此请确保应用程序配置使用有效的源Auto Scaling组开始。

答案 1 :(得分:0)

对于第一个问题,如果您尝试从Github仓库进行部署,则在开始部署之前,您需要使用Github完成身份验证过程。

对于第二个问题,您可以通过在部署组中添加标记来指定要部署到的实例。确保您的实例标记正确,以便CodeDeploy可以在部署期间找到实例。

答案 2 :(得分:0)

我认为您使用CodeDeployDefault.OneAtATime (MinimumHealthyHosts:99%)

100个实体正在运行,你可以成功。

如何使用 CodeDeployDefault.AllAtOnce(MinimumHealthyHosts:0%) 要么 CodeDeployDefault.HalfAtATime(MinimumHealthyHosts:50%)

我成功了AllAtOnce和HalfAtATime ※使用自动缩放组,AZ1a的1个实例和AZ1c的1个实例。

答案 3 :(得分:0)

这件事也让我头疼。这是我修复它的方式。 发生这种情况是因为codeDeploy通过在端口80上默认命中实例来检查ec2实例的运行状况。在部署之前,您需要在实例上运行下面的bash脚本并检查脚本是否有效。必须启动httpd服务。重新启动实例。

    #!/bin/bash
    sudo su
    yum update -y
    yum install httpd -y
    yum install ruby
    yum install aws-cli
    cd ~
    aws s3 cp s3://aws-codedeploy-us-east-1/latest/install . --region us-east-1
    chmod +x ./install
    ./install
    echo 'hello world' > /var/www/html/index.html
    hostname >> /var/www/html/index.html
    chkconfig httpd on
    service httpd start