Com gestionar /etc amb el control de versions utilitzant Etckeeper a Linux


A l'estructura de directoris Unix/Linux, el directori /etc és on es troben els fitxers i directoris de configuració de tot el sistema específics de l'amfitrió; és una ubicació central per a tots els fitxers de configuració de tot el sistema. Un fitxer de configuració és un fitxer local que s'utilitza per controlar el funcionament d'un programa: ha de ser estàtic i no pot ser un binari executable.

Per fer un seguiment dels canvis als fitxers de configuració del sistema, els administradors del sistema normalment fan còpies (o còpies de seguretat) dels fitxers de configuració abans de modificar-los. D'aquesta manera, si han modificat directament el fitxer original i s'han equivocat, poden tornar a la còpia desada.

Etckeeper és una col·lecció d'eines senzilla, fàcil d'utilitzar, modular i configurable per permetre gestionar /etc mitjançant el control de versions. Us permet emmagatzemar els canvis al directori /etc en un sistema de control de versions (VCS) com ara git (que és el VCS preferit), mercurial, bazaar o repositori darcs. Per tant, us permet utilitzar git per revisar o revertir els canvis fets a /etc, en cas d'error.

Les seves altres característiques són:

  1. admet la integració amb gestors de paquets frontals, inclosos Zypper i pacman-g2, per confirmar automàticament els canvis fets a /etc durant les actualitzacions de paquets.
  2. fa un seguiment de les metadades del fitxer (com ara els permisos del fitxer) que git no admet normalment, però que és important per a /etc i
  3. inclou tant una tasca cron com un temporitzador de sistema, que cadascun pot cometre els canvis de sortida a /etc automàticament una vegada al dia.

Com instal·lar Etckeeper a Linux

Etckeeper està disponible a Debian, Ubuntu, Fedora i altres distribucions de Linux. Per instal·lar-lo, utilitzeu el vostre gestor de paquets predeterminat tal com es mostra. Tingueu en compte que aquesta ordre també instal·larà git i alguns altres paquets com a dependències.

$ 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

A les distribucions Enterprise Linux, com ara RedHat Enterprise Linux (RHEL), CentOS i altres, heu d'afegir el repositori EPEL abans d'instal·lar-lo tal com es mostra.

# yum install epel-release
# yum install etckeeper

Configurant Etckeeper a Linux

Un cop hàgiu instal·lat etckeeper com es mostra més amunt, heu de configurar com funcionarà i el seu fitxer de configuració principal és /etc/etckeeper/etckeeper.conf. Per obrir-lo per editar-lo, utilitzeu qualsevol dels vostres editors de text preferits com es mostra.

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

El fitxer conté diverses opcions de configuració (cadascun amb una descripció d'ús petita i clara) que us permeten configurar el sistema de control de versions (VCS) a utilitzar, passar opcions a VSC; per activar o desactivar el temporitzador, habilitar o desactivar l'avís especial de fitxers, habilitar o desactivar etckeeper perquè cometi els canvis existents a /etc abans de la instal·lació.

A més, podeu configurar el gestor de paquets frontal o de nivell superior (com ara rpm, etc.) perquè funcioni amb etckeeper.

Si heu fet algun canvi al fitxer, deseu-lo i tanqueu-lo.

Inicialització del repositori Git i realització de la confirmació inicial

Ara que heu configurat etckeeper, heu d'iniciar el repositori Git per començar a fer el seguiment de qualsevol canvi al vostre directori /etc de la manera següent. Només podeu executar etckeeper amb permisos root, en cas contrari, feu servir sudo.

$ cd 
$ sudo etckeeper init

A continuació, pas perquè etckeeper pugui funcionar automàticament, heu d'executar el primer commit per començar a fer un seguiment dels canvis a /etc, de la següent manera.

$ sudo etckeeper commit "first commit"

Després d'executar el vostre primer commit, etckeeper via git ara fa un seguiment de qualsevol canvi al directori /etc. Ara proveu de fer qualsevol canvi en qualsevol dels fitxers de configuració.

A continuació, executeu l'ordre següent per mostrar els fitxers que han canviat des de l'última confirmació; aquesta ordre mostra bàsicament els canvis a /etc que no s'han fet per a la confirmació, on VCS significa git i \estat és una subordre git.

$ sudo etckeeper vcs status

A continuació, cometreu els canvis recents de la següent manera.

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

Per veure un registre de totes les confirmacions (identificador i comentari de cada commit), podeu executar l'ordre següent.

$ sudo etckeeper vcs log

També podeu mostrar els detalls d'un commit, simplement especifiqueu l'ID de commit (els primers caràcters poden funcionar) tal com es mostra.:

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

A més, podeu veure la diferència entre dos commits tal com es mostra. Això és especialment útil si voleu revocar els canvis tal com es mostra a la secció següent. Podeu utilitzar les tecles de fletxa per desplaçar-vos cap amunt i cap avall o cap a l'esquerra i la dreta, i sortir-ne prement q.

$ sudo etckeeper vcs show 704cc56 a153b6847

L'essència d'etckeeper és ajudar-vos a fer un seguiment dels canvis al vostre directori /etc i revertir els canvis quan sigui necessari. Suposant que us adoneu que heu comès alguns errors al fitxer /etc/nginx/nginx.conf l'última vegada que el vau editar i que el servei Nginx no es pot reiniciar a causa d'errors en l'estructura de configuració, podeu tornar a la còpia desada en un fitxer específic. commit (p. ex. 704cc56) on creieu que la configuració era correcta de la següent manera.

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

Alternativament, podeu cancel·lar tots els canvis i tornar a les versions de tots els fitxers sota /etc (i els seus subdirectoris) emmagatzemats en una confirmació específica.

$ sudo etckeeper vcs checkout 704cc56 

Com permetre que els canvis es comprometin automàticament

Etckeeper també s'envia amb un servei i unitats de temporitzador per a Systemd, incloses al paquet. Per llançar \Autocommit dels canvis al directori /etc, només cal que inicieu la unitat etckeeper.timer de moment i comproveu si està en funcionament, com segueix.

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

I habiliteu-lo perquè s'iniciï automàticament a l'arrencada del sistema tal com es mostra.

$ sudo systemctl enable etckeeper.timer

Per obtenir més informació, consulteu la pàgina del projecte Etckeeper: https://etckeeper.branchable.com/.

En aquesta guia, hem mostrat com instal·lar i utilitzar etckeeper per als canvis de la botiga al directori /etc en un sistema de control de versions (VCS) com ara git i revisar o revertir els canvis fets a , quan sigui necessari. Comparteix els teus pensaments o fes preguntes sobre etckeeper mitjançant el formulari de comentaris que hi ha a continuació.