Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:etckeeper

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
software:etckeeper [2012/04/27 14:06]
mhoffmann angelegt
software:etckeeper [2012/10/11 10:23] (aktuell)
Zeile 20: Zeile 20:
 </​code>​ </​code>​
  
-==== Konfiguration ====+===== Konfiguration ====
 Damit der ETCkeeper auch weiß was für ein VCS er nutzt muss ihm das in der Konfiguration mitgeteilt werden. 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: Dazu wird die Konfigurationsdatei bearbeitet:
Zeile 65: Zeile 66:
 # (dpkg, rpm, pacman-g2, etc) # (dpkg, rpm, pacman-g2, etc)
 LOWLEVEL_PACKAGE_MANAGER=dpkg 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>​ </​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 backup }}

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

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