Aus Linux-Magazin 07/2016

Aus dem Alltag eines Sysadmin: Etckeeper

© Igor Yaruta, 123RF

Konfigurationsdateien verändern sich im Leben fast jedes Linux-Systems. Doch nicht immer zum Guten – manchmal degenerieren einzelne “/etc”-Dateien regelrecht. Dann ist “Sysadmin”-Kolumnist Charly Kühnast froh, einen Status aus besseren Tagen wiederherstellen zu können.

Über Ascii-Lifting mit Etckeeper hat das Linux-Magazin bereits berichtet ([1], [2]). Das Tool gehört zum Begleitgeschwader vieler Distributionen und findet sich ansonsten unter [3]. Auch Git muss natürlich auf dem Rechner installiert sein. Wer Git auf dem System noch nicht benutzt hat, sollten ein paar grundlegende Einstellungen vornehmen:

git config --global user.name "Charly"
git config --global user.email "charly@example.com"
git config --global core.edito "vim"

Da ich die Etckeeper- und Git-Kommandos mit »sudo« ausführen werde, verhindern diese Einstellungen, dass sich der »root« -Benutzer als Committer einträgt.

Den Zustand der Jugend konservieren

Zunächst muss ich das neue Repository initialisieren, dann speichere ich darin erstmalig alle »/etc« -Dateien:

cd /etc
sudo etckeeper init
sudo etckeeper commit "Initial etc commit"

Manche Distributionen, Ubuntu etwa, führen diesen Schritt automatisch bereits beim Installieren von Etckeeper aus. In diesem Fall sehe ich eine Ausgabe wie:

> On branch master
> nothing to commit, working directory clean

Manchmal will ich nicht alle Daten in der »/etc/« im Repository haben. Welche Verzeichnisse Etckeeper ignorieren soll, teile ich Git über die Datei ».gitignore« mit, und zwar gleich nach der Zeile »# end section […] etckeeper« :

# end section managed by etckeeper
ghostscript/*

Nun sind aber seit dem ersten Commit alle Daten aus »/etc/« schon im Repository. Ich muss die unerwünschten also manuell entfernen:

sudo git rm -r --cached ghostscript/*

Zur Demonstration ändere ich eine Kleinigkeit an der »/etc/postfix/main.cf« . Und tatsächlich: »sudo git status« zeigt an, dass Git beim Vergleich der Daten mit dem Repository den Unterschied bemerkt (Abbildung 1).

Abbildung 1: Wenn jemand etwas in »/etc« konfiguriert hat, bemerkt Git beim Vergleichen mit dem Repository den Unterschied.

Abbildung 1: Wenn jemand etwas in »/etc« konfiguriert hat, bemerkt Git beim Vergleichen mit dem Repository den Unterschied.

Jetzt darf ich die neue Version einchecken:

sudo git commit -a -m "main.cf changed"

Eine Übersicht über alle Aktionen liefert »sudo git log« :

commit 9695e06a8175bd5cf485316f20d8fb6d6fcc1e49
Author: Charly <charly@example.com>
Date:   Wed May 11 14:18:50 2016 +0200
    main.cf changed

Wichtig: Das Ganze implementiert eine Versionierung, kein Backup! Etckeeper und Git helfen Änderungen in Konfigurationsdateien nachzuvollziehen und notfalls zurückzurollen – aber das ist ja schon viel für alle, die etwas kaputtkonfiguriert haben.

Infos

  1. Mathias Huber, “Etckeeper stellt Systemkonfiguration unter Versionskontrolle”: https://www.linux-magazin.de/Online-Artikel/Etckeeper-stellt-Systemkonfiguration-unter-Versionskontrolle
  2. Markus Stubbig, “Wie sich Admins die ungeliebte Dokumentation erleichtern”: Linux-Magazin 11/15, S. 76
  3. Etckeeper: https://github.com/joeyh/etckeeper

Der Autor

Charly Kühnast administriert Unix-Systeme im Rechenzentrum Niederrhein. Zu seinen Aufgaben gehören Sicherheit und Verfügbarkeit der Firewalls und der DMZ.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben