Discourse Update/Upgrade Abhängigkeitsprüfung

Wie wir im Laufe der Jahre beobachtet haben, schlägt ein Update/Upgrade manchmal aufgrund von Abhängigkeiten fehl. Z. B. Docker-Version/Betriebssystem.

Meine Idee ist, dass Discourse eine Art Abhängigkeitsprüfung durchführt, um sicherzustellen, dass die grundlegenden Anforderungen erfüllt sind. Wenn die Prüfung fehlschlägt, werden Details zu den möglichen Ursachen angezeigt und der Update/Upgrade-Prozess abgebrochen.

Dies trägt dazu bei, die Ausfallzeit des Forums zu reduzieren, indem ein Update/Upgrade von Core Discourse abgebrochen wird, wenn der Prozess fehlschlägt.

Sie bemühen sich ziemlich darum, das zu tun. Die Anzahl der Dinge, die schiefgehen können, ist ziemlich groß. Meistens ist es Ihre Schuld, wenn Sie Ihr Betriebssystem (und wahrscheinlich Docker) nicht auf dem neuesten Stand halten.

Sie versuchen, die Docker-Version zu überprüfen, und die Skripte, die ich verwende, aktualisieren Docker, wenn bekannt ist, dass es schlecht ist (es sollte wahrscheinlich immer Docker aktualisieren).

Ich denke, sie könnten es besser machen, wenn sie immer ein Befehlszeilen-Upgrade erzwingen würden, wenn sich das Basis-Image überhaupt ändert. Ich benutze es fast nie, da mein Dashboard mit einem Klick ein Befehlszeilen-Update durchführt.

1 „Gefällt mir“

deos Update. docker_manager Docker aktualisieren?

1 „Gefällt mir“

Ich versuche definitiv nicht, die Schuld abzuwälzen. Das Unglückliche bei selbst gehosteten Systemen, insbesondere, ist nicht unbedingt das Verständnis des Server-Betriebssystems. Die meisten Leute installieren ein Betriebssystem und halten es im Allgemeinen auf dem neuesten Stand. Aber oft wissen oder verstehen sie bei LTS (Long-Term Support) möglicherweise nicht, wie man das Betriebssystem aktualisiert. Besonders, wenn sie an Rolling Releases gewöhnt sind.

Zum Beispiel bemerkte ein Unternehmen, dem ich helfe, nachdem es eine Weile nicht aktualisiert hatte, dass ein Update verfügbar war. Also aktualisierten sie Docker über die Web-UI. Was es ihnen dann ermöglichte, Discourse zu aktualisieren.

Da die Ubuntu LTS nicht neu genug war, erfüllte das Docker-Update nicht die Mindestanforderung. Die Web-UI erlaubte aber trotzdem den Update-Versuch. Was natürlich fehlschlug und die Seite lahmlegte.

Also versuchten sie einen Befehlszeilen-Neubau, der natürlich fehlschlug, weil die Mindestanforderungen nicht erfüllt waren.

Wenn die Aktualisierung im Web erkannt hätte, dass die Docker-Version nicht die Mindestversion ist, hätte sie den Aktualisierungsprozess abbrechen und eine nicht erfüllte Abhängigkeit melden können, ohne dass die Seite ausfällt.

Ich habe einen allgemeinen Blick für sie geworfen. Da es den Anschein hat, dass sie möglicherweise andere Dinge auf dem Server ausführen. Ich habe sie angewiesen, ihre Techniker zu beauftragen, die LTS auf eine neuere Version zu aktualisieren. Da ich nicht versuchen wollte, das Betriebssystem zu aktualisieren, falls es andere Dinge, die sie ausführen, beschädigt.

Gibt es eine einfache Möglichkeit, den Container vor dem Web- und Befehlszeilen-Neubauversuch neu zu starten?

Ich habe ./launcher start app versucht.

Was fehlschlug.

Die andere Sache. Kann das Hochfahren eines neuen Servers mit rsync funktionieren, da die Discourse-Seite ausgefallen ist? Sie führen Stable anstelle der empfohlenen Tests Passed aus.

Wenn sie den Befehl ‘:do-release-upgrade’ ausführen und Docker manuell aktualisieren, wäre dies effektiv, um Postgreq zu aktualisieren?

Es wird innerhalb der von Ubuntu LTS unterstützten Version liegen. Aber nur die Version(en), die von der LTS unterstützt werden. In diesem Fall ist ihre LTS am Ende ihrer Lebensdauer. Daher unterstützt sie nicht die minimale Docker-Version.

Ubuntu LTS-Versionen haben iirc eine Lebensdauer von 4 Jahren mit Updates.

1 „Gefällt mir“

Nicht die Leute, mit denen ich arbeite. Sie werden es nicht aktualisieren, wenn ich ihnen sage, dass es EOL ist.

Ich bin ziemlich sicher, dass die Dinge, die in einem Container laufen, nicht erkennen können, unter welcher Docker-Version sie laufen.

Vielleicht können sie das. Es sieht so aus, als ob man das aus einem Container abrufen kann, um zu sehen, welche Version läuft.

https://docs.docker.com/engine/api/v1.30/#operation/SystemVersion

Also vielleicht könnten sie es besser machen. Das könnte eine coole Sache sein, die man dem Dashboard hinzufügt, wenn es wirklich funktioniert.

Es funktioniert normalerweise. Eine Ausnahme ist, wenn die Datenbank migriert wurde.

Wenn das Betriebssystem veraltet ist, finde ich es im Allgemeinen einfacher und sicherer, zu einer neuen VM zu wechseln. Idealerweise tun Sie dies, während der alte Server noch funktioniert. Siehe Verschieben einer Discourse-Site auf einen anderen VPS mit rsync

Wenn Sie ein Backup haben, können Sie das Kopieren der Datenbank überspringen und das Datenbankupgrade überspringen, stellen Sie es einfach auf der neuen Datenbank wieder her.

1 „Gefällt mir“

Deshalb habe ich gesagt, aktualisieren. Im Falle von EOL ist ein OS-Upgrade erforderlich. Aber ich stimme Ihnen zu, dass es eine Vielzahl von Leuten gibt, die Anweisungen nicht gut befolgen. :wink:

Als ich zum Administrator für das Unternehmen befördert wurde, dem ich kostenlos helfe :woman_facepalming:

Ich hatte ihnen über einen ganzen Monat gesagt, dass ihr Forum irgendwann abstürzen würde, da sie nicht genügend Speicherplatz für den Wiederaufbau der Anwendung hätten. Sie hatten einen Server von minimaler Größe (vor 7 Jahren). Ich erinnere mich, dass er insgesamt 25 GB Speicherplatz hatte. Natürlich hörten sie nicht zu. Und am Ende bezahlten sie jemanden hier, um das Forum auf einen neuen Server zu bringen. Gesamtausfallzeit etwa 2 Wochen, vielleicht etwas mehr.

Das wäre definitiv cool, wenn das funktionieren würde. Für Leute wie Sie und mich, die hier irgendwie leben, halten wir uns ziemlich auf dem Laufenden, im Vergleich zu vielen Leuten, die nur vorbeischauen, wenn ein Problem auftritt oder nach Add-Ons und anderen kleineren Support-Problemen suchen.

Ok, werde sie beraten. Ich bin mir jedoch nicht sicher, wie alt das Backup ist. Ich stelle mir also vor, dass in ihrem Fall rsync oder ein OS-Upgrade untersucht werden muss.

Auf meinem persönlichen Server, der veraltet war, habe ich viel gelesen und darauf geachtet, nicht über das Web/die Kommandozeile zu aktualisieren. Bis ich mit dem rsync-Verfahren vertraut war. Und ich hatte immer noch ein paar kleinere Schwierigkeiten, bei deren Behebung Sie und die Community mir geholfen haben.

:clinking_beer_mugs::smiling_face_with_sunglasses::+1::sparkles:

1 „Gefällt mir“