Denner, B. (2018). Konfigurationsmanagement mit Libelektra [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2018.27821
Durch die ständig zunehmende Anzahl von Computersystemen, werden Konfigurationsmanagementwerkzeuge bei Systemadministratoren immer beliebter. Diese Werkzeuge erlauben Administratoren das Beschreiben von Computersystemen auf einem abstraktenNiveau, wobei das Konfigurationsmanagementwerkzeug diesen beschriebenen Zustand auf dem Zielsystem umsetzt. Üblicherweise verwalten diese Werkzeuge Konfigurationseinstellungen auf dem Niveau von ganzen Konfigurationsdateien, nicht auf der Ebene einzelner Konfigurationseinstellungen. Ein Problem dieser Vorgangsweise ist, dass bereits bestehende Standardkonfigurationen überschrieben werden. Weiters müssen Administratoren selbst sicherstellen, dass die Konfigurationsdateien syntaktisch korrekt sind. Wir haben in dieser Arbeit gezeigt, dass Konfigurationsmanagmentwerkzeuge durch die Verwendung von generischen Konfigurationsbibliotheken verbessert werden können. Dafür haben wir das Konfigurationsmanagementwerkzeug Puppet um die Funktionalitäten der Konfigurationsbibliothek Libelektra erweitert, wodurch Konfigurationänderungen auf der Ebene von einzelnen Konfigurationseinstellungen beschrieben werden können. Um zu zeigen, dass dieser Ansatz einem Systemadministrator einen messbaren Vorteil bringt, haben wir unsere Lösung in drei Schritten evaluiert. Zuerst haben wir das Laufzeitverhalten und die Robustheit der Syntaxvalidierung unserer Methode mit anderen Verfahren zur Konfigurationsdateienmanipulation von Puppet verglichen. In einem zweiten Evaluierungsschritt haben wir eine Fallstudie mit unserer Lösung durchgeführt, um zu zeigen, dass unser Ansatz auch für reale Einsatzzwecke verwendbar ist. Dabei haben wir unsere Erweiterung zum Konfigurieren eines automatischen Integrationssystems, bestehend aus 5 Computern und Konfigurationsdateien in 8 verschiedenen Formaten, verwendet. Um zu demonstrieren, dass unsere Lösung eine Produktivitätssteigerung beim Entwickeln von Puppetcode bewirken kann, haben wir in einem dritten Evaluierungsschritt eine Nutzerstudie durchgeführt. Dabei hatten 14 Teilnehmer vier Puppetprogrammieraufgaben in bis zu drei Varianten zu lösen, wobei wir die Durchführungszeiten der einzelnen Varianten miteinander verglichen. Mit der Fallstudie konnten wir zeigen, dass unser Ansatz auch für reale Einsatzzwecke verwendet werden kann. Weiters konnten wir mit der Nutzerstudie zeigen, dass unsere Lösung im Vergleich zu anderen generischen Verfahren zur Konfigurationsdateienmanipulation einen signifikanten Produktivitätszuwachs bringt.
de
With the ever growing number of computer systems, configuration management tools are getting more popular. When using a configuration management tool, a system administrator describes the managed computer system on an abstract level and the configuration management tool configures the target system accordingly. Configuration management tools usually manage configuration settings on the level of configuration files and not on the level of individual configuration settings. One of the problems of this approach is that already preconfigured default configuration settings will be overwritten. Further, system administrators have to ensure a correct configuration file syntax themselves. In this thesis we have shown, that these weaknesses of configuration management tools can be improved by utilizing the methods of a general purpose configuration framework such as Libelektra. We implemented an extension for the configuration management tool Puppet, which allows us to treat configuration settings as first class citizens. In order to show that our approach has measurable advantages over existing Puppet concepts, we first compared our solution with other Puppet configuration file manipulation methods in terms of robustness of syntax validation and runtime performance. Second, we have conducted a case study to demonstrate that our solution is ready for real-world usage by managing a continuous integration system consisting of 5 computers and configuration files in 8 different formats. In a third evaluation step we have carried out a user study to show that our solution is able to improve the Puppet code development productivity. We asked a group of 14 participants to solve four different Puppet programming tasks in up to three different variants and compared the times required to solve the tasks. The case study demonstrated that our solution is ready for real-world scenarios and the results of the user study showed that our solution increases the development productivity significantly compared to other general purpose configuration manipulation strategies.