Projekt

Allgemein

Profil

ETCkeeper » Historie » Version 11

Josef Braun, 02.01.2010 14:44

1 2 Josef Braun
h1. Versionierung von Dateien im /etc VerzeichnisOrdner 
2
mit etckeeper
3 3 Josef Braun
4 9 Josef Braun
{{>toc}}
5 4 Josef Braun
6 9 Josef Braun
h2. etckeeper speichert /etc in Git, Mercurial, Bzr oder Darcs SCMs
7 4 Josef Braun
8 5 Josef Braun
etckeeper ist ein Werkzeug, um /etc in einem Git- , Mercurial- , Bzr- oder Darcs-Depot speichern zu können. Es hängt sich in APT ein und überträgt die Änderungen in /etc, die während der Paketaktualisierung gemacht wurden. Es macht die Metadaten der Dateien ausfindig, was Versionskontrollsysteme normalerweise nicht unterstützen, dies ist allerdings wichtig für /etc, wie z. B. die Rechte von /etc/shadow. Es ist recht modular und konfigurierbar, gleichzeitig auch einfach zu benutzen, wenn Sie die Grundlagen des Arbeitens mit Versionskontrolle verstehen. 
9 4 Josef Braun
10 5 Josef Braun
(am Beispiel einer OpenSuse Installation mit Mercurial)
11 1 Josef Braun
12
13 5 Josef Braun
h2. Schritte zur fertigen Installation
14
15
* die Pakete git und mercurial mit yast installieren
16
17
* die aktuelle Version vom git repository abholen. 
18 7 Josef Braun
19
 Dazu in ein leeres bzw. neues Verzeichnis wechseln und aufrufen:
20 5 Josef Braun
<pre>
21 6 Josef Braun
md ~/src
22
cd ~/src
23 1 Josef Braun
git clone git://git.kitenet.net/etckeeper
24 6 Josef Braun
25 1 Josef Braun
</pre>
26 6 Josef Braun
27 1 Josef Braun
* in das etckeeper Verzeichnis wechseln 
28 6 Josef Braun
29 8 Josef Braun
  die *etckeeper.conf* bearbeiten und 
30 1 Josef Braun
31 7 Josef Braun
 
32 6 Josef Braun
 # das verwendete SCM von git auf merical umstellen
33 7 Josef Braun
 # high-level package manager und
34
 # low-level package manager umstellen
35 6 Josef Braun
36
 <pre>
37
# /etc/etckeeper.conf
38
#
39
# version 0.41
40
#
41
# The VCS to use.
42
VCS="hg"
43
#VCS="git"
44
# VCS="bzr"
45
# VCS="darcs"
46
47
# Options passed to git commit when run by etckeeper.
48
#GIT_COMMIT_OPTIONS=""
49
50
# Options passed to hg commit when run by etckeeper.
51
#HG_COMMIT_OPTIONS=""
52
53
# Options passed to bzr commit when run by etckeeper.
54
#BZR_COMMIT_OPTIONS=""
55
56
# Options passed to darcs commit when run by etckeeper.
57
#DARCS_COMMIT_OPTIONS=""
58
59
# Uncomment to avoid etckeeper committing existing changes
60
# to /etc automatically once per day.
61
#AVOID_DAILY_AUTOCOMMITS=1
62
63
# Uncomment to avoid etckeeper committing existing changes to.
64
# /etc before installation. It will cancel the installation,
65
# so you can commit the changes by hand.
66
#AVOID_COMMIT_BEFORE_INSTALL=1
67
68
# The high-level package manager that's being used.
69
# (apt, pacman-g2, yum etc)
70
#HIGHLEVEL_PACKAGE_MANAGER=apt
71
HIGHLEVEL_PACKAGE_MANAGER=yum
72
73
# The low-level package manager that's being used.
74
# (dpkg, rpm, pacman-g2, etc)
75
#LOWLEVEL_PACKAGE_MANAGER=dpkg
76
LOWLEVEL_PACKAGE_MANAGER=rpm
77
</pre>
78 1 Josef Braun
79 11 Josef Braun
* nun die Dateien nach /etc/etckeeper installieren dazu nun wie folgt 'make install' ausführen:
80
81
 <pre>
82
make install
83
</pre>
84 1 Josef Braun
85 8 Josef Braun
 das liefert in etwa folgenden Output bei Erfolg.
86 1 Josef Braun
87 8 Josef Braun
 <pre>
88
mkdir -p /etc/etckeeper/ /var/cache/etckeeper/
89
cp -a *.d /etc/etckeeper/
90
install  -m 0644 -D etckeeper.conf /etc/etckeeper/etckeeper.conf
91
install  -D etckeeper /usr/sbin/etckeeper
92
install  -m 0644 -D etckeeper.8 /usr/share/man/man8/etckeeper.8
93
install  -m 0644 -D bash_completion /etc/bash_completion.d/etckeeper
94
install  -m 0644 -D yum-etckeeper.py /usr/lib/yum-plugins/etckeeper.py
95
install  -m 0644 -D yum-etckeeper.conf /etc/yum/pluginconf.d/etckeeper.conf
96
./etckeeper-bzr/__init__.py install --root= || echo "** bzr support not installed"
97
Traceback (most recent call last):
98
  File "./etckeeper-bzr/__init__.py", line 6, in <module>
99
    import bzrlib
100
ImportError: No module named bzrlib
101
** bzr support not installed
102
echo "** installation successful"
103
** installation successful
104 1 Josef Braun
</pre>
105
106 9 Josef Braun
* das Repository noch erzeugen und dann Fertig!
107
 <pre>
108
etckeeper init</pre>
109 1 Josef Braun
110 9 Josef Braun
 nun existiert der komplette /etc/etckeeper sowie /etc/.hg (bei letzterem noch schauen, ob die Rechte passen, damit nicht jeder Einsicht bekommt!)
111
112
113
h2. Befehle im Betrieb
114
115 10 Josef Braun
nach jeder Änderung die gespeichert werden soll ein *commit* machen:
116 9 Josef Braun
z.b.
117
<pre>
118
        passwd someuser
119
        hg status
120
        hg commit -m "changed a password"
121
122
</pre>
123 1 Josef Braun
124 10 Josef Braun
 
125
 
126
 
127
+weitere Links+:
128 1 Josef Braun
129 8 Josef Braun
Entwicklerseite auf  http://kitenet.net/~joey/code/etckeeper
130
Debian Paket zum Vergleich http://packages.debian.org/de/sid/etckeeper
Redmine Appliance - Powered by TurnKey Linux