Projekt

Allgemein

Profil

ETCkeeper » Historie » Version 15

Josef Braun, 02.01.2010 14:53

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 13 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 9 Josef Braun
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 15 Josef Braun
h2. weitere Links sowie Dokumentationen
128 1 Josef Braun
129 14 Josef Braun
weiter Details zu finden im *README* der Source Installation (ein Ausschnitt daraus das [[etckeeper_tutorial|etckeeper Tutorial]])
130 12 Josef Braun
131 1 Josef Braun
Entwicklerseite auf  http://kitenet.net/~joey/code/etckeeper
132 12 Josef Braun
133 8 Josef Braun
Debian Paket zum Vergleich http://packages.debian.org/de/sid/etckeeper
Redmine Appliance - Powered by TurnKey Linux