Automatisierte Konfiguration des Build-Servers im Saros-Projekt mit Salt und Git

worked on by: Patrick Hobusch

Zusammenfassung

Durch den Einsatz eines sogenannten Systemkonfigurationswerkzeugs erhoffte sich das Saros-Projekt, welches Plugins zur verteilten Paarprogrammierung für verschiedene IDEs entwickelt, den eigenen Build-Server wieder besser zu verstehen. Der Grund für die große Komplexität dieses Systems ist das starke Zusammenspiel der verschiedenen Anwendungen, in denen mit Code-Reviews, Builds sowie statischen und dynamischen Tests die Integration von Quellcode in das Versionsverwaltungssystem Git gesteuert wird. Der Wunsch war es, den Zustand des Servers mit dem Systemkonfigurationswerkzeug Salt deklarativ zu beschreiben, mit Git zu versionieren und auf diese Weise Änderungsängste zu verlieren. In dieser Arbeit beschreibe ich Ansätze, wie unter anderem die Webanwendungen Jenkins und Gerrit deklarativ bereitgestellt und konfiguriert werden können, zeige die Grenzen dieses Vorhabens auf und präsentiere eine Lösung, die auch die Anforderungen des IT-Dienstes erfüllt, welcher die Maschine zukünftig betreuen wird.

Abschließender Stand

Der fehlender Zugriff auf das Reclass-Repository (dort werden zur Konfiguration die "Parameter" definiert) sowie ein hoher Aufwand in der Absprache vieler kleiner Entscheidungen (z.B. warum soll für Gerrit ein Debian-Paket erstellt werden, für andere Dienste jedoch nicht) machte es aus meiner Sicht erforderlich, die Umsetzung mit dem IT-Dienst gemeinsam durchzuführen. Die Arbeiten konnten jedoch leider nicht abgeschlossen werden.

Bis dahin wurden bis auf Ejabberd alle Dienste auf der neuen Maschine installiert und ein Teil der Anwendungsdaten übernommen. Es fehlten vor allem noch die Jenkins-Daten und eben die Ejabberd-Daten. Außerdem hätte noch sichergestellt werden müssen, dass Jenkins und Gerrit mit den anderen Diensten kommunizieren können.

Der Fortschritt wurde vollständig von Bodo Riediger-Klaus vom IT-Dienst dokumentiert.