Búsqueda de sitios web

Cómo administrar /etc con control de versiones usando Etckeeper en Linux


En la estructura de directorios de Unix/Linux, el directorio /etc es donde se ubican los archivos y directorios 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 utiliza 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 manera, si modificaron directamente el archivo original y cometieron un error, podrán volver a la copia guardada.

Etckeeper es una colección de herramientas simple, fácil de usar, modular y configurable que permite administrar /etc mediante el control de versiones. Le permite almacenar cambios en el directorio /etc en un sistema de control de versiones (VCS) como git (que es el repositorio VCS preferido), mercurial, bazaar o darcs. . De este modo, le permite utilizar git para revisar o revertir los cambios realizados en /etc, en caso de error.

Sus otras características son:

  1. admite la integración con administradores de paquetes front-end, incluidos APT, YUM, DNF, Zypper y pacman-g2 para confirmar automáticamente los cambios realizados en /etc durante las actualizaciones de paquetes.
  2. rastrea los metadatos del archivo (como los permisos del archivo) que git generalmente no admite, pero que son importantes para /etc, y
  3. incluye un trabajo cron y un temporizador systemd, cada uno de los cuales puede confirmar los cambios salientes en /etc automáticamente una vez al día.

Cómo instalar Etckeeper en Linux

Etckeeper está disponible en Debian, Ubuntu, Fedora y otras distribuciones de Linux. Para instalarlo, utilice su administrador de paquetes predeterminado como se muestra. Tenga en cuenta que este comando también instalará git y algunos otros paquetes como dependencias.

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

En distribuciones Enterprise Linux como RedHat Enterprise Linux (RHEL), CentOS y otras, debe agregar el repositorio EPEL antes de instalarlo como se muestra.

yum install epel-release
yum install etckeeper

Configurar Etckeeper en Linux

Una vez que haya instalado etckeeper como se muestra arriba, debe configurar cómo funcionará y su archivo de configuración principal es /etc/etckeeper/etckeeper.conf. Para abrirlo y editarlo, utilice cualquiera de sus editores de texto favoritos como se muestra.

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

El archivo contiene varias opciones de configuración (cada una con una pequeña y clara descripción de uso) que le permiten configurar el sistema de control de versiones (VCS) a usar, pasar opciones a VSC; para habilitar o deshabilitar el temporizador, habilitar o deshabilitar la advertencia de archivos especiales, habilitar o deshabilitar que etckeeper realice cambios existentes en /etc antes de la instalación.

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

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

Inicializar el repositorio de Git y realizar la confirmación inicial

Ahora que ha configurado etckeeper, necesita inicializar el repositorio Git para comenzar a rastrear cualquier cambio en su directorio /etc de la siguiente manera. Solo puede ejecutar etckeeper con permisos de root; de lo contrario, utilice sudo.

cd 
sudo etckeeper init

A continuación, para que etckeeper pueda funcionar 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 "first commit"

Hacer cambios y comprometerse

Después de ejecutar su primera confirmación, etckeeper a través de git ahora rastrea cualquier cambio en el directorio /etc. Ahora intente realizar cambios 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 preparados para la confirmación, donde VCS significa git y “status” es un subcomando de git.

sudo etckeeper vcs status

Luego confirme los cambios recientes de la siguiente manera.

sudo etckeeper commit "changed hosts and phpmyadmin config files"

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

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

sudo etckeeper vcs show a153b68479d0c440cc42c228cbbb6984095f322d
OR
sudo etckeeper vcs show a153b6847

Además, puedes 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 utilizar 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 704cc56 a153b6847

Cómo revocar cambios

La esencia de etckeeper es ayudarle a rastrear los cambios en su directorio /etc y revertir los cambios cuando sea necesario. Suponiendo que se da cuenta de que cometió algunos errores en /etc/nginx/nginx.conf la última vez que lo editó y que el servicio Nginx no se puede reiniciar debido a errores en la estructura de configuración, puede revertirlo. a la copia guardada en una confirmación específica (por ejemplo, 704cc56) donde cree que la configuración era correcta de la siguiente manera.

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

Alternativamente, 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 704cc56 

Cómo permitir que los cambios se confirmen automáticamente

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

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

Y habilítelo para que se inicie automáticamente al iniciar el sistema como se muestra.

sudo systemctl enable etckeeper.timer

Para obtener más información, consulte la página del proyecto Etckeeper: https://etckeeper.branchable.com/.

Conclusión

En esta guía, hemos mostrado cómo instalar y usar etckeeper para almacenar cambios en el directorio /etc en un sistema de control de versiones (VCS). como git y revisar o revertir los cambios que se realizaron en /etc, cuando sea necesario. Comparta sus opiniones o haga preguntas sobre etckeeper a través del formulario de comentarios a continuación.