GNU/Linux >> Tutoriels Linux >  >> OpenSuse

Comment utiliser etckeeper pour gérer /etc dans OpenSUSE Leap 15

Sous Linux/Unix, le /etc le répertoire 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 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 modifient directement le fichier d'origine et commettent une erreur, ils peuvent revenir à la copie enregistrée.

Dans ce guide, nous apprendrons comment installer et configurer etckeeper dans Opensuse Leap 15.

Installer etckeeper

Assurez-vous que votre système est à jour

sudo zypper refresh
sudo zypper update -y

Etckeeper est disponible dans les référentiels OpenSUSE par défaut. Pour installer, utilisez la commande suivante. Cela installera également les dépendances :

sudo zypper install etckeeper

Tapez y lorsque vous êtes invité à accepter l'installation et attendez qu'elle se termine.

Confirmez le package installé avec cette commande

~> rpm -qi etckeeper
Name        : etckeeper
Version     : 1.18.7
Release     : bp153.1.17
Architecture: x86_64
Install Date: Thu Mar  3 17:44:56 2022
Group       : System/Management
Size        : 113726
License     : GPL-2.0+
Signature   : RSA/SHA256, Sat Mar 13 02:04:56 2021, Key ID 9c214d4065176565
Source RPM  : etckeeper-1.18.7-bp153.1.17.src.rpm
Build Date  : Sat Mar 13 02:04:32 2021
Build Host  : lamb54
Relocations : (not relocatable)
Packager    : https://bugs.opensuse.org
Vendor      : openSUSE
URL         : http://etckeeper.branchable.com/
Summary     : Store /etc under Version Control
Description :
The etckeeper program is a tool to let /etc be stored in a git,
mercurial, bzr or darcs repository. It hooks into yum to automatically
commit changes made to /etc during package upgrades. It tracks file
metadata that version control systems do not normally support, but that
is important for /etc, such as the permissions of /etc/shadow. It is
quite modular and configurable, while also being simple to use if you
understand the basics of working with version control.
Distribution: SUSE Linux Enterprise 15 SP3

Configurer etckeeper

Une fois etckeeper installé, nous devons le configurer. Le fichier de configuration etckeeper se trouve dans ce chemin /etc/etckeeper/etckeeper.conf.

Ouvrez-le en utilisant votre éditeur de texte préféré, j'utilise vim.

sudo vim /etc/etckeeper/etckeeper.conf

Les configurations dans le fichier ont de petites descriptions claires. Les options vous permettent de définir le système de contrôle de version à utiliser, de transmettre les options à VSC; pour activer ou désactiver le minuteur, activer ou désactiver l'avertissement de fichier spécial, activer ou désactiver etckeeper pour valider les modifications existantes dans /etc avant l'installation.

En outre, vous pouvez configurer le gestionnaire de packages frontal ou de niveau supérieur (tel que apt, yum, dnf etc.) et le gestionnaire de packages 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.

Initialisation du dépôt git

Ensuite, nous allons initialiser un dépôt git pour garder une trace des changements dans notre fichier /etc. Etckeeper devra être exécuté avec root ou en tant qu'utilisateur avec la commande sudo. Passons au répertoire /etc et initialisons-le .

cd /etc
sudo etckeeper init

Ceci est la sortie sur mon serveur

~> cd /etc
/etc> sudo etckeeper init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
Initialized empty Git repository in /etc/.git/

Ensuite, étape pour etckeeper pour pouvoir travailler automatiquement, vous devez exécuter le premier commit pour commencer à suivre les changements dans /etc , comme suit.

sudo etckeeper commit "initial commit with original etc configs"

Apporter des modifications et s'engager

Après avoir exécuté votre premier commit, etckeeper via git suit désormais toutes les modifications apportées au /etc annuaire. 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 changements dans /etc non préparé pour la validation, où VCS signifie git et "statut ” est une sous-commande git.

sudo etckeeper vcs status

Vous devriez voir une sortie similaire à celle-ci avec les fichiers qui ont été modifiés :

/etc> sudo etckeeper vcs status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   hosts
	modified:   ssh/sshd_config

no changes added to commit (use "git add" and/or "git commit -a")

Validez ensuite les modifications récentes comme suit.

sudo etckeeper commit "updated hosts file and disallowed root ssh login"

Vous devriez voir une sortie similaire à celle-ci

/etc> sudo etckeeper commit "updated hosts file and disallowed root ssh login"
[master 9984ce4] updated hosts file and disallowed root ssh login
 Author: ec2-user <[email protected]>
 2 files changed, 3 insertions(+), 3 deletions(-)

Afficher les journaux de validation

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

sudo etckeeper vcs log

Sortie

/etc> sudo etckeeper vcs log
commit 9984ce498ba68d15c8e1ac84dbec7b3cb6e3202f (HEAD -> master)
Author: ec2-user <[email protected]>
Date:   Thu Mar 3 18:02:25 2022 +0000

    updated hosts file and disallowed root ssh login

commit 179ae7654496e9190c700c1ea4584d0ff05d3418
Author: ec2-user <[email protected]>
Date:   Thu Mar 3 17:59:00 2022 +0000

    initial commit with original etc configs

Vous pouvez également afficher les détails d'un commit, il vous suffit de spécifier l'ID de commit (les premiers caractères peuvent fonctionner) comme indiqué :

sudo etckeeper vcs show 9984ce498ba68d15c8e1ac84dbec7b3cb6e3202f

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

sudo etckeeper vcs show 9984ce 179ae

Comment annuler les modifications

L'essence d'etckeeper est de vous aider à suivre les modifications apportées à votre /etc répertoire et annulez les modifications si nécessaire. En supposant que vous réalisiez que vous avez fait des erreurs dans le /etc/ssh/sshd_config lorsque vous l'avez modifié pour la dernière fois et que le service sshd ne peut pas être redémarré en raison d'erreurs dans la structure de configuration, vous pouvez revenir à la copie enregistrée dans un commit spécifique (par exemple 9984ce ) où vous pensez que la configuration était correcte comme suit.

sudo etckeeper vcs checkout 9984ce /etc/ssh/sshd_config

Vous pouvez également annuler toutes les modifications et rétablir les versions de tous les fichiers sous /etc (et ses sous-répertoires) stockés dans un commit spécifique.

sudo etckeeper vcs checkout 9984ce

Activer la validation automatique des modifications

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

sudo systemctl start etckeeper.timer

Confirmer le statut

/etc> sudo systemctl status etckeeper.timer
● etckeeper.timer - Daily autocommit of changes in /etc directory
     Loaded: loaded (/usr/lib/systemd/system/etckeeper.timer; disabled; vendor preset: disabled)
     Active: active (waiting) since Thu 2022-03-03 18:08:39 UTC; 4s ago
    Trigger: Fri 2022-03-04 18:08:39 UTC; 23h left
   Triggers: ● etckeeper.service
       Docs: man:etckeeper(8)

Mar 03 18:08:39 opensusesrv systemd[1]: Started Daily autocommit of changes in /etc directory.

Et activez-le pour qu'il démarre automatiquement au démarrage du système, comme indiqué.

sudo systemctl enable etckeeper.timer

Conclusion

Dans ce guide, nous avons appris à installer et à utiliser etckeeper pour gérer les modifications dans le répertoire /etc à l'aide d'un système de gestion de version tel que git.


OpenSuse
  1. Comment mettre à niveau OpenSUSE 12.2 vers 12.3 (bureau et serveur)

  2. Comment installer Mongodb 5 dans Opensuse Leap 15.3

  3. Comment installer Mysql Server 8 sur OpenSUSE Leap 15.3

  4. Comment installer et configurer Redis 6 sur OpenSUSE Leap 15.3

  5. Comment installer Erlang sur Opensuse Leap 15.3

Comment installer Skype sur openSUSE Leap

Comment installer TeamViewer 12 sur openSUSE Leap 42.2

Comment installer Dropbox sur openSUSE Leap 42.2

Comment installer RabbitMQ dans OpenSUSE Leap 15.3

Comment installer Google Chrome sur openSUSE Leap 15

Comment installer PHP 8.0 sur openSUSE 15 Leap