Konfigurationsdateien versionieren mit etckeeper

  Lioh Möller   Lesezeit: 4 Minuten

Mit etckeeper lassen sich Konfigurationsdateien versionieren und bei Bedarf können vorhergehende Stände verglichen und wiederhergestellt werden.

konfigurationsdateien versionieren mit etckeeper

Um Änderungen in Konfigurationsdateien nachhaltig zu dokumentieren und nachvollziehbar zu machen, eignet sich die Nutzung einer VCS-Lösung. In der Regel kommt dabei git zum Einsatz.



Die Anwendung etckeeper vereinfacht die Einrichtung und erlaubt eine Automatisierung. Die Installation erfolgt mithilfe des Paketmanagers der Distribution.

Red Hat/Fedora
dnf install etckeeper

Debian/Ubuntu
apt install etckeeper

Zur Einrichtung werden Root-Rechte benötigt. Dazu kann die Konfigurationsdatei /etc/etckeeper/etckeeper.conf auf die eigenen Bedürfnisse hin angepasst werden, wobei in der Regel die Standardkonfiguration der Distribution einen guten Ausgangspunkt darstellt.

Soll das Verzeichnis /etc in Zukunft versioniert werden, muss dieses einmalig initialisiert werden:

etckeeper init /etc

Dabei ist eine Nutzung nicht auf das /etc Verzeichnis beschränkt. Es können beliebige weitere Verzeichnisse mit Konfigurationsdateien hinzugefügt werden. Zu beachten ist allerdings, dass Git standardmässig nicht auf eine Versionierung von grösseren Binärdateien ausgelegt ist.

Nach der Definition der zu versionierenden Verzeichnisse, kann der initiale Commit erfolgen:

etckeeper commit "inital commit"

Nun kann testweise eine Änderung im /etc Verzeichnis durchgeführt werden.

Im folgenden Beispiel wird die Meldung angepasst, welche in einer tty vor dem Anmelden angezeigt wird:

vi /etc/issue.d/zzz-1000V.issue

1000V - Nicht anfassen!

Testen kann man die Änderung wie folgt:

agetty --show-issue

Mit folgendem Befehl kann man prüfen, welche Änderungen bei einem Commit durchgeführt werden:

etckeeper vcs status

Nun kann die neue Datei hinzugefügt werden:

etckeeper commit -m "added new issue"

Alle bisherigen Commits können wie folgt angezeigt werden:

etckeeper vcs log

Um den aktuellen Stand mit einem vorausgegangenen Commit zu vergleichen, kann die in der Log-Ausgabe angegebene Commit-ID genutzt werden. Dabei reicht in der Regel die Angabe der ersten 6-8 Stellen der Commit-ID (bis diese eindeutig ist).

etckeeper vcs diff MEINE_COMMIT_ID

Eine frühere Version einer Konfigurationsdatei lässt sich so auch auf einfache Weise wiederherstellen:

etckeeper vcs checkout MEINE_COMMIT_ID /etc/MEINE_CONFIG

Auch ein vollständiger Wechsel auf einen früheren Stand ist so möglich:

etckeeper vcs checkout MEINE_COMMIT_ID

Möchte man Änderungen in den zu versionierenden Verzeichnissen automatisch committen kann der mitgelieferte systemd Timer genutzt werden:

systemctl enable etckeeper.timer

Dabei werden Änderungen standardmässig täglich zum lokalen Git-Repository hinzugefügt.

etckeeper unterstützt darüber hinaus auch das Pushen von Änderungen an ein Remote. Zu beachten ist dabei allerdings, dass sensitive Daten nicht in ein öffentliches Git-Repository gelangen sollten.

Quelle: https://etckeeper.branchable.com/

Weiterführende Informationen: https://wiki.archlinux.org/title/etckeeper

Es wurden noch keine Kommentare verfasst, sei der erste!