Nach einem fehlerhaften Release den Dienst wiederherstellen

LinuxBeginner
Jetzt üben

Einführung

Common Ground hat einen weiteren Release-Kandidaten zur Bewertung. Sein Veröffentlichungsbefehl kann erfolgreich sein, obwohl Besucher eine wichtige Aktion nicht abschließen können. Du sollst diesen Unterschied erkennen und bei Bedarf das bekanntermaßen funktionierende Release wiederherstellen.

Diese wegwerfbare Trainingswebsite hat keine echten Besucher. Du übst die Wiederherstellung absichtlich; in echten Auslieferungsprozessen können Prüfungen vor der Veröffentlichung einen Kandidaten ablehnen, bevor Besucher ihn erhalten.

Dies ist eine frische Umgebung: event-v1 mit Room A läuft unabhängig vom vorherigen Lab. Du bereitest event-v3 vor, prüfst die echten Nutzerwege und stellst den ursprünglichen Dienst ohne Bearbeitung der bereitgestellten Dateien wieder her. Workstation, Website und Topology sind einsatzbereit.

Bereite das Wiederherstellungsziel vor

Du identifizierst die funktionierende Version und installierst den Kandidaten getrennt, bevor du die Website änderst. Beginne in Website.

Den gewünschten Wiederherstellungszustand kennen

Auf der Startseite findet Linux Evening in Room A statt; der Fußbereich nennt event-v1. Klicke auf die Veranstaltungszeile, prüfe die Detailseite und öffne Registration instructions. Diese normalen Funktionen muss eine Wiederherstellung zurückbringen. Kehre mit COMMON GROUND in Website zur Startseite zurück.

Wechsle zu Workstation. Das Terminal befindet sich bereits in /home/labex/project/website-release. Prüfe den aktuellen symbolischen Link:

readlink current

Er zeigt releases/event-v1. Prüfe die erhaltene Versionsdatei:

cat releases/event-v1/version.txt

Sie zeigt event-v1. Dieses Verzeichnis ist hier dein ausdrückliches Wiederherstellungsziel. Die „vorherige“ Version ist nicht in jedem System automatisch die richtige Wahl; in diesem Lab hast du ihre benötigten Seiten als funktionierend bestätigt.

Den Kandidaten vorbereiten

Liste die bereitgestellten Pakete auf:

bash release.sh list

Diese Umgebung enthält event-v1 und event-v3. Der Kandidat verlegt den Ort in die Community Hall. Ein neuer Name oder eine erfolgreiche Installation belegt keine Qualität.

Installiere ihn, ohne ihn auszuwählen:

bash release.sh install event-v3

Die Meldung bestätigt, dass die aktuelle Website unverändert blieb. Liste die installierten Releases auf:

ls releases

event-v1 und event-v3 müssen vorhanden sein. Erhalte beide unverändert: Den Kandidaten bewertest du, die Ausgangsversion kannst du wiederherstellen.

Erkenne ein fehlerhaftes Release

Du veröffentlichst den Kandidaten und unterscheidest eine erfolgreiche Auswahl von funktionierenden Nutzeraktionen. Beginne in Workstation.

Die erfolgreiche Auswahl beobachten

Wähle den Kandidaten aus:

bash release.sh deploy event-v3

Das Skript meldet event-v3 und fordert zur Seitenprüfung auf. Der Befehl hat die Auswahl abgeschlossen, nicht die fachlichen Anforderungen bewertet.

Prüfe den Startseitenstatus mit den curl-Optionen aus dem ersten Lab:

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

Die Antwort ist 200. Auch der Versionsendpunkt funktioniert:

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

Er zeigt event-v3. Keine dieser Beobachtungen bestätigt die Funktion des Veranstaltungslinks.

Den für Besucher sichtbaren Fehler finden

Wechsle zu Website, kehre mit COMMON GROUND zur Startseite zurück und lade neu. Die Startseite wirkt vollständig und zeigt Community Hall. Klicke auf Linux Evening.

Statt der Details siehst du Let's get you back on track. und 404 / A SMALL DETOUR. Das ist die gestaltete Fehlerseite für fehlende Seiten. Sie sieht hochwertig aus, aber das HTTP-Ergebnis bedeutet weiterhin einen Fehler für die angeforderte Veranstaltung.

Eine tatsächlich fehlende Veranstaltungsseite im Kandidaten

Der Veranstaltungslink des Kandidaten zeigt auf /events/container-evening.html. Fordere in Workstation genau diesen Pfad an:

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

Erwartet wird 404. Das ist ein beabsichtigter Beleg, kein zu reparierender oder zu überspringender Befehl. Ohne die curl-Option zum Fehlschlagen bei HTTP-Fehlern kann curl bei 404 normal enden: Eine Serverantwort unterscheidet sich von einem Verbindungsfehler.

Wechsle zu Topology. Dort kann weiterhin Homepage reachable stehen, weil die eng begrenzte Prüfung erfolgreich ist. Der benötigte Veranstaltungspfad funktioniert nicht. Du musst das Release ablehnen und die bekannte funktionierende Version wiederherstellen, statt den Dienst anzuhalten oder den Kandidaten umzuschreiben.

Stelle die bekannte funktionierende Version wieder her und prüfe sie

Du stellst die ursprüngliche Website wieder her und bestätigst, dass Besucher sie erneut nutzen können. Beginne in Workstation.

Das erhaltene Release auswählen

rollback wählt eine bereits installierte Version aus. Es repariert oder erstellt den fehlerhaften Kandidaten nicht neu. Stelle dein geprüftes Wiederherstellungsziel wieder her:

bash release.sh rollback event-v1

Erwartete Ausgabe:

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

Prüfe den symbolischen Link:

readlink current

Er wählt releases/event-v1. Das Verzeichnis event-v3 bleibt gespeichert; es für spätere Untersuchungen zu behalten bedeutet nicht, dass es weiterhin Besucher bedient.

Den wiederhergestellten Nutzerweg prüfen

Wechsle zu Website. Der Browser steht möglicherweise noch auf der fehlenden URL des Kandidaten. Klicke auf COMMON GROUND und lade die Startseite neu. Sie sollte Room A und event-v1 zeigen. Klicke erneut auf Linux Evening: Der wiederhergestellte Link öffnet /events/linux-evening.html. Öffne Registration instructions und prüfe, ob die Teilnahmeschritte verfügbar sind.

Die wiederhergestellten Veranstaltungsdetails

Die alte URL, die nur der Kandidat verlinkte, würde weiterhin 404 liefern. Die Wiederherstellung bringt die tatsächlichen Links der guten Website zurück, statt jede fehlende URL anzulegen.

Prüfe die wiederhergestellten Pfade in Workstation:

curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8081/
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

Alle drei liefern 200. Die Browserprüfungen haben auch den richtigen Inhalt bestätigt.

Erhalte beide installierten Versionen:

ls releases

Du solltest weiterhin event-v1 und event-v3 finden. Der Dienst ist wiederhergestellt; der Kandidatenfehler bleibt eine spätere Entwicklungsaufgabe. Diese Übung stellt nur statische Website-Dateien wieder her. Sie macht weder Datenbankänderungen noch Nutzereingaben oder eine gesamte Browsersitzung atomar rückgängig.

Zusammenfassung

Du hast erlebt, dass ein echter Veröffentlichungsbefehl erfolgreich sein kann, während ein Nutzerweg fehlschlägt. Du hast den Kandidaten abgelehnt und die vollständige bekannte funktionierende Website wiederhergestellt. Du hast sowohl echte Seiteninhalte als auch HTTP-Antworten geprüft. Der Kandidat bleibt für Untersuchungen erhalten; die Wiederherstellung hat ihn nicht unbemerkt repariert.