Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:etckeeper

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

software:etckeeper [2012/08/04 16:04]
mhoffmann
software:etckeeper [2012/10/11 10:23]
Zeile 1: Zeile 1:
-====== ETCkeeper ====== 
-ETCkeeper ist ein sehr nützliches Programm welches das kritische Verzeichnis etc/ unter Versionskontrolle stellt. 
-Dies ist nützlich bei der Installation von neuen Packages, Änderungen in der Konfig und bei allgemeinen Backups. 
-ETCkeeper wird außerdem automatisch ausgeführt wenn per aptitude 
-<​code>​ 
-# sudo apt-get intstall "​package"​ 
-</​code>​ 
-neue Pakete installiert werden. 
-Für ETCkeeper können unterschiedliche Versionverwaltungssysteme genutzt werden, am meisten Sinn macht jedoch GIT((engl. für "​Blödmann"​)),​ da es als einziges VCS((Version Controll System = Versionskontrollsystem)) auch symbolische Links verarbeitet und versionieren kann. 
  
-===== Installation ===== 
-Zunächst muss GIT installiert werden: 
-<​code>​ 
-# sudo apt-get install git-core 
-</​code>​ 
- 
-Danach wird noch der ETCkeeper installiert:​ 
-<​code>​ 
-# sudo apt-get install etckeeper 
-</​code>​ 
- 
-===== Konfiguration ===== 
- 
-Damit der ETCkeeper auch weiß was für ein VCS er nutzt muss ihm das in der Konfiguration mitgeteilt werden. 
-Dazu wird die Konfigurationsdatei bearbeitet: 
-<​code>​ 
-# sudo vi /​etc/​etckeeper/​etckeeper.conf 
-</​code>​ 
- 
-Da standardmäßig das VCS "​bazaar"​ genutzt wird muss dieses auskommentiert werden und git angegeben werden. 
-Die Konfiguration sieht dann folgendermaßen aus: 
- 
-<​code>​ 
-# 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 
- 
-# The low-level package manager that's being used. 
-# (dpkg, rpm, pacman-g2, etc) 
-LOWLEVEL_PACKAGE_MANAGER=dpkg 
-</​code>​ 
- 
-Damit der ETCkeeper funktioniert muss zunächst einmal ein lokales GIT-Repository angelegt werden und die Grundkonfiguration geschrieben werden. 
-Die Initialisierung geschieht im Verzeichnis ''/​etc''​ einfach über  
-<​code>​ 
-# sudo etckeeper init 
-</​code>​ 
-Es sollte die Meldung ''​Initialized emtpy Git repository in /​etc/​.git/''​ erscheinen. 
- 
-Danach muss der Inhalt von /etc noch zur Versionskontrolle hinzugefügt werden: 
-<​code>​ 
-# cd /etc 
-# sudo git status 
-# sudo git commit -m "​initial checkin"​ 
-# sudo git gc //gc komprimiert das Repository um Platz zu sparen. 
-</​code>​ 
- 
-Nachdem diese konfiguration vorgenommen wurde arbeitet etckeeper im Hintergrund und versioniert automatisch bei der installation von Paketen. 
-==== Commit ==== 
-Bei manuellen Änderungen in der Konfiguration muss folgendermaßen vorgegangen werden um Änderungen zu versionieren:​ 
-<​code>​ 
-# sudo etckeeper commit 
-</​code>​ 
- 
-Es öffnet sich dann ein VI-Fenster in dem eine commit Message angegeben werden **muss**! 
-Die Zeilen mit Hashtag am Anfang dienen nur zur Information und werden nicht als Message comitted. 
-Nach Eingabe eines **kurzen und präzisen** Kommentares drückt man ''​ESC'',​ danach ''​wq''​ und bestätigt mit ''​Enter''​. 
- 
-Danach erhält man auf dem Bildschirm eine ausgabe, welche Dateien committed wurden. 
-Hat man keinen Kommentar angegeben meldet etckeeper dies.  
-==== Version einer Datei zurücksetzen ==== 
-Falls eine Datei in /etc zurückgesetzt werden kann dies einfach mit folgendem Befehl realisiert werden: 
-Zuerst muss im Log nachgesehen werden welche Version wieder geholt werden soll: 
-<​code>​ 
-# git log 
-</​code>​ 
-Im Log kann man dann einsehen welche Version man haben will. Hierzu dienen die ersten Stellen des langen Hash-Codes. 
- 
-Zurückgesetzt wird die Version dann mit 
-<​code>​ 
-# sudo git checkout <Die ersten paar Ziffern der alten Version> --<File das zurückgesetzt werden soll> 
-</​code>​ 
- 
-Soll dann bspw. wieder auf die neueste Version zurückgegriffen werden, so geschieht dies mit: 
-<​code>​ 
-git checkout master 
-</​code>​ 
-**Achtung:​** hierbei werden ALLE Dateien aus dem master-commit geholt und überschrieben! 
- 
-===== Entferntes GIT-Repository einrichten und automatischen Push einrichten ===== 
-Um eine noch bessere Datensicherheit zu erlangen macht es Sinn, das GIT-Repository auf einen entfernten Server zu pushen. 
-Die Einrichtung hierfür ist nicht schwer. Eine Möglichkeit GIT-Repositories zu Hosten ist [[software:​gitolite|]]. 
- 
-==== Root SSH-Keys ==== 
-Da Commit und Push des etckeepers nur mit Rootrechten möglich ist, braucht man für den SSH-Zugriff auf das entfernte GIT-Repository SSH-Keys für den Benutzer **root**: 
-  - Als **root** auf der Shell anmelden mit ''​sudo -s''​ 
-  - SSH-Keys mit ''​ssh-keygen''​ erstellen 
-  - PublicKey **id_rsa.pub** aus dem Verzeichnis **/​root/​.ssh/​** kopieren. 
- 
-==== Remote Repository einrichten ==== 
-Im Verzeichnis **/etc** folgenden Befehl mit den entsprechenden Serverdaten ausführen (evtl. als root): 
-<​code>​ 
-git remote add origin git@example.com:​my_project 
-</​code>​ 
-wobei hier **git** der Nutzer des Gitbenutzers ist und **my_project** das Repository. 
-Läuft der Git-Server nicht auf Port 22 so nutzt man folgenden Befehl: 
-<​code>​ 
-git remote add origin ssh://​git@example.com:​[PORT]/​my_project 
-</​code>​ 
- 
-==== Repository initial pushen ==== 
-<​code>​ 
-sudo git push -u origin master 
-</​code>​ 
- 
-==== Push automatisieren ==== 
-In der Config des etckeepers müssen nun noch zwei neue Dateien erstellt werden: 
-  * **/​etc/​etckeeper/​commit.d/​60vcs-commit-push** 
-  * **/​etc/​etckeeper/​post-install.d/​60vcs-commit-push** 
- 
-In beide Dateien fügt man folgenden Inhalt ein: 
-<​code>​ 
-#!/bin/bash 
-set -e 
- 
-git push origin master 
-</​code>​ 
- 
-===== Weiterführende Links und Infos ===== 
-Ein deutscher Artikel über ETCkeeper: [[http://​www.linux-magazin.de/​Online-Artikel/​Etckeeper-stellt-Systemkonfiguration-unter-Versionskontrolle]] 
- 
-Offizielle Seite: [[http://​kitenet.net/​~joey/​code/​etckeeper/​]] 
- 
-Offizielle Entwicklerbeschreibung und Tutorial: [[http://​git.kitenet.net/?​p=etckeeper.git;​a=blob_plain;​f=README;​hb=27ca6c9eb668c9ab55cf65f8e620893589536c84]] 
- 
-{{tag>​versionsverwaltung sicherung }} 

Bei Verwendung dieses Wikis erklären Sie sich mit dem Haftungsausschluss, Nutzungsbedingungen und der Datenschutzerklärung dieses Wikis einverstanden. Impressum.

software/etckeeper.txt · Zuletzt geändert: 2012/10/11 10:23 (Externe Bearbeitung)