Updatemanagement mit upd89

nine Team Nov 14, 2016
Updatemanagement mit upd89

nine.ch hat zusammen mit Ueli Bosshard und Philipp Christen die Bachelorarbeit im Frühjahrssemester 2016 zum Thema “Orchestrierung von Security-Updates für Linux-Serversysteme” als Industriepartner durchgeführt. In diesem Gastbeitrag geben sie einen Einblick in die Ausgangslage und die umgesetzte Lösung.

Das Verwalten von Updates ist für den normalen User eher simpel. Das Betriebssystem meldet sich, wenn ein Update ansteht und der User klickt auf “Installieren”, fertig. Eventuell noch ein Neustart des Systems und das wars. Das funktioniert auch mit zwei, drei oder fünf Systemen noch gut. Aber was, wenn man plötzlich dutzende oder hunderte Systeme verwalten muss? Oder wenn verschiedene Konfigurationen vorhanden sind und nicht jedes System die neueste Version von allen installierten Applikationen und Services erhalten darf?

Bei nine.ch ist genau die obige Situation der Fall: Viele verschiedene Konfigurationen auf sehr vielen Systemen - alle mit verfügbaren Updates, welche installiert werden wollen. Das Ziel: möglichst einfach und effizient die verschiedenen Systeme aktuell halten.

Existierende Lösungen wie Landscape, Ansible oder Puppet könnten dafür eingesetzt werden, sind aber entweder teuer, closed-source oder können Software nur installieren, aber nicht verwalten. Eine (Rails-) Applikation wäre wünschenswert, welche in die bestehende Umgebung bei nine.ch integriert und gewartet werden kann.

Die Grundidee bei upd89 ist, dass auf jedem zu verwaltenden System ein Agent läuft, welcher mit dem Paketverwaltungs-Tool kommuniziert und erkennt, wann ein Update verfügbar ist. Der Agent meldet dies dem zentralen Control Center, welches die Daten sammelt und für den User aufbereitet. Ein User meldet sich beim Control Center im Web-Interface an und wählt aus, wo welche Updates installiert werden sollen. So wird ein Task erstellt, welcher vom Control-Center an die betroffenen Agents geschickt wird. Dort wird wieder die Paketverwaltung genutzt, um das Update zu installieren. Sobald dieses fertig ist, wird der Status zurückgemeldet.

upd89_01

Das Control Center ist eine Ruby-on-Rails-Applikation und soll schnell den Status der Systemlandschaft zeigen. Wieviele und welche Systeme sind aktuell? Wo stehen Updates an? Ist etwas schief gelaufen in letzter Zeit?

upd89_02

Weiter können Systeme sowie Applikationen in Gruppen sortiert werden, um Updates Gruppenweit zu installieren.

upd89 ist keine eierlegende Wollmilchsau, sondern eine Lösung, die sich ausschliesslich um Software-Updates kümmert, das dafür mit viel Effizienz. Ausserdem ist es ein junges Projekt, das sehr gern Feedback und Verbesserungen entgegen nimmt. Interessiert? upd89 ist komplett Open Source und kann auf GitHub heruntergeladen werden.