Развертывание кода 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). Этот файл содержит информацию о развертывании.

Другие вопросы по тегам