2017-01-23 160 views
1

我是AWS的新手,我試圖使用Github上的AWS CodeDeploy進行部署。 爲此,我創建了名爲CodeDeployDemo的實例並將角色和策略附加到實例。錯誤:AWS CodeDeploy中的HEALTH_CONSTRAINTS從Github部署到AWS CodeDeploy

Policy ARN arn:aws:iam::378939197253:policy/CE2CodeDeploy9 

我的原則是:

{ 
"Version": "2012-10-17", 
"Statement": [ 
    { 
     "Action": [ 
      "s3:Get*", 
      "s3:List*" 
     ], 
     "Effect": "Allow", 
     "Resource": "*" 
    } 
] 

}

,並附着的策略命名爲AmazonEC2RoleforAWSCodeDeploy 我也裝CodeDeploy代理我的Ubuntu一步一步如下:

$chmod 400 Code1.pem 
$ssh -i "Code1.pem" [email protected] 
$sudo apt-get update 
$sudo apt-get install awscli 
$sudo apt-get install ruby2.0 
$cd /home/ubuntu 
$sudo aws s3 cp s3://aws-codedeploy-us-east-1/latest/install . --region us-east-1 
$sudo chmod +x ./install 
$sudo ./install auto 

然後我創建我的應用程序並從GitH部署UB到CodeDeploy使用CodeDeployDefault.OneAtATime

但在最後階段,它顯示了以下錯誤:

Deployment failed: Because too many individual instances failed deployment, 
too few healthy instances are available for deployment, 
or some instances in your deployment group are experiencing problems. 
(Error code: HEALTH_CONSTRAINTS) 

注:當我部署running.I停止其他情況我只有一個實例運行。 請幫我找到解決方案。提前致謝。!!

回答

2

發生這種情況是因爲codeDeploy通過點擊實例來檢查ec2實例的健康狀況。在部署之前,您需要在實例下運行bash腳本,並檢查腳本是否正常工作。 httpd服務必須啓動。重新啓動實例。

#!/bin/bash 
    sudo su 
    apt-get update -y 
    apt-get install apache2 -y 
    apt-get install ruby2.0 
    apt-get install awscli 
    cd ~ 
    aws s3 cp s3://aws-codedeploy-us-east-1/latest/install . --region us-east-1 
    chmod +x ./install 
    ./install auto 
    echo 'hello world' > /var/www/html/index.html 
    hostname >> /var/www/html/index.html 
    update-rc.d apache2 defaults 
    service apache2 start