Neue Dienste mit Docker starten geht schnell. Eine docker-compose Datei, ein paar Anpassungen und die Anwendung läuft. Die regelmäßige Pflege danach ist eher der langweilige Teil.
Auf dem Server warten Paketupdates, für die Container gibt es neue Images. Bei mehreren Hosts wird daraus schnell eine Runde SSH und docker compose pull, die man gerne mal auf morgen verschiebt.
Dafür finde ich PatchMon und Arcane eine gute Kombination.
PatchMon für den Host
PatchMon kümmert sich um die Paketupdates auf den Servern. Über die Weboberfläche lassen sich Patch-Läufe starten und die Ausgaben mitlesen. Ein Agent führt die Updates auf dem jeweiligen Host über dessen Paketmanager aus, bei Debian und Ubuntu also beispielsweise über apt.
Das ist vor allem dann praktisch, wenn die Dienste auf mehrere Maschinen verteilt sind. Statt überall einzeln per SSH Updates anzustoßen, läuft die Verwaltung an einer Stelle zusammen.
Ein Punkt zum Nachlesen vor der Installation: Aktives Patching und geplante Patch-Läufe sind bei PatchMon an die freigeschalteten Module beziehungsweise den gewählten Plan gebunden.
Arcane für die Container
Arcane übernimmt die Docker-Verwaltung. Projekte anlegen, die docker-compose Datei bearbeiten oder eine Anwendung neu deployen geht über die Oberfläche.
Besonders praktisch: Arcane kann auch Projekte aus docker-compose Dateien automatisch aktualisieren.
Wenn ein neues Image verfügbar ist, berücksichtigt Arcane die Zugehörigkeit zum Projekt. Es zieht die geänderten Images und erstellt die betroffenen Services neu. Die übrigen Services werden dabei nicht pauschal mit neu erstellt.
Die Projekte bleiben als docker-compose File definiert. Man muss seine Konfiguration also nicht zugunsten einer reinen Klick-Verwaltung aufgeben.
Wie viel darf automatisch laufen?
Die Update-Prüfung und die automatische Installation werden in Arcane pro Umgebung eingeschaltet und mit einem Zeitplan versehen. Einzelne Container lassen sich ausnehmen. Arcane kann dann weiter nach Updates schauen, ohne sie direkt einzuspielen.
So würde ich es auch nutzen: Unkritische Dienste dürfen automatisch aktualisiert werden. Bei einer Datenbank oder einer Anwendung mit Datenmigrationen möchte ich vorher in die Release Notes schauen und prüfen, ob ein brauchbares Backup vorhanden ist.
Wichtig ist außerdem der Image-Tag. Standardmäßig prüft Arcane, ob hinter dem eingetragenen Tag ein neues Image liegt. Der Wechsel auf andere Versions-Tags ist separat konfigurierbar. Bei aus Git synchronisierten Projekten gehören solche Tag-Änderungen weiterhin ins Repository.
Warum beide?
Weil beim Aktualisieren eines Containers der Host darunter gerne vergessen wird. Ein neues Anwendungs-Image installiert schließlich keine Kernel-Updates. Und ein Paketupdate auf dem Server bringt die Container-Images nicht auf den neuesten Stand.
PatchMon deckt die Host-Seite ab, Arcane die Container. Dafür müssen die beiden Tools gar nicht direkt miteinander sprechen.
Für ein Self-Hosting-Setup finde ich das eine sinnvolle Aufteilung. Besonders die automatischen Updates für Projekte aus docker-compose Dateien machen Arcane interessant. Die regelmäßige Arbeit wird weniger, und bei den empfindlicheren Diensten kann man Updates weiterhin selbst freigeben.
Hier könnt ihr mehr dazu lesen:

0 Comments