La réponse courte à votre question est Oui .
Je n'hésiterais pas à recommander Git (ou tout autre logiciel de contrôle de version) pour garder une trace des fichiers de configuration. Depuis, j'ai été plus productif (en particulier pour configurer de nouvelles installations) et j'ai une plus grande confiance dans mes fichiers de configuration. Avec le contrôle de version, j'ai un enregistrement des modifications qui ont été apportées et le message de validation fournit la raison pour laquelle la modification a été effectuée. Si un changement a des effets secondaires imprévus, je peux facilement consulter le journal / l'historique pour voir quel changement a causé les effets.
Personnellement, je me méfierais de suivre tous les fichiers dans le /
répertoire racine. La liste des chemins à ignorer pourrait devenir longue et lourde. Je préfère conserver chaque ensemble logique de fichiers dans leur propre référentiel.
J'utilise manuellement Git pour garder une trace de mes fichiers de configuration / démarrage personnels , par exemple, la configuration Vim, les fonctions Bash, les alias, etc. - similaire à l'approche répertoriée dans Comment suivre $ HOME avec git . Je garde chaque ensemble de fichiers dans leur propre référentiel et j'utilise des liens symboliques vers le répertoire personnel.
Pour les fichiers de configuration système , j'utilise Git avec Etckeeper pour garder une trace des fichiers dans mon /etc
répertoire.
Désavantages
Un problème à se méfier est de savoir si les fichiers suivis incluent des liens durs . Lorsque Git est utilisé pour extraire des fichiers ou autrement modifier l'arborescence de travail, il dissocie les fichiers, puis les recrée . Voir Git, Dotfiles et Hardlinks pour une explication plus complète.
Etckeeper
Etckeeper peut être utilisé pour conserver un historique complet des modifications apportées à / etc. Il suit les métadonnées des fichiers que les systèmes de contrôle des révisions ne prennent normalement pas en charge, mais cela est important pour /etc
, comme les autorisations de /etc/shadow
.
Il se connecte aux gestionnaires de packages tels qu'apt et yum et (dans sa configuration par défaut), exécute avant et après l'installation de sorte que toutes les modifications apportées /etc
soient suivies.
Si un package est installé ou supprimé, toutes les modifications non validées dans / etc seront validées avant l'opération de package afin qu'il y ait deux validations:
- «Sauvegarde des modifications non validées dans / etc avant l'exécution de yum»
- "Validation des modifications dans / etc après l'exécution de yum"
Je l'ai utilisé avec des distributions basées sur Debian et Red Hat et je sais qu'il prend en charge la gestion des paquets Arch. Je ne peux pas dire combien d'automatisation cela ajouterait à un système Gentoo mais un package est disponible pour cela .
Il prend également en charge la transmission des fichiers de configuration vers un référentiel distant
(qui doit bien sûr être privé).
Configuration
Après avoir installé le paquet, vous devrez peut-être le configurer ( /etc/etckeeper/etckeeper.conf
), par exemple, sur les systèmes Ubuntu, le système de contrôle de version par défaut passe de Git à Bazaar. Vous pouvez également désactiver les validations automatiques quotidiennes .
Autocommits quotidiens
Les modifications peuvent être automatiquement validées par un travail cron quotidien . Cela peut être gênant car le référentiel peut être encombré de plusieurs messages de validation automatisés.
Je décommente la ligne appropriée dans /etc/etckeeper/etckeeper.conf
:
sed -i '/AVOID_DAILY_AUTOCOMMITS/s|^#* *||' /etc/etckeeper/etckeeper.conf
Ignorer certains fichiers
Modifiez /etc/.gitignore
pour spécifier les fichiers qui ne doivent pas être suivis.
Première exécution
Après la configuration, exécutez les commandes suivantes:
sudo etckeeper init
sudo etckeeper commit "Initial commit"
Si votre répertoire actuel est etc
, vous pouvez exécuter des git
commandes régulières , par exemple,
sudo git status
sudo git log