Recherche de site Web

Comment gérer /etc avec le contrôle de version à l'aide d'Etckeeper sous Linux


Dans la structure de répertoires Unix/Linux, le répertoire /etc est l'endroit où se trouvent les fichiers et répertoires de configuration à l'échelle du système spécifiques à l'hôte ; il s'agit d'un emplacement central pour tous les fichiers de configuration à l'échelle du système. Un fichier de configuration est un fichier local utilisé pour contrôler le fonctionnement d'un programme : il doit être statique et ne peut pas être un binaire exécutable.

Pour suivre les modifications apportées aux fichiers de configuration du système, les administrateurs système effectuent normalement des copies (ou des sauvegardes) des fichiers de configuration avant de les modifier. De cette façon, s’ils ont directement modifié le fichier original et commis une erreur, ils peuvent revenir à la copie enregistrée.

Etckeeper est une collection d'outils simples, faciles à utiliser, modulaires et configurables permettant de gérer /etc à l'aide du contrôle de version. Il vous permet de stocker les modifications dans le répertoire /etc dans un système de contrôle de version (VCS) tel que git (qui est le VCS préféré), Mercurial, Bazaar ou le référentiel Darcs. . Vous permettant ainsi d'utiliser git pour revoir ou annuler les modifications apportées à /etc, en cas d'erreur.

Ses autres fonctionnalités sont :

  1. il prend en charge l'intégration avec les gestionnaires de packages front-end, notamment APT, YUM, DNF, Zypper et pacman-g2 pour valider automatiquement les modifications apportées à /etc lors des mises à niveau des packages.
  2. il suit les métadonnées des fichiers (telles que les autorisations de fichiers) que git ne prend généralement pas en charge, mais qui sont importantes pour /etc, et
  3. il comprend à la fois une tâche cron et un minuteur systemd, chacun pouvant valider automatiquement les modifications existantes dans /etc une fois par jour.

Comment installer Etckeeper sous Linux

Etckeeper est disponible dans Debian, Ubuntu, Fedora et d'autres distributions Linux. Pour l'installer, utilisez votre gestionnaire de packages par défaut comme indiqué. Notez que cette commande installera également git et quelques autres packages en tant que dépendances.

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

Sur les distributions Enterprise Linux telles que RedHat Enterprise Linux (RHEL), CentOS et autres, vous devez ajouter le Dépôt EPEL avant de l'installer comme indiqué.

yum install epel-release
yum install etckeeper

Configuration d'Etckeeper sous Linux

Une fois que vous avez installé etckeeper comme indiqué ci-dessus, vous devez configurer son fonctionnement et son fichier de configuration principal est /etc/etckeeper/etckeeper.conf. Pour l'ouvrir pour le modifier, utilisez l'un de vos éditeurs de texte préférés, comme indiqué.

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

Le fichier contient plusieurs options de configuration (chacune avec une petite description d'utilisation claire) qui vous permettent de définir le système de contrôle de version (VCS) à utiliser, de transmettre les options à VSC ; pour activer ou désactiver la minuterie, activer ou désactiver l'avertissement de fichier spécial, activer ou désactiver etckeeper de valider les modifications existantes dans /etc avant l'installation.

En outre, vous pouvez configurer le gestionnaire de paquets frontal ou de niveau supérieur (tel que apt, yum, dnf, etc.) et le gestionnaire de paquets sous-jacent ou de bas niveau (dpkg, rpm, etc.) pour qu'ils fonctionnent avec etckeeper.

Si vous avez apporté des modifications au fichier, enregistrez-le et fermez le fichier.

Initialiser le référentiel Git et effectuer la validation initiale

Maintenant que vous avez configuré etckeeper, vous devez initialiser le référentiel Git pour commencer à suivre les modifications apportées à votre répertoire /etc comme suit. Vous ne pouvez exécuter etckeeper qu'avec les autorisations root, sinon utilisez sudo.

cd 
sudo etckeeper init

Ensuite, étape pour que etckeeper puisse fonctionner automatiquement, vous devez exécuter le premier commit pour commencer à suivre les modifications dans /etc, comme suit.

sudo etckeeper commit "first commit"

Apporter des changements et s’engager

Après avoir exécuté votre premier commit, etckeeper via git suit désormais toutes les modifications dans le répertoire /etc. Essayez maintenant d'apporter des modifications à l'un des fichiers de configuration.

Exécutez ensuite la commande suivante pour afficher les fichiers qui ont été modifiés depuis la dernière validation : cette commande affiche essentiellement les modifications dans /etc non préparées pour la validation, où VCS signifie git et « status » est une sous-commande git.

sudo etckeeper vcs status

Validez ensuite les modifications récentes comme suit.

sudo etckeeper commit "changed hosts and phpmyadmin config files"

Afficher les journaux de validation

Pour afficher un journal de tous les commits (l'identifiant et le commentaire de chaque commit), vous pouvez exécuter la commande suivante.

sudo etckeeper vcs log

Vous pouvez également afficher les détails d'un commit, en spécifiant simplement l'ID du commit (les premiers caractères peuvent fonctionner) comme indiqué :

sudo etckeeper vcs show a153b68479d0c440cc42c228cbbb6984095f322d
OR
sudo etckeeper vcs show a153b6847

En outre, vous pouvez voir la différence entre deux commits comme indiqué. Ceci est particulièrement utile si vous souhaitez révoquer les modifications comme indiqué dans la section suivante. Vous pouvez utiliser les touches fléchées pour faire défiler vers le haut et le bas ou vers la gauche et la droite, et quitter en appuyant sur q.

sudo etckeeper vcs show 704cc56 a153b6847

Comment révoquer les modifications

L'essence de etckeeper est de vous aider à suivre les modifications apportées à votre répertoire /etc et à annuler les modifications si nécessaire. En supposant que vous réalisez que vous avez commis des erreurs dans le /etc/nginx/nginx.conf lors de votre dernière modification et que le service Nginx ne peut pas être redémarré en raison d'erreurs dans la structure de configuration, vous pouvez revenir en arrière. à la copie enregistrée dans un commit spécifique (par exemple 704cc56) où vous pensez que la configuration était correcte comme suit.

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

Alternativement, vous pouvez annuler toutes les modifications et revenir aux versions de tous les fichiers sous /etc (et ses sous-répertoires) stockés dans un commit spécifique.

sudo etckeeper vcs checkout 704cc56 

Comment activer la validation automatique des modifications

Etckeeper est également livré avec un service et des unités de minuterie pour Systemd, inclus dans le package. Pour lancer « Autocommit » des modifications dans le répertoire /etc, démarrez simplement l'unité etckeeper.timer pour l'instant et vérifiez si elle est opérationnelle. , comme suit.

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

Et activez-le pour démarrer automatiquement au démarrage du système, comme indiqué.

sudo systemctl enable etckeeper.timer

Pour plus d'informations, consultez la page du projet Etckeeper : https://etckeeper.branchable.com/.

Conclusion

Dans ce guide, nous avons montré comment installer et utiliser etckeeper pour stocker les modifications dans le répertoire /etc dans un système de contrôle de version (VCS). tels que git et révisez ou annulez les modifications apportées à /etc, si nécessaire. Partagez vos réflexions ou posez des questions sur etckeeper via le formulaire de commentaires ci-dessous.