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.