Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Both sides previous revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
software:etckeeper [2012/05/05 09:36] mhoffmann |
software:etckeeper [2012/10/11 10:23] (aktuell) |
||
|---|---|---|---|
| Zeile 21: | Zeile 21: | ||
| ===== 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 83: | Zeile 84: | ||
| Nachdem diese konfiguration vorgenommen wurde arbeitet etckeeper im Hintergrund und versioniert automatisch bei der installation von Paketen. | Nachdem diese konfiguration vorgenommen wurde arbeitet etckeeper im Hintergrund und versioniert automatisch bei der installation von Paketen. | ||
| - | ==== Nutzung ==== | + | ==== Commit ==== |
| Bei manuellen Änderungen in der Konfiguration muss folgendermaßen vorgegangen werden um Änderungen zu versionieren: | Bei manuellen Änderungen in der Konfiguration muss folgendermaßen vorgegangen werden um Änderungen zu versionieren: | ||
| <code> | <code> | ||
| - | # sudo git status | + | # sudo etckeeper commit |
| - | # sudo git commit -a -m "MESSAGE" | + | |
| </code> | </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 ==== | ==== Version einer Datei zurücksetzen ==== | ||
| Falls eine Datei in /etc zurückgesetzt werden kann dies einfach mit folgendem Befehl realisiert werden: | 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> | <code> | ||
| - | # sudo git checkout --<File> | + | # git log |
| </code> | </code> | ||
| + | Im Log kann man dann einsehen welche Version man haben will. Hierzu dienen die ersten Stellen des langen Hash-Codes. | ||
| - | ==== Weiterführende Links und Infos ==== | + | Zurückgesetzt wird die Version dann mit |
| - | Ein deutscher Artikel über ETCkeeper: [[http://www.linux-magazin.de/Online-Artikel/Etckeeper-stellt-Systemkonfiguration-unter-Versionskontrolle]] | + | <code> |
| + | # sudo git checkout <Die ersten paar Ziffern der alten Version> --<File das zurückgesetzt werden soll> | ||
| + | </code> | ||
| - | Offizielle Seite: [[http://kitenet.net/~joey/code/etckeeper/]] | + | 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! | ||
| - | Offizielle Entwicklerbeschreibung und Tutorial: [[http://git.kitenet.net/?p=etckeeper.git;a=blob_plain;f=README;hb=27ca6c9eb668c9ab55cf65f8e620893589536c84]] | + | ===== 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.