etckeeper (Español)

Esta traducción de
Etckeeper
fue revisada el
2020-02-19
. Si existen
cambios
puede
actualizarla
o avisar al
equipo de traducción
.
Artículos relacionados
Git
Cron
Etckeeper
es una colección de herramientas para realizar un seguimiento de
/etc/
en un repositorio (
Git
,
Mercurial
,
Bazaar
o
Darcs
son ​​compatibles). Un
hook de pacman
confirma automáticamente los cambios antes de realizar un seguimiento de la actualización del sistema y de los permisos de los archivos, cuyo control de versión normalmente no admite, pero es importante para archivos como
/etc/shadow
.
Instalación
Instale
el paquete
etckeeper
.
Configuración
El sistema de control de versiones preferido (el predeterminado es
git
) y otras opciones se configura en
/etc/etckeeper/etckeeper.conf
.
Etckeeper admite el uso de
pacman
como
LOWLEVEL_PACKAGE_MANAGER
y
HIGHLEVEL_PACKAGE_MANAGER
en
etckeeper.conf
.
Utilización
Después de la configuración, el repositorio de la ruta
/etc
debe inicializarse:
# etckeeper init
Y realice una primera confirmación para realizar un seguimiento de los cambios, este es un paso necesario para que etckeeper pueda trabajar automáticamente:
# etckeeper commit "first commit"
A partir de la versión 1.18.3-1 de
etckeeper
, los
hooks de pacman
de antes y después de la instalación se ejecutan automáticamente en la instalación, actualización y eliminación de paquetes. Ya no es necesario un
#Script contenedor
manual.
Para rastrear otros cambios en la ruta
/etc
, debe confirmar los cambios manualmente (véase la página de manual
etckeeper(8)
para las órdenes) o utilice una de las soluciones de interrupción siguientes.
systemd
Las unidades de servicio y temporizador están incluidas en el paquete. Simplemente
habilite
etckeeper.timer
.
Véase
Systemd/Timers
para obtener más información y
Modificar los archivos de unidad suministrados
si desea editar las unidades proporcionadas.
Cron
Hay un
script de cron
en la distribución de origen.
Puede utilizar este script para confirmar automáticamente los cambios en una programación.
Por ejemplo, para hacerlo funcionar diariamente:
Tenga
cron
instalado y habilitado.
Coloque el script como
/etc/cron.daily/
nombre_del_script
Permita la ejecución del archivo para el superusuario
root
(
# chmod u+x /etc/cron.daily/'nombre_del_script
).
Véase
cron#Cronie
,
cron
para más información.
Incron
Nota
Esta sección se aplica solo a la versión 5.10 de incron.
Para crear confirmaciones automáticamente en
cada
modificación de los archivos dentro de
/etc/
, utilice
incron
. Este utiliza la señalización nativa del sistema de archivos a través de
inotify(7)
.
Después de instalar incron e inicializar etckeeper, añada root a los usuarios autorizados para ejecutar los scripts de incron:
# echo root | sudo tee -a /etc/incron.allow
Luego edite incrontab con:
# sudo incrontab -e
Añada en el texto:
# /etc IN_MODIFY,IN_NO_LOOP /bin/etckeeper commit "[mensaje]"
IN_NO_LOOP
es un indicador que espera a que finalice la confirmación antes de ejecutar la siguiente orden, y evita un bucle infinito.
Donde
[mensaje]
podría ser algo así como
"modificado $#"
donde $# es un comodín incrontab especial expandido al nombre del archivo modificado.
Tenga en cuenta que Incron no es capaz de ver subdirectorios. Solo los archivos dentro de la ruta serán monitorizados. Si necesita que se supervisen los subdirectorios, debe darles su propia entrada. Sin embargo, los
commits
cuando se modifican los archivos de nivel superior seguirán confirmando todos los cambios.
Véase:
[1]
,
incrond(8)
Escritura automática en un repositorio remoto
Si bien tener una copia de seguridad local en
/etc/.git
es un buen primer paso, etckeeper puede enviar automáticamente los cambios en cada confirmación a un repositorio remoto como Github.
Primero, edite
etc/.git
y añada su repositorio remoto de Github:
# git remote add origin
https://github.com/user/repo.git
A continuación, se debe usar o configurar un
hook
para escribir.
Utilizando el hook proporcionado por etckeeper
Edite la opción
PUSH_REMOTE
en
/etc/etckeeper/etckeeper.conf
, con el nombre del repositorio remoto en el que desea que etckeeper escriba. Por ejemplo:
PUSH_REMOTE="
origin
"
Se pueden añadir múltiples repositorios remotos separados con espacios.
A través de un hook personalizado
Cree un archivo ejecutable
/etc/etckeeper/commit.d/40github-push
:
#!/bin/sh
set -e

if [ "$VCS" = git ] && [ -d .git ]; then
  cd /etc/
  git push origin master
fi
Ahora, cada vez que ejecute su script contenedor o el alias de antes, los cambios se asignarán automáticamente a su repositorio de Github.
Script contenedor
Si desea realizar el seguimiento de los cambios de una orden ejecutada frecuentemente (por ejemplo,
orden
), un simple script contenedor puede ayudar a automatizarlo. Por ejemplo, cree:
/usr/local/bin/checketc.sh
#!/bin/bash

etckeeper pre-install
orden
etckeeper post-install
y hágalo ejecutable. Alternativamente, puede llamar las órdenes de Etckeeper a través de un alias o función bash, véase
Alias en Bash
para obtener más información.
Nota
Antes de la versión 1.18.3-1 de Etckeeper, dicho script contenedor manual era necesario para la integración con Pacman. Ahora los hooks de Pacman ejecutan las órdenes automáticamente.