BlogCode-Bereitstellung in AWS automatisieren – 2

Code-Bereitstellung in AWS automatisieren – 2

WordPress-Bereitstellung in Devops mit AWS – Teil 2

Unter einem Deployment versteht AWS CodeDeploy den Prozess samt der in ihn involvierten Dateien und Skripte, um App-Content auf einer oder mehreren EC2-Instanzen bereitzustellen. In Teil 2 unseres Workshops stellen wir mit Hilfe von CodeDeploy WordPress auf EC2 bereit.

Dazu erstellen wir nun, noch immer auf unserem Entwicklungs-EC2-Server aus Teil 1 via SSH verbunden, wie folgt eine CodeDeploy-Application:

aws deploy create-application –application-name WordPress_App

Das Kommando gibt die „Application-ID“ zurück:

Das Erstellen einer Applikation in CodeDeploy

Nun müssen wir ein S3-Bucket erzeugen, das die in Teil 1 bereitgestellten Source-Dateien aufnehmen soll:

aws s3 mb s3://codedeploybucket989

Dann wechseln wir, sofern noch nicht geschehen ins Quellcode-Verzeichnis /tmp/WordPress und pushen den gesamten Inhalt einschließlich der appspec.yml-Datei auf den S3-Bucket.

aws deploy push –application-name WordPress_App –description „Das ist Revision 1 unserer Applikation WordPress-App“ –ignore-hidden-files –s3-location s3://<BUCKET>/WordPressApp.zip –source

Ist das geschehen, können wir unsere Bereitstellungsgruppe „WordPress_DG“ wir folgt erzeugen:

aws deploy create-deployment-group –application-name WordPress_App –deployment-config-name CodeDeployDefault.AllAtOnce –deployment-group-name WordPress_DG –ec2-tag-filters Key=Name,Value=CodeDeploy,Type=KEY_AND_VALUE –service-role-arn <Rollenname>

Das Erstellen einer Deployment-Gruppe in CodeDeploy

Das kann man selbstverständlich auch grafisch in der AWS Management-Console tun. Der Deployment-Typ kann übrigens „In-place“ oder „Blue/green“ sein. Ferner brauchen wir eine Service-Rolle in IAM und eine „Envrionment configuration“. Hier stehen wie in Teil 1 beschrieben „Autoscaling Gruppen“, „EC2-Instanzen“ oder „On Premise Instanzen“ zur Verfügung.

Spätestens jetzt müssen die gewünschten Ziel-EC2-Instanzen selbstverständlich auch verfügbar sein, denn CodeDeploy erzeugt selbst keine Infrastruktur. Allerdings verwenden wir in diesem Beispiel wie in Teil 1 erwähnt unsere Entwicklungs-Instanz auch als Bereitstellungziel.

Wie man sieht, spezifiziert die Deployment Gruppe ein Set individueller Ziel-Instanzen für das Deployment, die über Tags oder den Namen der Autoscaling Gruppe (sofern vorhanden) spezifiziert werden.

Das Erstellen einer Deployment-Gruppe in der AWS Management Console

Neben dem „Deployment type“ gibt es noch die „Deployment configuration“. Hier kann der Entwickler zwischen „AllAtOnce“, „HalfAtATime“ und „OneAtATime“ oder einer Custom-Configuration (Create deployment configuration) wählen. Eine Bereitstellungskonfiguration definiert Regeln, die bestimmen, wie schnell eine Anwendung bereitgestellt wird und welche Erfolgs- oder Fehlerbedingungen für eine Bereitstellung gelten.

Installiert man eine App auf mehreren Instanzen, braucht man einen Load Balancer

Nun können wir das eigentliche Deployment erzeugen, was letztendlich WordPress auf dem angegebenen Zielsystem ausrollt.

aws deploy push –application-name WordPress_App –description „This is a revision for the application WordPress_App“ –ignore-hidden-files –s3-location s3://<Sorce-Bucket-Name>/WordPressApp.zip –source

Das Erstellen eines Deployments in CodeDeploy

Auch das kann man natürlich alternativ in der Console tun.

Ein Deployment in der CodeDeploy Management-Console

Updates Management

Um zu verifizieren, dass das Deployment funktioniert hat, verbinden wir uns zunächst mit der öffentlichen IP-Adresse der Ziel-Instanz und stellen im Browser die WordPress-Installation/Konfiguration fertig.

Das Prüfen der Bereitstellung

Um die Update-Funktion zu testen, verbinden wir uns wieder mit dem Entwicklungsrechner und nehmen eine geringfügige Änderungen an den Quelldateien vor. Mit dem Linux-Befehl „sed“ können wir auf einfache Weise einige Seitenfarben in den CSS-Dateien unter /wp-conent/themes/twentyfifteen/style.css anpassen.

sed -i ’s/#fff/#768331/g‘ wp-content/themes/twentyseventeen/style.css

Die Änderungen pushen wir dann wieder mit

aws deploy push –application-name WordPress_App –s3-location s3://<Bucket-Name>/WordPressApp.zip –ignore-hidden-files

Nun müssen wir uns nur noch mit der CodeDeploy-Console verbinden, wechseln zu unserer WordPress_App, dort zum Tab „Revisions“ und klicken auf „Deploy application“. Das Ergebnis können wir nach wenigen Minuten wieder visuell auf der Ziel-Instanz überprüfen.

Kontakt

Dein INCAS Team
Akkordion öffnen
telephone-icon-contact-coaching-box
0800 4772466
email-icon-contact-coaching-box
info@incas-training.de

*“ zeigt erforderliche Felder an

Hidden
Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Bewertungen

Kundenstimme männlich
Dimitri B.
HSBC Trinkaus
star-participantstar-participantstar-participantstar-participantstar-participant
Sehr informativ und in der Praxis wiederverwendbar.
Kundenstimme männlich
Nina P.
GEUTEBRÜCK GmbH
star-participantstar-participantstar-participantstar-participantstar-participant
Das Seminar hat meine Erwartungen voll erfüllt. Man hat gemerkt, dass der Trainer Spaß an der Sache und sehr viel Ahnung vom Thema hat. Das Gefühl hat man nicht in allen Schulungen (auf Schulungen im Allgemeinen bezogen).
Kundenstimme männlich
Wolfgang N.
ThyssenKrupp Nirosta
star-participantstar-participantstar-participantstar-participantstar-participant
Eine gute Adresse für das Erlernen scheinbar schwieriger und trockener Themen, die hier gut aufbereitet werden.
Kundenstimme männlich
Philipp M.
Wacom Europe GmbH
star-participantstar-participantstar-participantstar-participantstar-participant
Sehr gute Organisation, guter Trainer - alles super!