Server- und Netzwerkinfrastruktur mit NixOS (1/3)
Seit 2019 beschäftige ich mich mit der Administration Linux-basierter Serversysteme. Angefangen hat alles mit eigenen Projekten. Mit der Zeit übernahm ich jedoch auch die Betreuung von Systemen für Freunde und Bekannte, darunter beispielsweise für den YouTuber The Morpheus Tutorials.
Um das Einarbeiten weiterer Teammitglieder und die spätere Übergabe von Aufgaben zu vereinfachen, begann ich Ende 2020 mit der Erstellung des sogenannten AdminGuide's. Dabei handelte es sich um eine Sammlung aus Konzepten, Beispielkonfigurationen und "Lessons Learned", die ich bei der Administration der betreuten Systeme angewandt und dokumentiert hatte.
Mit der Zeit stellte ich fest, dass ich bestimmte Komponenten (z. B. Monitoring oder Log-Collection) in verschiedenen Infrastrukturen mehrfach aufbaute. Um diese Aufgaben zu vereinheitlichen und wiederverwendbar zu machen, begann ich daher mit der Erstellung eigener Ansible-Rollen.
Ende 2022 beschäftigte ich mich intensiver mit NixOS und entschied mich, einige Komponenten testweise damit neu zu deployen. Von diesem Konzept war ich direkt überzeugt. Innerhalb kurzer Zeit migrierte ich schließlich eine vollständig von mir betreute Infrastruktur auf NixOS.
Im Gegensatz zu traditionellen Automatisierungswerkzeugen wie Ansible oder Salt, die überwiegend imperativ arbeiten, setzt NixOS auf eine deklarative Konfiguration. Dabei wird nicht Schritt für Schritt beschrieben, welche Änderungen auf einem System vorgenommen werden sollen, sondern welcher Zielzustand erreicht werden soll. Mit einem sogenannten rebuild wird diese Konfiguration anschließend angewandt und das System in den definierten Zustand versetzt.