source: trunk/dasscm/doc/KonfigurationsManagement.txt@ 207

Last change on this file since 207 was 207, checked in by joergs, on Jul 2, 2007 at 5:16:38 PM

Dokomentation. veraltet. Vom LVermGeo übernommen

  • Property svn:executable set to *
File size: 4.7 KB
Line 
1Ziel:
2manuelle Änderungen an den Einstellungen für an System zu sichern und reproduzierbar zu machen.
3
4Vorteile Einsatz Subversion:
5- Historie der Änderungen
6- Vergleiche zwischen beliebigen Versionen
7- netzwerkweit zur Verfügung
8- Nachvollziehbarkeit von Änderungen (was, wann, wer)
9- Kommentare, warum eine Änderung erfolgte können (und sollten) mit gepfelgt werden
10
11Grundsätzlich ist zwischen Methoden zu unterscheiden:
12Konfigurationsdateien werden
131. an ihrer normalen Position modifiziert, getestet und dann ins Subverion Repository kopiert
142. im Repository modifiziert und dann ins System eingespielt (ggf. noch Dienste neu starten)
15
16Methode 2 ist eigentlich "sauberer", da Änderungen erst als Benutzer erfolgen und erst ihre Aktivierung durch root erfolgen muss. Damit ergibt sich auch der Vorteil, dass nicht 2 Leute gleichzeitig die selbe Datei modifizieren (bei einem Subversion checkin würde zumindest eine Warnmeldung erzeugt). Methode 1 hat aber den Vorteil, dass Änderungen direkt getestet werden können.
17In beiden Fällen ist zu beachten, dass die Referenz immer (!) im Subversion liegt. D.h. lokale Änderungen, die nicht ins Subversion eingecheckt würden, werden ggf. überspielt.
18
19Methode 1 benötigt i.d.R. das einloggen als root Benutzer.
20
21Deshalb sollte die entsprechenden Subversion Checkouts unter
22/root/svn/$BENUTZERNAME erzeugt werden.
23Um nur beim schreiben nicht aber beim jeden Lesevorgang aus dem Repository nach einem Passwort gefragt zu werden,
24sollte eine Nur-Lese Kennung für den Benutzer root hinterlegt werden.
25Im diesen Falle des LVermGeos bietet sich die Kennung "lvermgeo" (mit bekannten Passwort) an. Hinterlegt wird sie automatisch mit einem checkout OHNE die "--no-auth-cache" Option:
26
27svn checkout --username lvermgeo https://dass-it.de/svn/lvermgeo/technical/config
28
29
30z.B.
31cd /root/svn/joergs
32Proxy muss eingestellt sein (/etc/subversion/servers oder ~/.subversion/servers)
33svn checkout --no-auth-cache --username joergs https://dass-it.de/svn/lvermgeo/technical/config
34(ggf. auch nur
35svn checkout --no-auth-cache --username joergs https://dass-it.de/svn/lvermgeo/technical/config/server
36bzw.
37svn checkout --no-auth-cache --username joergs https://dass-it.de/svn/lvermgeo/technical/config/client)
38
39Diese Verzeichnisse liegen unterhalb von root, da für den Zugriff auf einige Konfigurationsdateien root Rechte erforderlich sind, andererseits root nicht auf den Home Bereich des NFS Servers zugreifen kann. Ansonsten ist die Position des Subversion Checkouts aber nicht relevant und kann an jeder Stelle angelegt werden.
40Achtung: das Zugriffspasswort für Subversion wird im Klartext im jeweiligen Verzeichnis gespeichert!
41
42Die Verzeichnisstruktur unterhalb von
43svn/lvermgeo/technical/config/*/*/
44sollte dem des Systems entsprechen.
45D.h. wenn auf dem Client (9.1) die Datei /etc/sysconfig/cups angepasst wird, so ist diese im Subversion unter
46svn/lvermgeo/technical/config/client/9.1/etc/sysconfig/cups
47zu pflegen.
48
49Bevor eine Datei erstmalig modifiziert wird,
50ist eine .orig Kopie (cp -a) zu erzeugen.
51Sollte die Datei neu erstellt werden, ist eine leere .orig Datei zu erstellen.
52
53*** vor dem modifizieren einer Datei (Beispiel: /etc/sysconfig/cups)
540. Subversion auf den aktuellen Stand bringen (svn update)
551. cd /etc/sysconfig
562. cp -a cups cups.orig (falls eine neue Datei angelegt wird touch cups.orig)
574. cd /root/svn/joergs
587. svn commit -m "orig von Distribution XYZ"
59
60*** weitere Modifikationen:
610. Subversion auf den aktuellen Stand bringen (svn update)
621. Datei in den Subversion Bereich kopieren
632. svn commit
64
65*** dasscm
66Das Skript "dasscm" vereinfacht die Handhabung.
671. Umgebungsvariable DASSCM_USER auf Subversion Benutzer setzen (DASSCM_USER=joergs)
682. Umgebungsvariable DASSCM_REPO setzen (DASSCM_REPO=/root/svn/joergs)
693. dasscm add /etc/sysconfig/cups
70
71*** sc_chkconf.pl
72Zur Vereinfachung existiert das Skript sc_chkconf.pl.
73Dieses Skript überprüft, ob die Dateien, die im Subversion eingecheckt sind auch denen im System entsprechen. Falls nicht, fragt es, ob sie diese zum Subversion Checkout kopieren soll.
74Danach kann man sich nochmals mit "svn diff" alle Veränderungen anschauen und mit "svn commit" einchecken.
75
76
77Referenz Clients:
78Normalerweise werden Änderungen auf einen frisch aufgesetzten Rechner getestet. Wenn diese Modifikationen zufriedenstellend sind, werden diese auf dem Referenz Rechner durchgeführt.
79Die Modifikationen sollten dann auch ins Subversion eingepflegt werden.
80
81Server:
82Server werden z.Zt. noch so gehandhabt wie oben beschrieben. Da ggf. der selben Dienst mit gleicher Konfiguration auf verschiedenen Systemen läuft, muss geschaut, ob eine Konfiguration nach Diensten Sinn macht. Ggf. mit Skripts zur Verteilung der Konfiguration auf verschiedene Server und aktivierung der Dienste.
Note: See TracBrowser for help on using the repository browser.