11.06.2011 08:54

Konfiguration bearbeiten

Änderungen an der Systemkonfiguration auf einem Server sind manchmal eine etwas heikle Angelegenheit. Man kommt nicht ohne sie aus, kann aber auch schnell einzelne Dienste oder gar den ganzen Server in einen nicht benutzbaren Zustand bringen. Dann ist es günstig, wenn man die Änderungen nachvollziehen und zurücknehmen kann.

Versuchen wir uns heute an einem einfachen Beispiel. Im Dienst collectd zur Systemüberwachung soll das zur Zeit aktive Modul ping ausgeschaltet werden.

Statistik der Laufzeit von IP-Paketen im lokalen Netz während einer letzten Stunde


editor /etc/collectd/collectd.conf

Vorher:

LoadPlugin ping

Nachher:

#LoadPlugin ping

Einige Zeit darauf geht eine E-Mail ein:


Betreff: Betreff: Changed files on bluestar.domo.reto: Fri Jun 10 17:17:03 2011
Changes made to '/etc/collectd/collectd.conf' follow:
  @@ -80,7 +80,7 @@
   #LoadPlugin openvpn
   #LoadPlugin perl
   #LoadPlugin pinba
  -LoadPlugin ping
  +#LoadPlugin ping
   #LoadPlugin postgresql
   #LoadPlugin powerdns
   LoadPlugin processes

Diese Meldung kommt vom Programm changetrack, welches die Konfigurationsdateien stündlich auf Änderungen überwacht und den Administrator per E-Mail informiert.

Zusätzlich speichert dieses Programm die alten Versionen der Dateien mit RCS in einem Archiv. Werfen wir einen Blick auf die wichtigsten Programme zum Umgang mit solchen Archiven:


root@bluestar:~# apropos rcs
[...]
ci (1)               - check in RCS revisions
co (1)               - check out RCS revisions
[...]
rcsdiff (1)          - compare RCS revisions
rlog (1)             - print log messages and other information about RCS files

Das Changetrack-Archiv befindet sich im Verzeichnis /var/lib/changetrack. Finden wir zunächst heraus, wie viele Versionen der Datei /etc/collectd/collectd.conf bereits gespeichert wurden.


root@bluestar:~# rlog /var/lib/changetrack/etc\:collectd\:collectd.conf
RCS file: /var/lib/changetrack/RCS/etc:collectd:collectd.conf,v
Working file: /var/lib/changetrack/etc:collectd:collectd.conf
head: 1.5
total revisions: 5;     selected revisions: 5
description:
this is "/etc/collectd/collectd.conf"
----------------------------
revision 1.5    locked by: root;
date: 2011/06/10 15:17:21;  author: root;  state: Exp;  lines: +1 -1
modification of "/etc/collectd/collectd.conf" on Fri Jun 10 17:17:03 2011
----------------------------
revision 1.4
date: 2011/05/26 21:17:20;  author: root;  state: Exp;  lines: +1 -1
modification of "/etc/collectd/collectd.conf" on Thu May 26 23:17:02 2011
----------------------------
revision 1.3
date: 2011/05/26 16:17:06;  author: root;  state: Exp;  lines: +18 -17
modification of "/etc/collectd/collectd.conf" on Thu May 26 18:17:02 2011
----------------------------
revision 1.2
date: 2011/05/26 15:17:23;  author: root;  state: Exp;  lines: +13 -13
modification of "/etc/collectd/collectd.conf" on Thu May 26 17:17:02 2011
----------------------------
revision 1.1
date: 2011/05/24 06:17:16;  author: root;  state: Exp;
modification of "/etc/collectd/collectd.conf" on Tue May 24 08:17:02 2011

Die aktuelle Fassung der Konfigurationsdatei /etc/collectd/collectd.conf ist als Version 1.5 gespeichert. Vergleichen wir sie mit der Vorgängerversion.


root@bluestar:~# rcsdiff -u -r1.5 -r1.4 /var/lib/changetrack/etc\:collectd\:collectd.conf
RCS file: /var/lib/changetrack/RCS/etc:collectd:collectd.conf,v
retrieving revision 1.5
retrieving revision 1.4
diff -u -r1.5 -r1.4
--- /var/lib/changetrack/etc:collectd:collectd.conf     2011/06/10 15:17:21     1.5
+++ /var/lib/changetrack/etc:collectd:collectd.conf     2011/05/26 21:17:20     1.4
@@ -80,7 +80,7 @@
 #LoadPlugin openvpn
 #LoadPlugin perl
 #LoadPlugin pinba
-#LoadPlugin ping
+LoadPlugin ping
 #LoadPlugin postgresql
 #LoadPlugin powerdns
 LoadPlugin processes

Diese Programmausgabe entspricht sinngemäß dem Inhalt der zuvor empfangenen E-Mail. In der aktuellen Fassung 1.5 ist die Zeile mit # auskommentiert worden, in der vorherigen Version 1.4. war sie dies nicht.

Als nächstes holen wir uns die vorherige Version aus dem Archiv zurück:


root@bluestar:~# co -r1.4 /var/lib/changetrack/etc\:collectd\:collectd.conf
/var/lib/changetrack/RCS/etc:collectd:collectd.conf,v  -->  /var/lib/changetrack/etc:collectd:collectd.conf
revision 1.4
done


root@bluestar:~# cp /var/lib/changetrack/etc\:collectd\:collectd.conf /etc/collectd/collectd.conf

Damit haben wir die ursprüngliche Einstellung wieder hergestellt. Einige Zeit später im Posteingang E-Mails von changetrack und fcheck auftauchen, die uns über die gerade vorgenommenen Änderungen informieren.


Geschrieben von root | Permanenter Link | Kategorien: Verwaltung