Non Perdere Mai Più Un File Di Configurazione Con EtcKeeper


In uno dei precedenti articoli abbiamo parlato dei pro e dei contro di Git, uno dei più diffusi VCS nell’ambito dello sviluppo software. Oggi vediamo come utilizzare lo stesso softare per un uso più orientato al generico utente, con l’aiuto di etckeeper.

Etckeeper è una collezione di strumenti per permettono ai file residenti nella cartella di /etc (quella delle configurazioni sui sistemi unix-like) di essere conservati in un repository Git, Mercurial, darcs o bzr. E’ incluso nelle principali distribuzioni e si puo installare attraverso apt (o gli  altri gestori di pacchetti tra cui yum e pacman-g2). Una volta installato etckeeper si collega ad apt (o tool equivalente) ed esegue un commit automatico dei file cambiati durante un aggiornamento dei pacchetti.

Vediamo un esempio di funzionamento. Come prima cosa installiamo Git e etckeeper (di seguito vengono riportati i comandi per ubuntu, ma dovrebbe essere semplice tradurli per le versioni basate su rpm semplicemente utilizzando yum al posto di apt-get)

$ sudo apt-get -y install git-core
$ git config --global user.name "Alessandro Maggi"
$ git config --global user.email alessandro.maggi@ziogeek.com
$ sudo apt-get -y install etckeeper

Modifichiamo il file /etc/etckeeper/etckeeper.conf in modo da configurare etckeepr per l’utilizzo di Git (di default la configurazione di Ubuntu è impostata su bzr)

# The VCS to use.
# VCS="hg"
VCS="git"
# VCS="bzr"
# VCS="darcs"

Inizializziamo il repository e il gioco è fatto.

$ sudo etckeeper init
Initialized empty Git repository in /etc/.git/
$ sudo etckeeper commit "Versione Iniziale.

Da questo momento in poi ogni modifca fatta alla directory etc sarà automaticamente versata nel repository (grazie a un apposito cronjob, per default a cadenza giornaliera, ma ovviamente configurabile). In questo modo non rischieremo mai più di perdere un file di configurazione. Comodo, vero ?

A titolo di esempio vediamo cosa succede ad esempio installando apache:

$ sudo apt-get -y install apache2
Dopo l'installazione possiamo vedere cosa è successo al nostro repository. Comodo vero ?
$ cd /etc
$ sudo git log --summary 1
commit 9a1be7965e13a46a3f27c6716d3952bfac9ec810
Author: Alessandro Maggi
Date: Wed Jun 27 11:17:03 2012 +0200
    committing changes in /etc after apt run

    Package changes:
    +apache2 2.2.14-5ubuntu8.4
    +apache2-mpm-worker 2.2.14-5ubuntu8.4
    +apache2-utils 2.2.14-5ubuntu8.4
    +apache2.2-bin 2.2.14-5ubuntu8.4
    +apache2.2-common 2.2.14-5ubuntu8.4
    +libapr1 1.3.8-1build1
    +libaprutil1 1.3.9+dfsg-3ubuntu0.10.04.1
    +libaprutil1-dbd-sqlite3 1.3.9+dfsg-3ubuntu0.10.04.1
    +libaprutil1-ldap 1.3.9+dfsg-3ubuntu0.10.04.1
    +ssl-cert 1.0.23ubuntu2

 create mode 100644 apache2/apache2.conf
 create mode 100644 apache2/conf.d/charset
..........
 create mode 100644 ufw/applications.d/apache2.2-common

Ovviamente è anche possibile impartire direttamente i comandi per gestire manulamente i vari commit.

© 2008 Ziogeek.com

Tag: , ,