Kako upravljati/itd. S kontrolom verzija pomoću programa Etckeeper na Linuxu


U strukturi direktorija Unix/Linux, direktorij /etc je mjesto gdje se nalaze konfiguracijske datoteke i direktoriji specifični za cijeli sustav; to je središnje mjesto za sve konfiguracijske datoteke širom sustava. Konfiguracijska datoteka je lokalna datoteka koja se koristi za kontrolu rada programa - ona mora biti statična i ne može biti izvršna binarna datoteka.

Da bi pratili promjene u konfiguracijskim datotekama sustava, administratori sustava prije kopiranja (ili sigurnosnih kopija) kopiraju konfiguracijske datoteke. Na taj se način, ako su izravno izmijenili izvornu datoteku i pogriješili, mogu vratiti na spremljenu kopiju.

Etckeeper je jednostavna, lagana za upotrebu, modularna i podesiva zbirka alata za upravljanje /etc pomoću kontrole verzija. Omogućuje vam pohranjivanje promjena u direktorij /etc u sustav za kontrolu verzija (VCS), poput gita (koji je preferirani VCS), mercurial, bazaar ili repozitorij darcs. Tako vam omogućuje upotrebu gita za pregled ili poništavanje promjena izvršenih u /etc , u slučaju pogreške.

Ostale su njegove značajke:

  1. podržava integraciju s front-end upraviteljima paketa, uključujući Zypper i pacman-g2, za automatsko urezivanje promjena napravljenih u /etc tijekom nadogradnji paketa.
  2. prati metapodatke datoteke (poput dozvola datoteke) koje git obično ne podržava, ali koji su važni za /etc i
  3. uključuje i cron posao i sistemski tajmer, koji svaki može automatski izvršiti izlazne promjene u /etc jednom dnevno.

Kako instalirati Etckeeper u Linux

Etckeeper je dostupan u distribucijama Debian, Ubuntu, Fedora i drugim Linuxima. Da biste ga instalirali, upotrijebite zadani upravitelj paketa kao što je prikazano. Imajte na umu da će ova naredba također instalirati git i nekoliko drugih paketa kao ovisnosti.

$ 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

U distribucije Enterprise Linuxa kao što su RedHat Enterprise Linux (RHEL), CentOS i druge, morate dodati spremište EPEL prije nego što ga instalirate kako je prikazano.

# yum install epel-release
# yum install etckeeper

Konfiguriranje Etckeeper-a u Linuxu

Nakon što instalirate etckeeper kao što je prikazano gore, morate konfigurirati kako će raditi i njegova glavna konfiguracijska datoteka je /etc/etckeeper/etckeeper.conf. Da biste ga otvorili za uređivanje, upotrijebite bilo koji od svojih omiljenih uređivača koji se temelje na tekstu, kao što je prikazano.

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

Datoteka sadrži nekoliko opcija konfiguracije (svaka s malim, jasnim opisom upotrebe) koje vam omogućuju postavljanje sustava za kontrolu verzija (VCS) na upotrebu, prosljeđivanje opcija VSC-u; da biste omogućili ili onemogućili tajmer, omogućili ili onemogućili posebno upozorenje datoteke, omogućili ili onemogućili etckeeper da izvrši postojeće promjene u /etc prije instalacije.

Također, možete postaviti prednji upravljač ili upravitelj paketa više razine (kao što su rpm itd.) Za rad s programom etckeeper.

Ako ste unijeli bilo kakve promjene u datoteci, spremite ih i zatvorite datoteku.

Inicijalizacija Git spremišta i izvođenje početnog predavanja

Sada kada ste konfigurirali etckeeper, morate inicijalizirati Git spremište kako biste započeli praćenje svih promjena u vašem direktoriju /etc kako slijedi. Etckeeper možete pokrenuti samo s root dopuštenjima, inače koristite sudo.

$ cd 
$ sudo etckeeper init

Dalje, korak kako bi etckeeper mogao automatski raditi, trebate pokrenuti prvi predaj da biste započeli praćenje promjena u /etc , kako slijedi.

$ sudo etckeeper commit "first commit"

Nakon pokretanja vašeg prvog urezivanja, etckeeper putem gita sada prati sve promjene u direktoriju /etc . Sada pokušajte unijeti bilo kakve promjene u bilo koju od konfiguracijskih datoteka.

Zatim pokrenite sljedeću naredbu za prikaz datoteka koje su se promijenile od zadnjeg urezivanja; ova naredba u osnovi prikazuje promjene u /etc koje nisu uprizorene za urezivanje, pri čemu VCS znači git, a "status" je git podnaredba.

$ sudo etckeeper vcs status

Zatim izvršite nedavne promjene kako slijedi.

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

Da biste pregledali zapisnik svih predavanja (ID i komentar svakog predaja), možete pokrenuti sljedeću naredbu.

$ sudo etckeeper vcs log

Također možete prikazati detalje urezivanja, jednostavno navedite ID urezivanja (prvih nekoliko znakova može raditi) kao što je prikazano:

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

Osim toga, možete vidjeti razliku između dva urezivanja kako je prikazano. To je posebno korisno ako želite opozvati promjene kao što je prikazano u sljedećem odjeljku. Pomoću tipki sa strelicama možete se pomicati gore-dolje ili lijevo-desno i napustiti pritiskom na q .

$ sudo etckeeper vcs show 704cc56 a153b6847

Suština etckeeper-a je pomoć u praćenju promjena u direktoriju /etc i poništavanje promjena po potrebi. Pod pretpostavkom da shvatite da ste napravili neke pogreške u /etc/nginx/nginx.conf kad ste ga zadnji put uređivali i da se Nginx usluga ne može ponovo pokrenuti zbog pogrešaka u konfiguracijskoj strukturi, možete se vratiti na spremljenu kopiju u određenom izvrši (npr. 704cc56) tamo gdje misliš da je konfiguracija ispravna kako slijedi.

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

Možete i otkazati sve promjene i vratiti se na verzije svih datoteka u /etc (i njegovim poddirektorijima) pohranjenim u određenom urezivanju.

$ sudo etckeeper vcs checkout 704cc56 

Kako omogućiti automatsko izvršavanje promjena

Etckeeper također isporučuje uslužne i vremenske jedinice za Systemd, uključene u paket. Da biste pokrenuli “Autocommit” promjena u direktoriju /etc , jednostavno za sada pokrenite etckeeper.timer jedinicu i provjerite radi li, kako slijedi.

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

I omogućite mu automatsko pokretanje pri pokretanju sustava kao što je prikazano.

$ sudo systemctl enable etckeeper.timer

Za više informacija pogledajte stranicu projekta Etckeeper: https://etckeeper.branchable.com/.

U ovom smo priručniku pokazali kako instalirati i koristiti etckeeper za spremanje promjena u direktorij /etc u sustavu za kontrolu verzija (VCS) kao što je git te pregledati ili vratiti promjene koje su napravljene u /etc , gdje je potrebno. Podijelite svoja razmišljanja ili postavljajte pitanja o etckeeperu putem obrasca za povratne informacije u nastavku.