Wéi verwalten /etc mat Versiounskontroll Mat Etckeeper op Linux


An der Unix/Linux Verzeichnisstruktur ass den /etc Verzeichnis wou Hostspezifesch systemwäit Konfiguratiounsdateien an Verzeichnisser sinn; et ass eng zentral Plaz fir all System-breet Konfiguratiounsdateien. Eng Konfiguratiounsdatei ass eng lokal Datei déi benotzt gëtt fir ze kontrolléieren wéi e Programm funktionnéiert - et muss statesch sinn a kann net ausführbar binär sinn.

Fir d'Ännerunge vun de Systemkonfiguratiounsdateien ze verfollegen, maachen Systemadministratoren normalerweis Kopien (oder Backupen) vun Konfiguratiounsdateien ier se geännert ginn. Op déi Manéier wa se d'Originaldatei direkt geännert hunn an e Feeler gemaach hunn, kënne se op déi gespäichert Kopie zréckgoen.

Etckeeper ass eng einfach, einfach ze benotzen, modulär a konfiguréierbar Sammlung vun Tools fir /etc mat Versiounskontroll verwaltet ze loossen. Et erlaabt Iech Ännerungen am /etc Verzeichnis an engem Versiounskontrollsystem (VCS) wéi git (wat de bevorzugt VCS ass), Mercurial, Bazaar oder Darcs Repository ze späicheren. Also erlaabt Iech Git ze benotzen fir Ännerungen ze iwwerpréiwen oder zréckzekréien déi op /etc gemaach goufen, am Fall vun engem Feeler.

Seng aner Funktiounen sinn:

  1. et ënnerstëtzt Integratioun mat Front-End Package Manager inklusiv Zypper a Pacman-g2 fir automatesch Ännerunge fir /etc während Package Upgrades z'engagéieren.
  2. et verfollegt Dateimetadaten (wéi d'Datei Permissiounen) déi git normalerweis net ënnerstëtzt, awer dat ass wichteg fir /etc, an
  3. et enthält souwuel e Cron Job wéi och e Systemd Timer, dee jidderee kann ausgoend Ännerungen op /etc automatesch eemol pro Dag maachen.

Wéi installéiere ech Etckeeper op Linux

Etckeeper ass verfügbar an Debian, Ubuntu, Fedora, an aner Linux Verdeelungen. Fir et z'installéieren, benotzt Äre Standard Package Manager wéi gewisen. Notéiert datt dëse Kommando och git an e puer aner Packagen als Ofhängegkeeten installéiere wäert.

$ sudo apt-get install etckeeper	#Ubuntu and Debian
# apt-get install etckeeper		#Debian as root user
# dnf install etckeeper			#Fedora 22+
$ sudo zypper install etckeeper	        #OpenSUSE 15

Op Enterprise Linux Verdeelungen wéi RedHat Enterprise Linux (RHEL), CentOS an anerer, musst Dir den EPEL Repository derbäi setzen ier Dir se installéiert wéi gewisen.

# yum install epel-release
# yum install etckeeper

Etckeeper an Linux konfiguréieren

Wann Dir etckeeper installéiert hutt wéi uewen gewisen, musst Dir konfiguréieren wéi et funktionnéiert a seng Haaptkonfiguratiounsdatei ass /etc/etckeeper/etckeeper.conf. Fir et opzemaachen fir z'änneren, benotzt ee vun Äre Liiblingstext-baséiert Redaktoren wéi gewisen.

# vim /etc/etckeeper/etckeeper.conf
OR
$ sudo nano /etc/etckeeper/etckeeper.conf

De Fichier enthält e puer Configuratioun Optiounen (all mat enger klenger, kloer Benotzen Beschreiwung) déi erlaben Iech d'Versioun Kontroll System (VCS) ze benotzen, Pass Optiounen ze VSC; fir den Timer z'aktivéieren oder auszeschalten, eng speziell Dateiwarnung z'aktivéieren oder auszeschalten, etckeeper z'aktivéieren oder auszeschalten fir existent Ännerungen op /etc virun der Installatioun ze maachen.

Och kënnt Dir de Front-End oder méi héije Package Manager (wéi Rpm etc.) setzen fir mat etckeeper ze schaffen.

Wann Dir eng Ännerung(en) an der Datei gemaach hutt, späichert se a maach d'Datei zou.

Initialiséiere vum Git Repository a Leeschtunge initial Verpflichtung

Elo datt Dir etckeeper konfiguréiert hutt, musst Dir de Git Repository initialiséieren fir all Ännerungen an Ärem /etc Verzeechnes wéi follegt ze verfolgen. Dir kënnt nëmme etckeeper mat root Permissiounen lafen, soss benotzt sudo.

$ cd 
$ sudo etckeeper init

Als nächst, Schrëtt fir etckeeper fir automatesch ze schaffen, musst Dir den éischte Verpflichtung ausféieren fir d'Ännerungen an /etc ze verfollegen, wéi follegt.

$ sudo etckeeper commit "first commit"

Nodeems Dir Ären éischten Engagement ausgefouert hutt, verfollegt etckeeper iwwer git elo all Ännerungen am /etc Verzeichnis. Elo probéiert all Ännerungen an enger vun de Konfiguratiounsdateien ze maachen.

Fuert dann de folgende Kommando fir Dateien ze weisen déi zënter dem leschte Verpflichtung geännert hunn; Dëse Kommando weist am Wesentlechen d'Ännerungen am /etc net inszenéiert fir eng Verpflichtung, wou VCS heescht git an Status ass e git Ënnerbefehl.

$ sudo etckeeper vcs status

Dann engagéieren déi rezent Ännerungen wéi follegt.

$ sudo etckeeper commit "changed hosts and phpmyadmin config files"

Fir e Log vun all Verpflichtungen ze gesinn (all Engagement ID a Kommentar), kënnt Dir de folgende Kommando ausféieren.

$ sudo etckeeper vcs log

Dir kënnt och d'Detailer vun engem Verpflichtung weisen, einfach d'Verpflichtung ID uginn (déi éischt puer Zeeche kënne funktionnéieren) wéi gewisen.:

$ sudo etckeeper vcs show a153b68479d0c440cc42c228cbbb6984095f322d
OR
$ sudo etckeeper vcs show a153b6847

Ausserdeem kënnt Dir den Ënnerscheed tëscht zwee Verpflichtungen kucken wéi gewisen. Dëst ass besonnesch nëtzlech wann Dir Ännerunge wëllt zréckzéien wéi an der nächster Sektioun gewisen. Dir kënnt d'Pfeiltaste benotze fir erop an erof oder lénks a riets ze scrollen, a gitt op andeems Dir q dréckt.

$ sudo etckeeper vcs show 704cc56 a153b6847

D'Essenz vum etckeeper ass Iech ze hëllefen Ännerunge vun Ärem /etc Verzeechnes ze verfollegen an d'Ännerungen ëmgedréint wann néideg. Ugeholl datt Dir mierkt datt Dir e puer Feeler am /etc/nginx/nginx.conf gemaach hutt wann Dir et fir d'lescht geännert hutt an den Nginx Service kann net nei gestart ginn wéinst Feeler an der Konfiguratiounsstruktur, kënnt Dir op déi gespäichert Kopie an engem spezifeschen zréckgoen. engagéieren (zB 704cc56) wou Dir mengt datt d'Konfiguratioun richteg war wéi follegt.

$ sudo etckeeper vcs checkout 704cc56 /etc/nginx/nginx.conf

Alternativ kënnt Dir all Ännerungen annuléieren an zréck op Versioune vun all Dateien ënner /etc (a seng Ënnerverzeechnungen) déi an engem spezifesche Verpflichtung gespäichert sinn.

$ sudo etckeeper vcs checkout 704cc56 

Wéi aktivéiert Ännerunge fir automatesch engagéiert ze ginn

Etckeeper Schëffer och mat engem Service an Timer Unitéiten fir Systemd, am Pak abegraff. Fir \Autocommit vun Ännerungen am /etc Verzeichnis ze lancéieren, start einfach etckeeper.timer Eenheet fir elo a kontrolléiert ob se op a leeft, wéi follegt.

$ sudo systemctl start etckeeper.timer
$ sudo systemctl status etckeeper.timer

An aktivéiert et automatesch beim Systemboot starten wéi gewisen.

$ sudo systemctl enable etckeeper.timer

Fir méi Informatioun, kuckt d'Etckeeper Project Page: https://etckeeper.branchable.com/.

An dësem Guide hu mir gewisen, wéi Dir etckeeper installéiere a benotzt fir Ännerungen am /etc Verzeechnes an engem Versiounskontrollsystem (VCS) wéi git an iwwerpréiwen oder zréckzekréien Ännerungen déi op /etc, wou néideg. Deelt Är Gedanken oder stellt Froen iwwer etckeeper iwwer de Feedbackformular hei ënnen.