Развертывание кода Amazon EC2 Нет хостов успешно
Я новичок в Amazon Code Deploy. Я получаю ошибку при развертывании
Ошибка развертывания
Нет хостов не удалось
Я проверил сервисный код deploy-agent на моем компьютере с Linux, и он работает. Как я могу решить эту проблему?
3 ответа
В большинстве случаев эта проблема возникает из-за недостаточных разрешений IAM для службы экземпляров и CodeDeploy. Вам необходимо проверить файл /var/log/aws/codedeploy-agent/codedeploy-agent.log для получения подробной информации. Также в /etc/codedeploy-agent/conf/codedeployagent.yml
файл, который вы можете установить :verbose: true
чтобы получить больше информации в файле журнала.
Это политики IAM, которые необходимо обновить:
// Policy Role for Code Deploy
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"autoscaling:PutLifecycleHook",
"autoscaling:DeleteLifecycleHook",
"autoscaling:RecordLifecycleActionHeartbeat",
"autoscaling:CompleteLifecycleAction",
"autoscaling:DescribeAutoscalingGroups",
"autoscaling:PutInstanceInStandby",
"autoscaling:PutInstanceInService",
"ec2:Describe*"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
// Policy Trust for Code Deploy
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": [
"codedeploy.us-west-2.amazonaws.com",
"codedeploy.us-east-1.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
// Instance Role for EC2 Instance
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:Get*",
"s3:List*"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
Это происходит потому, что codeDeploy проверяет работоспособность экземпляров 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 auto
./install auto
echo 'hello world' > /var/www/html/index.html
hostname >> /var/www/html/index.html
chkconfig httpd on
service httpd start
Как сказал BrunoLevy, нам потребуется дополнительная информация о развертываниях, которые вы пытались сделать.
Однако в качестве отправной точки для отладки вы можете наблюдать, на каком этапе ваше развертывание не удалось, со страницы развертывания.
Вы также можете посмотреть файл журнала агента хоста на ваших хостах (/var/log/aws/codedeploy-agent/codedeploy-agent.log). Этот файл содержит информацию о развертывании.