Gestion de ses fichiers de configuration avec git

Je me demandais comment pouvoir update proprement avec les distributions ne fonctionnant pas en rolling release. La plupart ne le sont pas d’ailleurs. Bref, c’est quand même super lourd de devoir réinstaller tout les paquets, en n’oubliant aucun…, et de se retaper la config. Donc comment faire ?

Ajout des paquets au kickstart

Utilisant Fedora, le problème de réinstaller les paquets sans en oublier ne posait pas vraiment de problème avec Kickstart. Il suffit de faire un inventaire de ses paquets et de le mettre dans le fichier kickstart. Voilà une méthode pour le faire simplement :

Editer le kickstart dans le home de root et supprimer les lignes sous %packages. Puis faire :

#
# rpm -qa -qf "%{NAME}\n" >> anaconda-ks.cfg

anacond-ks.cfg est votre kickstart avec la partie des packages vide. Cela vous donnera un fichier kickstart permettant de réinstaller avec les même logiciels. Reste maintenant à restaurer leurs configurations et le tour est joué.

Pour cela, je me suis dis qu’un gestionnaire de versions serait l’idéal :). En plus de gérer vos versions de fichiers de configuration, ce qui est très utile, il permettra aussi leurs sauvegardes. Bon cela ne paraît pas forcément le plus intuitif du monde comme outil de sauvegarde mais je trouve ça élégant et bien moins casse tête. Bref, utilisant git assez souvent, je le choisis pour son côté décentralisé (tout autre système dans le genre, mercurial etc, aurait pu faire l’affaire mais bon, il est plus simple d’utiliser ce qu’on utilise déjà).

L’idée est de faire un dépôt git avec les fichiers qui sont modifié par mes soins ou souvent modifiés par des programmes tiers et de cloner celui-ci sur un stockage séparé, pour en faire une sauvegarde complète. Ensuite, j’utilise inotify et son copain incrond pour sauvegarder les fichiers qui m’intéresse à chaque modification.

Voici, ce que cela donne :

# yum install incron
# cd /etc
# git init

A ce point, on pourrait sauvegarder tout le dossier etc, mais cela ne sera pas propre et saloperait toutes restaurations complète de ce dossier. En effet, lorsque vous aurez réinstaller votre distrib préférée vous allez écraser pas mal de fichiers de conf qui peuvent avoir changés, en mieux, et vous priver de fonctionnalités voire même rendre certains logiciels plantogènes. Il vaut mieux faire un git add des fichiers/dossiers qui vous intéresse. Faites autant de dépôts que vous le voulez au travers de vos filesystems ou faites un dépôt sur la racine de votre système pour pas vous embêtez, à vous de voir.

# cd /data/backup
# git clone ssh://root@/etc/.git