Hvordan administrere /etc med versjonskontroll ved å bruke Etckeeper på Linux


I Unix/Linux-katalogstrukturen er /etc-katalogen der vertsspesifikke systemomfattende konfigurasjonsfiler og kataloger er plassert; det er en sentral plassering for alle systemomfattende konfigurasjonsfiler. En konfigurasjonsfil er en lokal fil som brukes til å kontrollere hvordan et program fungerer – den må være statisk og kan ikke være en kjørbar binærfil.

For å holde styr på endringer i systemkonfigurasjonsfiler lager systemadministratorer vanligvis kopier (eller sikkerhetskopier) av konfigurasjonsfiler før de endres. På den måten kan de gå tilbake til den lagrede kopien hvis de endret originalfilen direkte og gjorde en feil.

Etckeeper er en enkel, brukervennlig, modulær og konfigurerbar samling verktøy for å la /etc administreres ved hjelp av versjonskontroll. Den lar deg lagre endringer i /etc-katalogen i et versjonskontrollsystem (VCS) som git (som er den foretrukne VCS), mercurial, bazaar eller darcs-lager . Dermed kan du bruke git til å gjennomgå eller tilbakestille endringer som ble gjort til /etc, i tilfelle feil.

Dens andre funksjoner er:

  1. den støtter integrasjon med front-end pakkeforvaltere inkludert APT, YUM, DNF, Zypper og pacman-g2 for å automatisk foreta endringer gjort til /etc under pakkeoppgraderinger.
  2. den sporer filmetadata (som filtillatelsene) som git vanligvis ikke støtter, men som er viktig for /etc, og
  3. den inkluderer både en cron-jobb og en systemd-timer, som hver kan foreta spennende endringer til /etc automatisk én gang per dag.

Hvordan installere Etckeeper i Linux

Etckeeper er tilgjengelig i Debian, Ubuntu, Fedora og andre Linux-distribusjoner. For å installere den, bruk standardpakkebehandlingen som vist. Merk at denne kommandoen også vil installere git og noen få andre pakker som avhengigheter.

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

Enterprise Linux-distribusjoner som RedHat Enterprise Linux (RHEL), CentOS og andre, må du legge til EPEL-depot før du installerer det som vist.

yum install epel-release
yum install etckeeper

Konfigurere Etckeeper i Linux

Når du har installert etckeeper som vist ovenfor, må du konfigurere hvordan den skal fungere og hovedkonfigurasjonsfilen er /etc/etckeeper/etckeeper.conf. For å åpne den for redigering, bruk en av dine favoritt tekstbaserte redaktører som vist.

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

Filen inneholder flere konfigurasjonsalternativer (hver med en liten, tydelig bruksbeskrivelse) som lar deg sette versjonskontrollsystemet (VCS) som skal brukes, sende alternativer til VSC; for å aktivere eller deaktivere timer, aktivere eller deaktivere spesiell filadvarsel, aktivere eller deaktivere etckeeper fra å utføre eksisterende endringer til /etc før installasjon.

Du kan også stille inn front-end eller høyere nivå pakkebehandling (som apt, yum, dnf osv.) og underliggende eller lavnivå pakke manager (dpkg, rpm etc.) til å fungere med etckeeper.

Hvis du har gjort noen endringer i filen, lagre den og lukk filen.

Initialiserer Git-depotet og utfør innledende forpliktelse

Nå som du har konfigurert etckeeper, må du initialisere Git-depotet for å begynne å spore eventuelle endringer i /etc-katalogen din som følger. Du kan bare kjøre etckeeper med root-tillatelser, ellers kan du bruke sudo.

cd 
sudo etckeeper init

Neste trinn for at etckeeper skal kunne fungere automatisk, må du kjøre den første commit for å begynne å holde styr på endringene i /etc, som følger.

sudo etckeeper commit "first commit"

Å gjøre endringer og forplikte seg

Etter å ha kjørt din første commit, sporer etckeeper via git nå eventuelle endringer i /etc-katalogen. Prøv nå å gjøre endringer i noen av konfigurasjonsfilene.

Kjør deretter følgende kommando for å vise filer som har endret seg siden siste commit; denne kommandoen viser i hovedsak endringene i /etc ikke iscenesatt for commit, der VCS betyr git og "status " er en git-underkommando.

sudo etckeeper vcs status

Deretter forplikter du de siste endringene som følger.

sudo etckeeper commit "changed hosts and phpmyadmin config files"

Se forpliktelseslogger

For å se en logg over alle forpliktelser (hver forpliktelses id og kommentar), kan du kjøre følgende kommando.

sudo etckeeper vcs log

Du kan også vise detaljene for en forpliktelse, bare spesifiser forpliktelses-IDen (de første tegnene kan fungere) som vist.:

sudo etckeeper vcs show a153b68479d0c440cc42c228cbbb6984095f322d
OR
sudo etckeeper vcs show a153b6847

Dessuten kan du se forskjellen mellom to forpliktelser som vist. Dette er spesielt nyttig hvis du vil tilbakekalle endringer som vist i neste avsnitt. Du kan bruke piltastene til å bla opp og ned eller til venstre og høyre, og avslutte ved å trykke q.

sudo etckeeper vcs show 704cc56 a153b6847

Hvordan tilbakekalle endringer

Essensen av etckeeper er å hjelpe deg med å spore endringer i /etc-katalogen din og reversere endringene der det er nødvendig. Forutsatt at du innser at du gjorde noen feil i /etc/nginx/nginx.conf da du sist redigerte den og Nginx-tjenesten ikke kan startes på nytt på grunn av feil i konfigurasjonsstrukturen, kan du gå tilbake til den lagrede kopien i en spesifikk commit (f.eks. 704cc56) der du tror konfigurasjonen var riktig som følger.

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

Alternativt kan du avbryte alle endringer og gå tilbake til versjoner av alle filer under /etc (og dens underkataloger) lagret i en spesifikk commit.

sudo etckeeper vcs checkout 704cc56 

Slik aktiverer du automatiske endringer

Etckeeper leveres også med en service og timerenheter for Systemd, inkludert i pakken. For å starte «Autocommit» av endringer i /etc-katalogen, start etckeeper.timer-enheten for nå og sjekk om den er oppe og kjører , følgende.

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

Og la den automatisk starte ved systemoppstart som vist.

sudo systemctl enable etckeeper.timer

For mer informasjon, se Etckeeper-prosjektsiden: https://etckeeper.branchable.com/.

Konklusjon

I denne veiledningen har vi vist hvordan du installerer og bruker etckeeper for å lagre endringer i /etc-katalogen i et versjonskontrollsystem (VCS) for eksempel git og gjennomgå eller tilbakestille endringer som ble gjort i /etc, der det er nødvendig. Del dine tanker eller still spørsmål om etckeeper via tilbakemeldingsskjemaet nedenfor.