0

Я пытаюсь развернуть свое приложение с помощью CodeDeploy, но каждый раз, когда я сталкиваюсь, сообщение Deployment Failed с дополнительной информацией прилагается, которая гласит: No hosts succeeded. (Error code: HEALTH_CONSTRAINTS).Невозможно развернуть код с помощью CodeDeploy

Я не понимаю причину этого. Ниже перечислены шаги, выполняемые в порядке:

  • Я запустил экземпляр с IAM роли, которая имеет 2 политики присоединенные AmazonEC2FullAccess и AmazonS3FullAccess. Позже политика предлагает следующее:

    { 
        "Version": "2012-10-17", 
        "Statement": [ 
        { 
         "Effect": "Allow", 
         "Action": "s3:*", 
         "Resource": "*" 
        } 
        ] 
    } 
    
  • При запуске экземпляра из консоли AWS, я уточнил следующие в расширенном разделе: (как текст выбранного)

    apt-get -y update 
    apt-get -y install awscli 
    apt-get -y install ruby2.0 
    cd /home/ubuntu 
    aws s3 cp s3://aws-codedeploy-us-west-2/latest/install . --region us-west-2 
    chmod +x ./install 
    ./install auto 
    
  • Для толкать код, я написал:

    aws deploy push --application-name CDTestApp --s3-location s3://codedeploy-test-bucket-pc/PC.zip --source PulsarCloud/ 
    
  • Для развертывания, я писал:

    aws deploy create-deployment --application-name CDTestApp --s3-location bucket=codedeploy-test-bucket-pc,key=PC.zip,bundleType 
    zip,eTag="834db424710b1819b753444460dd361d" --deployment-group-name CDGroup 
    --deployment-config-name CodeDeployDefault.OneAtATime --description 
    MyTestApplication 
    
  • Я получил deployment id в обмен.

  • Когда-то развертывание превращается в сбой!

  • appspec.yml:

    version: 0.0 
    
    os: linux 
    
    files: 
    - source: /sdk/js/index.html 
        destination: /var/www/html 
    
    hooks: 
    BeforeInstall: 
        - location: /installerassets/installer.sh 
        timeout: 6000 
        runas: root 
    

Что может быть причиной этого?

Когда я вошел в машину и вошли:

sudo service codedeploy-agent status 

я получил: codedeploy-agent: unrecognized service

Но затем я попытался повторно установить его с помощью шагов here. Служба запущена, но не может развернуть код.

+0

ли агент работает или нет? Ваши последние несколько высказываний неясны. Получили ли вы статус sudo service codedeploy-agent? –

ответ

1

несколько вещей, чтобы указать на:

  • (Только для проверки здравомыслие назначения), роль размещена только имеет s3, но не EC2?
  • Является ли codedeploy.amazonaws.com включенным в доверительное отношение роли?
  • Чтобы установить агент, SUDO ./install авто следует использовать

Тот факт, что codedeploy-агент не распознается означает, что агент не установлен. Вероятно, это связано с тем, что sudo не используется.

Чтобы объяснить код ошибки, который вы видели: HEALTH_CONSTRAINT breakached означает, что используется по умолчанию один вариант развертывания. Когда развертывание завершилось с ошибкой для первого экземпляра, минимальный предел для здорового экземпляра (который равен 1) будет нарушен, следовательно, развертывание завершится неудачно.

0

Кроме того, после установки подтверждения codedeploy агента, убедитесь, что
1. экземпляр EC2 имеет разрешение для извлечения данных из s3 ведра, где отжимается пересмотр
2. Роль службы Codedeploy имеет следующие политики прилагается, а также:

 { 
     "Version": "2012-10-17", 
     "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
      "ec2:DescribeInstances", 
      "ec2:DescribeInstanceStatus", 
      "tag:GetTags", 
      "tag:GetResources" 
      ], 
      "Resource": "*" 
     } 
     ] 
    } 

3. экземпляр Tagging EC2 правильно и обеспечивая ту же пару ключ-значение в codedeploy