ETCkeeper » Historie » Revision 15
Revision 14 (Josef Braun, 02.01.2010 14:52) → Revision 15/28 (Josef Braun, 02.01.2010 14:53)
h1. Versionierung von Dateien im /etc VerzeichnisOrdner
mit etckeeper
{{>toc}}
h2. etckeeper speichert /etc in Git, Mercurial, Bzr oder Darcs SCMs
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.
(am Beispiel einer OpenSuse Installation mit Mercurial)
h2. Schritte zur fertigen Installation
* die Pakete git und mercurial mit yast installieren
* die aktuelle Version vom git repository abholen.
Dazu in ein leeres bzw. neues Verzeichnis wechseln und aufrufen:
<pre>
md ~/src
cd ~/src
git clone git://git.kitenet.net/etckeeper
</pre>
* in das etckeeper Verzeichnis wechseln
die *etckeeper.conf* bearbeiten und
# das verwendete SCM von git auf merical umstellen
# high-level package manager und
# low-level package manager umstellen
<pre>
# /etc/etckeeper.conf
#
# version 0.41
#
# The VCS to use.
VCS="hg"
#VCS="git"
# VCS="bzr"
# VCS="darcs"
# Options passed to git commit when run by etckeeper.
#GIT_COMMIT_OPTIONS=""
# Options passed to hg commit when run by etckeeper.
#HG_COMMIT_OPTIONS=""
# Options passed to bzr commit when run by etckeeper.
#BZR_COMMIT_OPTIONS=""
# Options passed to darcs commit when run by etckeeper.
#DARCS_COMMIT_OPTIONS=""
# Uncomment to avoid etckeeper committing existing changes
# to /etc automatically once per day.
#AVOID_DAILY_AUTOCOMMITS=1
# Uncomment to avoid etckeeper committing existing changes to.
# /etc before installation. It will cancel the installation,
# so you can commit the changes by hand.
#AVOID_COMMIT_BEFORE_INSTALL=1
# The high-level package manager that's being used.
# (apt, pacman-g2, yum etc)
#HIGHLEVEL_PACKAGE_MANAGER=apt
HIGHLEVEL_PACKAGE_MANAGER=yum
# The low-level package manager that's being used.
# (dpkg, rpm, pacman-g2, etc)
#LOWLEVEL_PACKAGE_MANAGER=dpkg
LOWLEVEL_PACKAGE_MANAGER=rpm
</pre>
* nun die Dateien nach /etc/etckeeper installieren dazu nun wie folgt 'make install' ausführen:
<pre>
make install
</pre>
das liefert in etwa folgenden Output bei Erfolg.
<pre>
mkdir -p /etc/etckeeper/ /var/cache/etckeeper/
cp -a *.d /etc/etckeeper/
install -m 0644 -D etckeeper.conf /etc/etckeeper/etckeeper.conf
install -D etckeeper /usr/sbin/etckeeper
install -m 0644 -D etckeeper.8 /usr/share/man/man8/etckeeper.8
install -m 0644 -D bash_completion /etc/bash_completion.d/etckeeper
install -m 0644 -D yum-etckeeper.py /usr/lib/yum-plugins/etckeeper.py
install -m 0644 -D yum-etckeeper.conf /etc/yum/pluginconf.d/etckeeper.conf
./etckeeper-bzr/__init__.py install --root= || echo "** bzr support not installed"
Traceback (most recent call last):
File "./etckeeper-bzr/__init__.py", line 6, in <module>
import bzrlib
ImportError: No module named bzrlib
** bzr support not installed
echo "** installation successful"
** installation successful
</pre>
* das Repository noch erzeugen und dann Fertig!
<pre>
etckeeper init</pre>
nun existiert der komplette /etc/etckeeper sowie /etc/.hg (bei letzterem noch *schauen, ob die Rechte passen*, damit nicht jeder Einsicht bekommt!)
h2. Befehle im Betrieb
nach jeder Änderung die gespeichert werden soll ein *commit* machen:
z.b.
<pre>
passwd someuser
hg status
hg commit -m "changed a password"
</pre>
h2. weitere +weitere Links sowie Dokumentationen Dokumentationen+:
weiter Details zu finden im *README* der Source Installation (ein Ausschnitt daraus das [[etckeeper_tutorial|etckeeper Tutorial]])
Entwicklerseite auf http://kitenet.net/~joey/code/etckeeper
Debian Paket zum Vergleich http://packages.debian.org/de/sid/etckeeper
mit etckeeper
{{>toc}}
h2. etckeeper speichert /etc in Git, Mercurial, Bzr oder Darcs SCMs
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.
(am Beispiel einer OpenSuse Installation mit Mercurial)
h2. Schritte zur fertigen Installation
* die Pakete git und mercurial mit yast installieren
* die aktuelle Version vom git repository abholen.
Dazu in ein leeres bzw. neues Verzeichnis wechseln und aufrufen:
<pre>
md ~/src
cd ~/src
git clone git://git.kitenet.net/etckeeper
</pre>
* in das etckeeper Verzeichnis wechseln
die *etckeeper.conf* bearbeiten und
# das verwendete SCM von git auf merical umstellen
# high-level package manager und
# low-level package manager umstellen
<pre>
# /etc/etckeeper.conf
#
# version 0.41
#
# The VCS to use.
VCS="hg"
#VCS="git"
# VCS="bzr"
# VCS="darcs"
# Options passed to git commit when run by etckeeper.
#GIT_COMMIT_OPTIONS=""
# Options passed to hg commit when run by etckeeper.
#HG_COMMIT_OPTIONS=""
# Options passed to bzr commit when run by etckeeper.
#BZR_COMMIT_OPTIONS=""
# Options passed to darcs commit when run by etckeeper.
#DARCS_COMMIT_OPTIONS=""
# Uncomment to avoid etckeeper committing existing changes
# to /etc automatically once per day.
#AVOID_DAILY_AUTOCOMMITS=1
# Uncomment to avoid etckeeper committing existing changes to.
# /etc before installation. It will cancel the installation,
# so you can commit the changes by hand.
#AVOID_COMMIT_BEFORE_INSTALL=1
# The high-level package manager that's being used.
# (apt, pacman-g2, yum etc)
#HIGHLEVEL_PACKAGE_MANAGER=apt
HIGHLEVEL_PACKAGE_MANAGER=yum
# The low-level package manager that's being used.
# (dpkg, rpm, pacman-g2, etc)
#LOWLEVEL_PACKAGE_MANAGER=dpkg
LOWLEVEL_PACKAGE_MANAGER=rpm
</pre>
* nun die Dateien nach /etc/etckeeper installieren dazu nun wie folgt 'make install' ausführen:
<pre>
make install
</pre>
das liefert in etwa folgenden Output bei Erfolg.
<pre>
mkdir -p /etc/etckeeper/ /var/cache/etckeeper/
cp -a *.d /etc/etckeeper/
install -m 0644 -D etckeeper.conf /etc/etckeeper/etckeeper.conf
install -D etckeeper /usr/sbin/etckeeper
install -m 0644 -D etckeeper.8 /usr/share/man/man8/etckeeper.8
install -m 0644 -D bash_completion /etc/bash_completion.d/etckeeper
install -m 0644 -D yum-etckeeper.py /usr/lib/yum-plugins/etckeeper.py
install -m 0644 -D yum-etckeeper.conf /etc/yum/pluginconf.d/etckeeper.conf
./etckeeper-bzr/__init__.py install --root= || echo "** bzr support not installed"
Traceback (most recent call last):
File "./etckeeper-bzr/__init__.py", line 6, in <module>
import bzrlib
ImportError: No module named bzrlib
** bzr support not installed
echo "** installation successful"
** installation successful
</pre>
* das Repository noch erzeugen und dann Fertig!
<pre>
etckeeper init</pre>
nun existiert der komplette /etc/etckeeper sowie /etc/.hg (bei letzterem noch *schauen, ob die Rechte passen*, damit nicht jeder Einsicht bekommt!)
h2. Befehle im Betrieb
nach jeder Änderung die gespeichert werden soll ein *commit* machen:
z.b.
<pre>
passwd someuser
hg status
hg commit -m "changed a password"
</pre>
h2. weitere +weitere Links sowie Dokumentationen Dokumentationen+:
weiter Details zu finden im *README* der Source Installation (ein Ausschnitt daraus das [[etckeeper_tutorial|etckeeper Tutorial]])
Entwicklerseite auf http://kitenet.net/~joey/code/etckeeper
Debian Paket zum Vergleich http://packages.debian.org/de/sid/etckeeper