Domain-Provider- und auch Forum-Domain-Wechsel, also erstmal ein Upgrade machen… schlechte Idee, habe vergessen, dass 50% meiner Discourse-Upgrades fehlschlagen .
Vielleicht ein Problem mit “gem ‘mini_racer’” und einige zu alte Distro/gcc-Kommentare gefunden, aber da die Domain in 9 Tagen abläuft, habe ich mich einfach entschieden, das Backup über die Konsole wiederherzustellen, da die Seite jetzt nicht erreichbar ist (und ich habe gerade die Nachricht veröffentlicht, dass sich die Foren-URL ändert, also könnten die Leute es gerade tatsächlich versuchen, oh oh).
Was ebenfalls fehlschlägt. Oh oh, anscheinend ist die Seite noch etwas länger nicht erreichbar…
Logs angehängt, ziemlich ratlos (wie immer), muss noch ein paar Besorgungen machen, also drücke ich die Daumen für eine einfache Lösung.
Vorerst möchte ich einfach zur vorherigen Version zurückkehren.
Dann, wenn ich genug Zeit habe, werde ich prüfen, ob es überhaupt “einfach” möglich ist, ein Upgrade durchzuführen, oder ob ich nach 10 Jahren endlich ein neues Ubuntu von Grund auf neu mache und die Sachen dorthin verschiebe. Aber wenn ich daran denke, was ich sonst noch im Laufe der Jahre gemacht habe… oh je.
Ja, aber die Einrichtung eines neuen Servers und die Überlegung, ob auch die Quellcodeverwaltung verschoben werden soll und was auch immer ich über die Jahre installiert habe, um es in einem 24/7-Cloud-Droplet zu haben… Etwas, wofür ich mir mindestens einen Tag Zeit nehmen möchte. Was ich jetzt nicht habe.
Okay, für den Moment stelle ich einfach das gestrige Droplet wieder her und spiele das Backup darauf ein. Ich hoffe, das klappt zumindest.
Ernsthaft, wenn ein Upgrade fehlschlägt, sollte es eine automatische Ausfallsicherung geben, die zum vorherigen Zustand zurückkehrt. Ein Backup Ihres Droplets zu erstellen, scheint etwas übertrieben und ist vom Administrator abhängig. Paranoid zu sein und zwei Instanzen zu haben und immer damit zu beginnen, die aktive auf die älteste zu verschieben und diese zu aktualisieren… nun, wahrscheinlich sollte ich das heutzutage tun.
Wenn Ihr Betriebssystem 4 Jahre nach dem Ende seiner Lebensdauer ist, können Sie keine Funktionalität von Upgrades mehr erwarten.
Wechseln Sie zu einer neuen VM. Es ist unwahrscheinlich, dass auf dem alten Server noch etwas ist, was Sie benötigen. Ich weiß nicht, von welcher Quellcodeverwaltung Sie sprechen könnten.
Aber es hat mich 2 Jahre gekostet, alle Home-Instanzen auf WIN11 zu aktualisieren (= immer knapp bei Kasse).
Finnland stellt Ende dieses Monats auf reines HD-Fernsehen um (jemand schaut tatsächlich nicht alles über Netflix = ja) und ich arbeite seit Monaten daran.
Habe noch einen W7/IIS7 Webserver, der nicht aktualisiert wurde
Und Discourse steht ganz unten auf dieser Liste… vielleicht im Sommer.
Es gibt Dinge, die getan werden müssen, und Dinge, die getan werden können. Die Realität ist hart.
Es gab einige Probleme bei der Wiederherstellung des Droplet-Backups, aber ich habe die Dinge wieder zum Laufen gebracht. Puh.
Nun, ich musste die app.yml wegen des Domainwechsels aktualisieren und habe versehentlich einen App-Neustart anstelle eines Neustarts durchgeführt, ohne vorher einen Snapshot in Digital Ocean zu erstellen. Also habe ich mich gezwungen, jetzt ein Upgrade durchzuführen .
Was schließlich funktionierte. Da ich ein paar Schwierigkeiten hatte (Lachen erlaubt), werde ich meinen Weg des (Miss-)Glücks hier veröffentlichen. Vielleicht stolpert jemand über die exakte Fehlermeldung und bekommt dadurch Hilfe.
Benötigte Zeit 3,5 Stunden (rate mal, ich hätte faul sein und einfach das Digital Ocean 1-Klick-Setup machen sollen, war aber neugierig, ob das Upgrade funktionieren würde).
*****Upgrade Ubuntu 16.x → Ubuntu 18.x
*****Upgrade Ubuntu 18.x → Ubuntu 20.x (überrascht, wie gut das tatsächlich funktionierte, viel besser als Windows )
*Willkommen bei Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-208-generic x86_64)*
*root@Discourse:~# cd /var/discourse/*
*root@Discourse:/var/discourse# ./launcher restart app*
*FEHLER: Docker-Version 19.03.13 wird nicht unterstützt. Bitte auf mindestens 20.10.0 oder empfohlen 24.0.7 aktualisieren*
*root@Discourse:/var/discourse# sudo apt-get install docker-ce --only-upgrade*
*Paketlisten werden gelesen... Fertig*
*Abhängigkeitsbaum wird aufgebaut*
*Statusinformationen werden eingelesen... Fertig*
*docker-ce ist bereits in der neuesten Version (5:19.03.13~3-0~ubuntu-xenial).*
******(/(&(%(&/()(=)/&/))&/*
******Ich wollte Docker nicht wegwerfen und neu installieren, aber jetzt habe ich genug...*
*root@Discourse:/var/discourse# sudo apt remove docker docker-engine docker.io containerd runc*
*root@Discourse:/var/discourse# sudo apt install apt-transport-https ca-certificates curl software-properties-common*
*root@Discourse:/var/discourse# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -*
*root@Discourse:/var/discourse# sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"*
*root@Discourse:/var/discourse# sudo apt update*
******Das wollte ich auch noch ausführen, konnte es aber nicht in meinen Protokollen finden, also vielleicht habe ich es nicht getan (Befehl wird nicht angezeigt, aber die Installation schon, hm?):*
******sudo apt install docker-ce docker-ce-cli containerd.io*
*root@Discourse:/var/discourse# sudo docker --version*
*Docker-Version 28.0.1, Build 068a01e*
*root@Discourse:/var/discourse# ./launcher rebuild app*
****** Brauchte ein paar Versuche, sah aber nach ein paar Neuerstellungen endlich besser aus.*
******... endlich bei Redis angekommen, woohooo... oder auch nicht*
*docker: Fehlerantwort vom Daemon: Container-Netzwerk konnte nicht eingerichtet werden: Treiberfehler bei der Programmierung der externen Konnektivität am Endpunkt app (ea1a6cc790c13940435c2626a4e8b6169f04612f4be552be25564def7d5745eb): Host-Port für 0.0.0.0:80:172.17.0.2:80/tcp konnte nicht gebunden werden: Adresse wird bereits verwendet*
******(/(&(%(&/()(=)/&/))&/ (oder habe ich das schon gesagt?)*
*root@Discourse:/var/discourse# hostname -I*
*139.X.X.X 10.19.0.5 172.17.0.1*
*root@Discourse:/var/discourse# sudo lsof -i :80*
*BEFEHL PID BENUTZER FD TYP GERÄT GRÖSSE/OFF NODE NAME*
*apache2 839 root 4u IPv6 23477 0t0 TCP *:http (LISTEN)*
*apache2 844 www-data 4u IPv6 23477 0t0 TCP *:http (LISTEN)*
*apache2 845 www-data 4u IPv6 23477 0t0 TCP *:http (LISTEN)*
******Apache standardmäßig an? Seit wann? Auf keinen Fall!*
*root@Discourse:/var/discourse# sudo systemctl stop apache2*
*root@Discourse:/var/discourse# sudo systemctl disable apache2*
*Synchronisiere den Status von apache2.service mit dem SysV-Dienst-Skript mit /lib/systemd/systemd-sysv-install.*
*Ausführen: /lib/systemd/systemd-sysv-install disable apache2*
*Entfernt /etc/systemd/system/multi-user.target.wants/apache2.service.*
*root@Discourse:/var/discourse# ./launcher start app*
******Hey presto, endlich! (Nach der üblichen langsamen ngix-Pukemeldung)*
******Nach dem Booten erhalte ich natürlich... worauf ich gewartet habe... na ja, wenn alles eine Woche funktioniert, vielleicht mache ich weiter mit dem Leiden... nach einem Snapshot und Backup und... ;) *
*Neue Veröffentlichung '22.04.5 LTS' verfügbar.*
*Führen Sie 'do-release-upgrade' aus, um darauf zu aktualisieren.*
Ich hätte einen neuen Droplet erstellt und entweder eine Neuinstallation durchgeführt und das Backup kopiert oder einen Discourse-Standort mit rsync auf einen anderen VPS verschoben. Ich mache auch eine Hybridversion, bei der ich die SSL-Zertifikate per rsync übertrage, aber dann ein Backup wiederherstelle. Das spart den Schritt des Datenbank-Upgrades.