2016-08-04 14 views
3

i alles eingerichtet haben nach diesem ArtikelAWS Code deploy + bitbucket = failed (Fehlercode HEALTH_CONSTRAINTS)

https://aws.amazon.com/tw/blogs/apn/announcing-atlassian-bitbucket-support-for-aws-codedeploy/

Hier ist mein env:

Instanz (freie Tier mit amazon linux)
- apache 2.4 installiert

Sicherheitsgruppe
- nur 22 (nur meine IP-Zugriff) und 80-Port

Iptables geöffnet gestoppt

2 Rollen gesetzt
- eine für die Verknüpfung von S3 < -> bitbucket (eingebundene benutzerdefinierte Richtlinie)
- eine Rolle ist für den Einsatz Gruppe (eingebundene AWSCodeDeployRole Politik)

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Sid": "", 
     "Effect": "Allow", 
     "Principal": { 
     "Service": "codedeploy.amazonaws.com" 
     }, 
     "Action": "sts:AssumeRole" 
    } 
    ] 
} 

Das Skript einzusetzen versucht, ist
https://s3.amazonaws.com/aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.zip

Permission /var/www/* von EC2-Benutzer mit 755 Erlaubnis

-Agent Service codedeploy-Agent-Status gehört = Der AWS CodeDeploy-Agent wird als PID 7200 ausgeführt.

Hinweise: Es gibt einige ZIP-Dateien in meinem s3-Bucket, die für jede Bereitstellung hochgeladen werden.

Fehlercode: HEALTH_CONSTRAINTS

jemand eine Idee, was die Ursachen des Einsatzes scheitern?

update1 Nachdem ich die Instanz mit iam Profil neu gestartet habe, kann die Anwendung bereitgestellt werden. Aber es immer noch nicht bestanden, wenn ich Ansicht Ereignisse klicken, ist es wie folgt log:

Error CodeScriptFailed 
Script Namescripts/install_dependencies 
MessageScript at specified location: scripts/install_dependencies run as user root failed with exit code 1 
Log TailLifecycleEvent - BeforeInstall 
Script - scripts/install_dependencies 
[stdout]Loaded plugins: priorities, update-motd, upgrade-helper 
[stdout]Resolving Dependencies 
[stdout]--> Running transaction check 
[stdout]---> Package httpd.x86_64 0:2.2.31-1.8.amzn1 will be installed 
[stdout]--> Processing Dependency: httpd-tools = 2.2.31-1.8.amzn1 for package: httpd-2.2.31-1.8.amzn1.x86_64 
[stdout]--> Processing Dependency: apr-util-ldap for package: httpd-2.2.31-1.8.amzn1.x86_64 
[stdout]--> Running transaction check 
[stdout]---> Package apr-util-ldap.x86_64 0:1.4.1-4.17.amzn1 will be installed 
[stdout]---> Package httpd-tools.x86_64 0:2.2.31-1.8.amzn1 will be installed 
[stdout]--> Processing Conflict: httpd24-2.4.23-1.66.amzn1.x86_64 conflicts httpd < 2.4.23 
[stdout]--> Processing Conflict: httpd24-tools-2.4.23-1.66.amzn1.x86_64 conflicts httpd-tools < 2.4.23 
[stdout]--> Finished Dependency Resolution 
[stderr]Error: httpd24-tools conflicts with httpd-tools-2.2.31-1.8.amzn1.x86_64 
[stderr]Error: httpd24 conflicts with httpd-2.2.31-1.8.amzn1.x86_64 
[stdout] You could try using --skip-broken to work around the problem 
[stdout] You could try running: rpm -Va --nofiles --nodigest 

Wer, was das Problem ist?

Antwort

0

Das hängt von Ihrer Bereitstellungskonfiguration ab, aber im Grunde sind 1 oder mehr Bereitstellungen fehlgeschlagen.

HEALTH_CONSTRAINTS: Der Einsatz scheiterte an zu vielen Fällen erfolgreich innerhalb der Instanz gesundheitlichen Einschränkungen eingesetzt werden

angegeben

http://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html

Überprüfen Sie Ihre deployment configuration settings. Der gesamte Fehler/Erfolg der Bereitstellung basiert auf diesen Einstellungen. Probieren Sie die CodeDeployDefault.AllAtOnce aus und wählen Sie sich nach Bedarf ein.

Auch Einstellungen AWS CodeDeploy Instance Health überprüft, vor allem minimum-healthy-hosts

2

Der Fehlercode HEALTH_CONSTRAINTS bedeutet mehr Fälle als erwartet ausgefallen ist, die durch die Deployment-Konfiguration definiert ist.

Weitere Informationen dazu, warum die Bereitstellung fehlgeschlagen ist, können Sie in der Bereitstellungskonsole https://region.console.aws.amazon.com/codedeploy/home?region=region#/deployments auf die fehlgeschlagene deploymentID klicken und dann zur Seite mit den Bereitstellungsdetails umleiten, die alle in der angegebenen Bereitstellung enthaltenen Instanzen enthält Jede Zeile enthält das Lebenszyklusereignis der Instanz. Klicken Sie dann auf ViewEvents. Wenn der Link View Logs angezeigt wird, können Sie den Grund für den Fehlschlag dieser Instanzbereitstellung sehen.

Wenn die Konsole nicht genügend Informationen für Ihre Anforderungen enthält, finden Sie das Protokoll der Instanz unter /var/log/aws/codedeploy-agent/codedeploy-agent.log. Es enthält die Protokolle für die neuesten Bereitstellungen.

+0

i Fehler in Log gefunden habe: InstanceAgent :: Plugins :: CodeDeployPlugin :: CommandPoller: Fehlende Berechtigungsnachweise - bitte prüfen, ob diese Instanz mit einer IAM-Instanzprofil gestartet wurde – hkguile

+0

, dass es auch tun würde. Keine Ihrer Bereitstellungen ist erfolgreich, da Sie keine Berechtigungen für die Bereitstellung haben. Sie sind alle fehlgeschlagen. –

0

Es scheint, dass ein Konflikt zwischen einem der Abhängigkeiten besteht, die Sie in Ihrer appspec.yaml-Datei und Ihrem httpd24-tools-Dienst installieren möchten.

[stderr]Error: httpd24-tools conflicts with httpd-tools-2.2.31-1.8.amzn1.x86_64 
[stderr]Error: httpd24 conflicts with httpd-2.2.31-1.8.amzn1.x86_64 
[stdout] You could try using --skip-broken to work around the problem 

So versuchen Sie, die Abhängigkeit Installationsproblem zu lösen. Sie können versuchen, Abhängigkeiten manuell auf Ihrem ec2 zu installieren und eine Lösung für diesen Konflikt zu finden. Wenn Sie es gelöst haben, bringen Sie die Lösung in Ihre appspec.yaml-Datei und installieren Sie die Abhängigkeiten über Code-Deployment.

1

Dies passiert, weil der CodeDeploy den Zustand der ec2-Instanzen durch das Treffen von Instanzen überprüft. Vor der Bereitstellung müssen Sie das Bash-Skript für die Instanzen ausführen und prüfen, ob das Skript funktioniert hat. Der httpd-Dienst muss gestartet sein. Starten Sie die Instanz neu.

#!/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 auto 
    echo 'hello world' > /var/www/html/index.html 
    hostname >> /var/www/html/index.html 
    chkconfig httpd on 
    service httpd start 
Verwandte Themen