GNU/Linux >> Tutoriales Linux >  >> OpenSuse

Cómo usar etckeeper para administrar /etc en OpenSUSE Leap 15

En Linux/Unix, el /etc el directorio es donde se encuentran los directorios y los archivos de configuración de todo el sistema específicos del host; es una ubicación central para todos los archivos de configuración de todo el sistema. Un archivo de configuración es un archivo local que se usa para controlar cómo funciona un programa; debe ser estático y no puede ser un binario ejecutable.

Para realizar un seguimiento de los cambios en los archivos de configuración del sistema, los administradores del sistema normalmente hacen copias (o copias de seguridad) de los archivos de configuración antes de modificarlos. De esa forma, si modificaron directamente el archivo original y cometieron un error, pueden volver a la copia guardada.

En esta guía, aprenderemos cómo instalar y configurar etckeeper en Opensuse Leap 15.

Instalando etckeeper

Asegúrese de que su sistema esté actualizado

sudo zypper refresh
sudo zypper update -y

Etckeeper está disponible en los repositorios predeterminados de OpenSUSE. Para instalar, use el siguiente comando. Esto también instalará dependencias:

sudo zypper install etckeeper

Escriba y cuando se le solicite que acepte la instalación y espere a que finalice.

Confirme el paquete instalado con este comando

~> 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

Configuración de etckeeper

Una vez instalado etckeeper, necesitamos configurarlo. El archivo de configuración de etckeeper se encuentra en esta ruta /etc/etckeeper/etckeeper.conf.

Ábrelo usando tu editor de texto favorito, yo estoy usando vim.

sudo vim /etc/etckeeper/etckeeper.conf

Las configuraciones en el archivo tienen descripciones pequeñas y claras. Las opciones le permiten configurar el sistema de control de versiones para usar, pasar opciones a VSC; para habilitar o deshabilitar el temporizador, habilitar o deshabilitar la advertencia de archivo especial, habilitar o deshabilitar etckeeper para que no confirme los cambios existentes en /etc antes de la instalación.

Además, puede configurar el administrador de paquetes frontal o de nivel superior (como apt, yum, dnf etc.) y el administrador de paquetes subyacente o de bajo nivel (dpkg, rpm etc.) para trabajar con etckeeper .

Si ha realizado algún cambio en el archivo, guárdelo y ciérrelo.

Inicializando repositorio git

A continuación, inicializaremos un repositorio de git para realizar un seguimiento de los cambios en nuestro archivo /etc. Etckeeper deberá ejecutarse con root o como usuario con el comando sudo. Cambiemos al directorio /etc e inicialicemos .

cd /etc
sudo etckeeper init

Esta es la salida en mi servidor

~> 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/

A continuación, paso a etckeeper para poder trabajar automáticamente, debe ejecutar la primera confirmación para comenzar a realizar un seguimiento de los cambios en /etc , de la siguiente manera.

sudo etckeeper commit "initial commit with original etc configs"

Hacer cambios y comprometerse

Después de ejecutar tu primera confirmación, etckeeper a través de git ahora está rastreando cualquier cambio en /etc directorio. Ahora intente realizar cualquier cambio en cualquiera de los archivos de configuración.

Luego ejecute el siguiente comando para mostrar los archivos que han cambiado desde la última confirmación; este comando esencialmente muestra los cambios en /etc no preparado para compromiso, donde VCS significa git y “estado ” es un subcomando de git.

sudo etckeeper vcs status

Debería ver un resultado similar a este con los archivos que cambiaron:

/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")

Luego confirme los cambios recientes de la siguiente manera.

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

Deberías ver un resultado similar a este

/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(-)

Ver registros de confirmación

Para ver un registro de todas las confirmaciones (la identificación y el comentario de cada confirmación), puede ejecutar el siguiente comando.

sudo etckeeper vcs log

Salida

/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

También puede mostrar los detalles de una confirmación, simplemente especifique el ID de la confirmación (los primeros caracteres pueden funcionar) como se muestra:

sudo etckeeper vcs show 9984ce498ba68d15c8e1ac84dbec7b3cb6e3202f

Además, puede ver la diferencia entre dos confirmaciones como se muestra. Esto es especialmente útil si desea revocar cambios como se muestra en la siguiente sección. Puede usar las teclas de flecha para desplazarse hacia arriba y hacia abajo o hacia la izquierda y hacia la derecha, y salir presionando q .

sudo etckeeper vcs show 9984ce 179ae

Cómo revocar cambios

La esencia de etckeeper es para ayudarlo a realizar un seguimiento de los cambios en su /etc directorio y revertir los cambios cuando sea necesario. Suponiendo que te das cuenta de que cometiste algunos errores en /etc/ssh/sshd_config cuando lo editó por última vez y el servicio sshd no se puede reiniciar debido a errores en la estructura de configuración, puede volver a la copia guardada en una confirmación específica (por ejemplo, 9984ce ) donde creas que la configuración fue correcta de la siguiente manera.

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

Como alternativa, puede cancelar todos los cambios y volver a las versiones de todos los archivos en /etc (y sus subdirectorios) almacenados en una confirmación específica.

sudo etckeeper vcs checkout 9984ce

Habilitar que los cambios se confirmen automáticamente

Etckeeper también se envía con un servicio y unidades de temporizador para Systemd , incluido en el paquete. Para iniciar “Autocommit ” de cambios en el /etc directorio, simplemente inicie etckeeper.timer unidad por ahora y verifique si está en funcionamiento, de la siguiente manera.

sudo systemctl start etckeeper.timer

Confirmar el estado

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

Y habilítelo para que se inicie automáticamente en el arranque del sistema como se muestra.

sudo systemctl enable etckeeper.timer

Conclusión

En esta guía, aprendimos cómo instalar y usar etckeeper para administrar cambios en el directorio /etc usando un sistema de administración de versiones como git.


OpenSuse
  1. Cómo actualizar OpenSUSE 12.2 a 12.3 (escritorio y servidor)

  2. Cómo instalar Erlang en Opensuse Leap 15.3

  3. Cómo instalar y usar Podman en OpenSUSE Leap 15.3

  4. Cómo configurar un servidor SFTP en OpenSUSE Leap 15.3 Server

  5. Cómo instalar Java 17 en OpenSUSE Leap 15.3

Cómo instalar Skype en openSUSE Leap

Cómo instalar TeamViewer 12 en openSUSE Leap 42.2

Cómo instalar Dropbox en openSUSE Leap 42.2

Cómo instalar RabbitMQ en OpenSUSE Leap 15.3

Cómo instalar Google Chrome en openSUSE Leap 15

Cómo instalar PHP 8.0 en openSUSE 15 Leap