English version below
(https://etckeeper.branchable.com/)
Hallo,
heute stelle ich euch mal ein Tool vor, welches mir und den Leuten von meiner Fachschaft schon einiges an Kopfschmerzen erspart hat.
Hintergrund: Ich habe das Tool entdeckt, als ich noch zuständig war, den Fachschaftsserver zu verwalten, mehr oder weniger als Hauptansprechspartner. War eine kurze, aber doch anstrengende Zeit, da die Infrastruktur eher organisch gewachsen war und zusätzlich eine Menge Dokumentation mit einem Server-Reset (den wir nicht mal zu verschulden hatten!) verloren ging. Die Folge dieser Umstände war, dass sich alle Menschen, die eigentlich über die nötige Fachkenntnis verfügten, aber eben auch ein Mindestmaß an (Lebens-)Erfahrung besaßen, sich sehr davor fürchteten, dass mal wirklich ein Dienst schwerwiegendere Fehler entwickeln sollte und man tatsächlich an diesem Wulst irgendwie stricken müsste. Alles neu machen war zwar in Planung, aber eben noch nicht passiert.
Jedenfalls hatte ich den Fall, dass wir Schwierigkeiten mit unserem Datenbankserver hatten, und ein Teil dieser Schwierigkeiten wurde von einem merkwürdigen Config-Wert verursacht, der definitiv nicht von Werk aus so ausgeliefert wurde - aber von dem niemand wusste, woher er kam. Rumfragen brachte nichts, und wir wussten nicht wirklich weiter, mussten uns aber entscheiden, ob wir verantworten könnten, den Wert zu ändern. In dieser Konstellation habe ich dann auf einmal entdeckt, dass auf unserem Server - seit mind. sechs Jahren anscheinend! - etckeeper im Hintergrund lief. Dieser macht allerdings nichts anderes, als regelmäßig und vor und nach Systemupdates den gesamten /etc-Ordner, in dem unter Linux die allermeisten Einstellungsdateien liegen, in ein Git-Repo zu pushen. Was das für uns konkret bedeutete, war, dass wir haargenau nachschauen konnten - mit Hilfe von git blame -, wer wann diese Datei und jenen Wert geändert hatte. Das hat unser Problem auch direkt gelöst, derjenige war zwar schon länger ein Ehemaliger, konnte uns dann aber auf Anfrage weiterhelfen.
Ich werde heute nicht auf die Einrichtung von etckeeper eingehen. Sie ist, wenn ich mich recht entsinne, sehr einfach und der Paketmanager eurer Distribution sollte Anleitung und Sane Defaults mitbringen. Tatsächlich war bei mir das Tool install and forget. Wann immer ich aber jetzt eine Änderung meiner Einstellungen vornehme und mir das irgendwas kaputt macht, kann ich sehr einfach die vorherigen Versionen einsehen und diese Änderung rückgängig machen - Eine Zeitlinie meiner Änderungen eben und ein Quasi-Backup des /etc-Ordners (natürlich nicht Backup im Sinne, wenn mein PC kaputt geht, aber zB auch dieses Git-Repo dann zu sichern hat seine Vorteile gegenüber dem Sichern nur des Ordners.
Probiert's aus, sollte kaum extra Ressourcen brauchen!
Einen Tipp habe ich: Denkt dran, Änderungen auch manuell zu committen. Muss nicht uuuuunbedingt, aber dann hat man eben auch eine aussagekräftigere History
English version
(https://etckeeper.branchable.com/)
Hello,
today I'd like to introduce you to a tool that has already saved me and the people from my student council a lot of headaches.
Background: I discovered the tool when I was still responsible for managing the student council server, more or less as the main contact person. It was a short but exhausting time, as the infrastructure had grown rather organically and additionally a lot of documentation was lost with a server reset (which we weren't even to blame for!). The consequence of these circumstances was that all people, who actually had the necessary expertise, but also a minimum of (life) experience, were very afraid that a service should really develop more serious errors and that one would actually have to knit this bead somehow. Redoing everything was in the planning stage, but it hadn't happened yet.
Anyway, I had a case where we were having trouble with our database server, and part of that trouble was caused by a strange config value that was definitely not shipped that way from the factory - but that no one knew where it came from. Asking around got us nowhere, and we didn't really know, but had to decide if we could justify changing the value. In this constellation I suddenly discovered that on our server - for at least six years apparently! - etckeeper was running in the background. However, this does nothing else but regularly and before and after system updates push the entire /etc folder, where most of the settings files are located under Linux, into a Git repo. What this meant for us was that we could look up precisely - with the help of git blame - who had changed this file and that value and when. That also solved our problem directly; the person had been an alum for some time, but was then able to help us when asked.
I will not go into the setup of etckeeper today. It is, if I remember correctly, very simple and the package manager of your distribution should bring instructions and sane defaults. In fact, for me, the tool was install and forget. But now whenever I make a change to my settings and it breaks something, I can easily see the previous versions and undo that change - a timeline of my changes and a quasi-backup of the /etc folder (of course not backup in the sense if my PC breaks, but backing up this git repo has its advantages over just backing up the folder.
Try it out, should hardly need extra resources!
I have one tip: Remember to commit changes manually. You don't have to, but then you have a more meaningful history.