Controla los cambios del directorio /etc de Linux con Git y etckeeper

Controla los cambios del directorio /etc de Linux con Git y etckeeper

Rubén Velasco

Etckeeper es un conjunto de herramientas destinadas a sincronizar el directorio /etc de nuestro sistema Linux con controladores de versiones como git, mercurial, bazaar o darcs. De esta manera, siempre vamos a poder tener bajo control todos los cambios que se realicen en este directorio (por ejemplo, al instalar o actualizar paquetes), pudiendo revertir cualquiera de ellos en caso de que algo funcionara de forma incorrecta.

Esta herramienta es modular y totalmente configurable. También es muy sencilla de utilizar para todos aquellos usuarios que cuentan con conocimientos en el ámbito de los controladores de versiones.

Cómo instalar etckeeper

Lo primero que debemos hacer es instalar el paquete desde nuestro terminal. Para ello tecleamos:

  • sudo apt install etckeeper && sudo apt install git-core

etckeeper utilizará por defecto el controlador de versiones Bzr. Por ello, una vez finalice la instalación, debemos indicarle que queremos utilizar git para llevar el control de nuestro directorio.

Para ello, editamos el fichero de configuración tecleando:

  • sudo nano /etc/etckeeper/etckeeper.conf

Y comentamos la línea de bzr y descomentamos la de git. El aspecto final debe ser similar al siguiente:

Configurar etckeeper para usar GIT en vez de BZR

Una vez hecho, vamos a crear el primer repositorio. Ejecutamos en el terminal:

  • sudo etckeeper init

También podemos poner nombre a este primer commit del repositorio con:

  • sudo etckeeper commit «Primer commit.»

Listo. ya tenemos etckeeper instalado y hemos inicializado el primer repositorio. A continuación, vamos a ver cómo utilizar esta herramienta para llevar siempre el control de los cambios que se realicen en el directorio /etc/.

Una vez llegados a este punto, podemos olvidarnos del programa, ya que él mismo se ejecutará una vez al día automáticamente sin que tengamos que hacer nada, registrando todos los cambios y permitiéndonos recuperarnos ante cualquier fallo en los ficheros de configuración del directorio /etc/.

Sin embargo, vamos a profundizar un poco más en el funcionamiento de esta herramienta.

Cómo funciona etckeeper

Lo primero que vamos a hacer es comprobar que todos los cambios están registrados, es decir, que no hay nada pendiente de hacer un «commit».

Para ello, nos desplazamos hasta /etc y allí ejecutamos:

  • sudo git status

etckeeper Git Status

También podemos ver el historial de commits tecleando:

  • sudo git log

En nuestro caso solo nos sale el nuestro, pero si la herramienta hubiera ejecutado su tarea diaria de auto-registro y auto-commit, nos saldrían todos los cambios realizados.

Para ver cómo funciona la aplicación cuando hay cambios, vamos a actualizar el sistema. Para ello ejecutamos:

  • sudo apt update && sudo apt -y upgrade

Una vez finaliza la actualización, se ejecuta automáticamente esta herramienta con el fin de registrar todos los cambios (que no son pocos) que han ocurrido durante el proceso de actualización.

etckeeper tras apt

En caso de que esta tarea no se haya ejecutado automáticamente, siempre podemos crear un nuevo commit con el comando «sudo etckeeper commit «descripción»»

Una vez finalice y volvamos a tener el control sobre nuestro terminal, nos desplazamos de nuevo a /etc y volvemos a ejecutar un «git status» y «git log» para comprobar, que efectivamente, no hay cambios pendientes de registrar y nos encontramos en la nueva rama, cuyo nombre ha sido asignado automáticamente por la herramienta tras la actualización.

Cambios registrados con Git Status

En caso de que haya ocurrido algún cambio que no haya quedado registrado, el «git status» nos informará de ello de la siguiente manera.

Nuevos cambios en etckeeper

Gracias a esta herramienta, vamos a poder llevar siempre un control sobre los cambios que se realizan en el directorio /etc de Linux y, en caso de que algo salga mal, revertir los cambios gracias al controlador de versiones de Git.

¿Qué te parece esta herramienta? ¿Conoces otras herramientas para versionar los cambios del sistema automáticamente?

¡Sé el primero en comentar!