Ricerca nel sito web

Come gestire /etc con il controllo della versione utilizzando Etckeeper su Linux


Nella struttura delle directory Unix/Linux, la directory /etc è dove si trovano i file e le directory di configurazione a livello di sistema specifici dell'host; è una posizione centrale per tutti i file di configurazione a livello di sistema. Un file di configurazione è un file locale utilizzato per controllare il funzionamento di un programma: deve essere statico e non può essere un file binario eseguibile.

Per tenere traccia delle modifiche ai file di configurazione del sistema, gli amministratori di sistema normalmente eseguono copie (o backup) dei file di configurazione prima di modificarli. In questo modo, se hanno modificato direttamente il file originale e hanno commesso un errore, possono ripristinare la copia salvata.

Etckeeper è una raccolta di strumenti semplice, facile da usare, modulare e configurabile che consente di gestire /etc utilizzando il controllo della versione. Ti consente di archiviare le modifiche nella directory /etc in un sistema di controllo della versione (VCS) come git (che è il VCS preferito), mercurial, bazaar o repository darcs . Permettendoti così di utilizzare git per rivedere o annullare le modifiche apportate a /etc, in caso di errore.

Le sue altre caratteristiche sono:

  1. supporta l'integrazione con gestori di pacchetti front-end tra cui APT, YUM, DNF, Zypper e pacman-g2 per eseguire il commit automatico delle modifiche apportate a /etc durante gli aggiornamenti dei pacchetti.
  2. tiene traccia dei metadati dei file (come i permessi dei file) che git solitamente non supporta, ma che è importante per /etc, e
  3. include sia un processo cron che un timer systemd, ciascuno dei quali può inviare automaticamente le modifiche in uscita a /etc una volta al giorno.

Come installare Etckeeper su Linux

Etckeeper è disponibile in Debian, Ubuntu, Fedora e altre distribuzioni Linux. Per installarlo, utilizza il gestore pacchetti predefinito come mostrato. Tieni presente che questo comando installerà anche git e alcuni altri pacchetti come dipendenze.

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

Nelle distribuzioni Enterprise Linux come RedHat Enterprise Linux (RHEL), CentOS e altre, è necessario aggiungere il Repository EPEL prima di installarlo come mostrato.

yum install epel-release
yum install etckeeper

Configurazione di Etckeeper in Linux

Una volta installato etckeeper come mostrato sopra, devi configurare come funzionerà e il suo file di configurazione principale è /etc/etckeeper/etckeeper.conf. Per aprirlo per la modifica, utilizza uno dei tuoi editor di testo preferiti come mostrato.

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

Il file contiene diverse opzioni di configurazione (ognuna con una piccola e chiara descrizione dell'utilizzo) che consentono di impostare il sistema di controllo della versione (VCS) da utilizzare, passare le opzioni a VSC; per abilitare o disabilitare il timer, abilitare o disabilitare l'avviso speciale sui file, abilitare o disabilitare etckeeper dall'imputare modifiche esistenti a /etc prima dell'installazione.

Inoltre, puoi impostare il gestore dei pacchetti front-end o di livello superiore (come apt, yum, dnf ecc.) e il gestore dei pacchetti sottostante o di basso livello (dpkg, rpm ecc.) in modo che funzioni con etckeeper.

Se hai apportato modifiche al file, salvalo e chiudi il file.

Inizializzazione del repository Git ed esecuzione del commit iniziale

Ora che hai configurato etckeeper, devi inizializzare il repository Git per iniziare a tenere traccia di eventuali modifiche nella tua directory /etc come segue. Puoi eseguire etckeeper solo con i permessi di root, altrimenti usa sudo.

cd 
sudo etckeeper init

Successivamente, affinché etckeeper possa funzionare automaticamente, è necessario eseguire il primo commit per iniziare a tenere traccia delle modifiche in /etc, come segue.

sudo etckeeper commit "first commit"

Apportare modifiche e impegnarsi

Dopo aver eseguito il tuo primo commit, etckeeper tramite git ora tiene traccia di eventuali modifiche nella directory /etc. Ora prova ad apportare modifiche a uno qualsiasi dei file di configurazione.

Quindi esegui il comando seguente per mostrare i file che sono cambiati dall'ultimo commit; questo comando mostra essenzialmente le modifiche in /etc non preparate per il commit, dove VCS significa git e “status” è un sottocomando git.

sudo etckeeper vcs status

Quindi conferma le modifiche recenti come segue.

sudo etckeeper commit "changed hosts and phpmyadmin config files"

Visualizza i log di commit

Per visualizzare un registro di tutti i commit (ID e commento di ciascun commit), è possibile eseguire il comando seguente.

sudo etckeeper vcs log

Puoi anche mostrare i dettagli di un commit, specificando semplicemente l'ID commit (i primi caratteri possono funzionare) come mostrato.:

sudo etckeeper vcs show a153b68479d0c440cc42c228cbbb6984095f322d
OR
sudo etckeeper vcs show a153b6847

Inoltre, puoi visualizzare la differenza tra due commit come mostrato. Ciò è particolarmente utile se desideri revocare le modifiche come mostrato nella sezione successiva. Puoi utilizzare i tasti freccia per scorrere verso l'alto e il basso o verso sinistra e destra e uscire premendo q.

sudo etckeeper vcs show 704cc56 a153b6847

Come revocare le modifiche

L'essenza di etckeeper è aiutarti a tenere traccia delle modifiche alla tua directory /etc e invertire le modifiche dove necessario. Supponendo che ti rendi conto di aver commesso alcuni errori in /etc/nginx/nginx.conf quando lo hai modificato l'ultima volta e che il servizio Nginx non può essere riavviato a causa di errori nella struttura di configurazione, puoi ripristinare alla copia salvata in un commit specifico (ad esempio 704cc56) dove ritieni che la configurazione fosse corretta come segue.

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

In alternativa, puoi annullare tutte le modifiche e ripristinare le versioni di tutti i file in /etc (e le sue sottodirectory) archiviate in un commit specifico.

sudo etckeeper vcs checkout 704cc56 

Come abilitare l'invio automatico delle modifiche

Etckeeper viene fornito anche con un servizio e unità timer per Systemd, inclusi nel pacchetto. Per avviare l'“Autocommit” delle modifiche nella directory /etc, avvia semplicemente l'unità etckeeper.timer per ora e controlla se è attivo e funzionante , come segue.

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

E abilitalo all'avvio automatico all'avvio del sistema come mostrato.

sudo systemctl enable etckeeper.timer

Per ulteriori informazioni, consultare la pagina del progetto Etckeeper: https://etckeeper.branchable.com/.

Conclusione

In questa guida abbiamo mostrato come installare e utilizzare etckeeper per memorizzare le modifiche nella directory /etc in un sistema di controllo versione (VCS) come git e rivedere o annullare le modifiche apportate a /etc, dove necessario. Condividi i tuoi pensieri o fai domande su etckeeper tramite il modulo di feedback qui sotto.