Linux-Server-Konfiguration versionieren mit etckeeper und git

Einleitung

Arbeitet man an Konfigurationseinstellungen eines Linux-Servers, kann es hilfreich sein, die geänderte Konfiguration zu versionieren. Im Fehlerfall können so Änderungen schnell und einfach zurückgenommen werden. Im weitaus günstigeren Erfolgsfall entsteht durch die Versionierung eine lückenlose Dokumentation der Änderungen.

Pakete

Die erforderlichen Pakete installieren:

Weiter mit der Einrichtung…

Konfiguration

In /etc/etckeeper/etckeeper.conf wird git als Versionsveraltung ausgewählt.

In der gleichen Daten können die Paketmanager ausgewählt werden, hier die entsprechende Konfiguration für Debian-basierte Systeme:

Git-Benutzer konfigurieren:

Die Initialisierung wird mit der Paketinstallation automatisch durchgeführt, somit besteht also sofort Betriebsbereitschaft.  🙂

Bedienung

Nachfolgend noch einige Hinweise und Beispiele zur Nutzung. Hierbei befinden wir uns im Verzeichnis /etc.

Änderungen durchführen

Ändern wir /etc/apache2/httpd.conf und dokumentieren die Änderung:

Was aber, wenn die Änderung nicht zum gewünschten Erfolg geführt hat?

Änderungen rückgängig machen

Ändern wir irgendetwas in der Apache-Konfigurationsdatei /etc/apache2/httpd.conf und machen die Änderung sofort wieder rückgängig:

Hierbei ist nicht mehr zu erkennen, dass die Datei geändert und wiederhergestellt wurde.

Bereits durchgeführte Änderungen rückgängig machen

Wurden die Änderungen bereits mittels commit durchgeführt, ist die Vorgehensweise eine andere:

Hierbei wird automatisch ein commit abgesetzt. Mittels git show kann die Änderung angezeigt werden:

Zum Schluss noch die Möglichkeit, Dateien gänzlich von der Versionierung auszuschließen.

Dateien von Versionierung ausschließen

Um Dateien von der Versionierung auszuschließen, müssen sie in .gitignore aufgeführt werden:

Da die zukünftig zu ignorierende Datei bereits während der Initialisierung bestanden hat, muss sie noch entfernt werden.

Have fun!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.