Ein Update einer Veranstaltungswebsite veröffentlichen

LinuxBeginner
Jetzt üben

Einführung

Common Ground ist eine Community-Website zu Demonstrationszwecken. Besucher sehen sich Linux Evening an, öffnen die Details und lesen die Anmeldehinweise. Das nächste Release verlegt die Veranstaltung von Room A in die Community Hall. Du sollst dieses vorbereitete Update veröffentlichen und dabei die aktuelle Version erhalten.

Du unterscheidest ein installiertes von einem laufenden Release, wählst das Update aus und prüfst die echte Website. Anwendung und Veröffentlichungshilfe sind vorhanden; du musst weder programmieren noch Nginx konfigurieren. Grundkenntnisse im Terminal reichen aus. Alle Veranstaltungen und Adressen sind fiktiv.

Registerkarte Zweck
Website Die echte Community-Website besuchen.
Workstation Den vorbereiteten Arbeitsbereich und die Veröffentlichungshilfe verwenden.
Topology Den Zusammenhang zwischen Terminal, Dateien und Website verstehen.

Jedes Lab startet in einer eigenen vorbereiteten Umgebung. Die Registerkarten sind einsatzbereit.

Lerne die Website kennen und bereite das Update vor

Du prüfst den normalen Zustand der Website und installierst ein neues Release, ohne die Ansicht der Besucher zu verändern. Beginne in Website.

Den normalen Ablauf kennenlernen

Die Startseite stellt Common Ground vor und führt Linux Evening unter On the horizon auf. Aktuell steht dort Location: Room A. Scrolle nach unten: Im kleinen Fußbereich steht Release: event-v1. Ein Release ist ein bestimmter gespeicherter Stand der Website-Dateien.

Common Ground vor dem Update

Klicke in Website auf die Zeile Linux Evening. Die Detailseite zeigt Dienstag um 18:00 Uhr und Room A. Öffne dort Registration instructions; die Seite erklärt den demonstrierten E-Mail-Ablauf. Eine echte Anmeldung ist nicht nötig. Klicke oben auf das Logo COMMON GROUND, um in derselben Registerkarte zur Startseite zurückzukehren.

Diese Nutzerwege müssen erhalten bleiben. Die Startseite allein ist nicht der gesamte Dienst.

Eine getrennte Kopie vorbereiten

Wechsle zu Workstation. Das Terminal befindet sich bereits im bereitgestellten Veröffentlichungsbereich /home/labex/project/website-release. ls listet die Namen im aktuellen Verzeichnis auf:

ls

Du siehst packages, releases, current und release.sh. packages enthält die bereitgestellten, noch zu installierenden Versionen; releases enthält die installierten Versionen. current wählt die Version aus, die Besucher erhalten. Im nächsten Schritt untersuchst du diesen Verweis.

release.sh ist ein kleines bereitgestelltes Hilfsskript. bash führt es aus; die Wörter nach dem Dateinamen wählen eine Aktion und bei Bedarf ein Release. Du bedienst das Skript und musst keinen Bash-Code schreiben.

bash release.sh help

Lies die kurze Hilfe. install kopiert ein Paket in ein eigenes Verzeichnis; deploy wählt eine Version für die Website; rollback wählt eine bereits installierte Version. Keine dieser Aktionen entscheidet, ob die fachlich benötigten Seiten funktionieren.

Liste die bereitgestellten Versionen auf:

bash release.sh list

Sie heißen event-v1 und event-v2. Installiere das Update:

bash release.sh install event-v2

Erwartete Ausgabe:

Installed event-v2. The current website was not changed.

Prüfe, ob beide installierten Verzeichnisse existieren. Mit releases gibst du ls das aufzulistende Verzeichnis an:

ls releases

Du solltest event-v1 und event-v2 finden. Die getrennte Installation erhält die alte Version. Sie veröffentlicht das Update noch nicht.

Wechsle zurück zu Website und lade die Seite neu. Der Ort ist weiterhin Room A, im Fußbereich steht noch event-v1. Das ist beabsichtigt: Erst im nächsten Schritt wählst du das Update aus.

Wähle das Update aus und veröffentliche es

Du änderst das ausgewählte Release der Website und behältst die Version für die Wiederherstellung. Beginne in Workstation.

Die Auswahl verstehen

Ein symbolischer Link verweist im Dateisystem auf einen anderen Ort. Hier zeigt current auf das Verzeichnis eines installierten Release. Der bereitgestellte Webserver Nginx liest die Website-Dateien über diesen Link.

readlink gibt das Ziel eines symbolischen Links aus:

readlink current

Erwartete Ausgabe:

releases/event-v1

Dieser relative Pfad bezeichnet das Verzeichnis event-v1 innerhalb von releases in diesem Arbeitsbereich. Jedes Verzeichnis enthält HTML-Seiten, lokale CSS-Stile, die lokale Illustration und eine kleine Versionsdatei. Zusammen bilden sie ein vollständiges Website-Release.

cat gibt eine Datei aus. Bestätige vor der Veröffentlichung die Identität der Wiederherstellungsversion:

cat releases/event-v1/version.txt

Die Ausgabe ist event-v1. Erhalte das gesamte Verzeichnis. Falls das Update die Prüfungen nicht besteht, soll dieses Verzeichnis wieder ausgewählt werden; ein Neuaufbau oder Löschen würde diesen Plan gefährden.

Die installierte Version veröffentlichen

Wähle das Update aus:

bash release.sh deploy event-v2

Erwartete Ausgabe:

Selected event-v2. The server reports:
event-v2
Selection finished. Check the required pages before accepting this release.

Das Hilfsskript verwendet das installierte Verzeichnis, schaltet current über einen temporären Link und eine Umbenennung um und fragt die Version tatsächlich beim Server ab. So werden die alten Website-Dateien nicht überschrieben. Das beweist weder die Funktion aller Seiten noch garantiert es, dass eine ganze Browsersitzung gleichzeitig die Version wechselt.

Prüfe die Auswahl:

readlink current

Jetzt erscheint releases/event-v2.

Wechsle zu Website. Falls eine andere Seite geöffnet ist, klicke auf COMMON GROUND und lade die Startseite neu. Unter On the horizon steht nun Location: Community Hall. Der Fußbereich nennt event-v2.

Das veröffentlichte Update

Neuer Ort und Fußbereich bestätigen die Änderung. Vor der Freigabe musst du noch die wichtigen Nutzerwege prüfen.

Prüfe die Website und halte die Wiederherstellung bereit

Du prüfst das neue Release als Besucher und als HTTP-Client und bestätigst anschließend, dass die alte Version verfügbar bleibt. Beginne in Website.

Den Nutzerwegen folgen

Klicke auf Linux Evening. In der Seitenleiste muss Community Hall statt Room A stehen. Öffne dort Registration instructions. Die Seite muss die Teilnahmeschritte und events@example.test anzeigen, keinen Hinweis auf eine fehlende Seite.

Die aktualisierten Veranstaltungsdetails

Klicke in Website auf COMMON GROUND, um zur Startseite zurückzukehren.

Tatsächliche HTTP-Antworten prüfen

Wechsle zu Workstation. HTTP ist das Anfrage-Antwort-Protokoll dieser Website. Eine Anfrage nennt einen Pfad wie /registration.html; der Server liefert Status und Inhalt zurück. 200 bedeutet, dass die angeforderte Antwort erfolgreich war. 404 bedeutet, dass die angeforderte Seite nicht gefunden wurde.

curl sendet eine Anfrage. -sS blendet die Fortschrittsanzeige aus, zeigt aber Verbindungsfehler an. -o /dev/null verwirft den Antwortinhalt; /dev/null ist das Verwerfungsziel des Systems. -w gibt das nachfolgende Format aus. Die einfachen Anführungszeichen halten das Format zusammen, %{http_code} wählt den Status aus und \n beendet die Ausgabezeile.

127.0.0.1 bezeichnet diese Lab-Umgebung; Port 8081 ist der vorbereitete Website-Endpunkt. Nutze diese Adresse in Workstation, nicht im Terminal deines eigenen Computers. Der abschließende / fordert die Startseite an.

Prüfe die Startseite:

curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8081/

Das Ergebnis ist 200.

Prüfe Detail- und Anmeldepfad getrennt:

curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8081/events/linux-evening.html
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8081/registration.html

Beide müssen 200 liefern. Auch die Inhaltsprüfung in Website zählt: Eine Antwort mit 200, die die falsche Seite enthält, ist kein Erfolg.

Du kannst auch die kleine Versionsantwort abrufen, ohne ihren Inhalt zu verwerfen:

curl -sS http://127.0.0.1:8081/version.txt

Sie zeigt event-v2. Das ist ein nützlicher Beleg, ersetzt aber nicht die Prüfung von Seiten und Links.

Die Wiederherstellungsmöglichkeit erhalten

Das ursprüngliche Release muss intakt bleiben:

cat releases/event-v1/version.txt

Es erscheint weiterhin event-v1. Erhalte auch Seiten, Stile und Illustration; nur eine Versionsbezeichnung zu ändern bewahrt keine Website.

Wechsle zu Topology. Homepage reachable besagt lediglich, dass die Startseite antwortet. Es ist keine Freigabe des gesamten Release. Du hast die Nutzerwege unabhängig geprüft und eine vollständige Wiederherstellungsversion erhalten.

Zusammenfassung

Du hast ein getrenntes Release installiert, es ohne Überschreiben alter Dateien ausgewählt und echte Seiten und Links geprüft. Außerdem bleibt eine vollständige, bekanntermaßen funktionierende Version für die Wiederherstellung verfügbar. Im nächsten Lab nutzt du diese Möglichkeit, wenn die Startseite eines Release funktioniert, aber ein wichtiger Nutzerweg ausfällt.