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 :
- 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. - 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 - 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.