Noté que varias personas me han recomendado usar etckeeper para aplicar el control de versiones a mi directorio / etc.
Me parece que la instalación predeterminada coloca un repositorio en la misma máquina que el / etc que está tratando de administrar. Esto funciona bien para el control de versiones, pero no brinda el beneficio adicional de hacer una copia de seguridad de los archivos fuera del servidor, ni me permite duplicar partes de / etc de una máquina fuente a otra.
¿Es posible compartir un único repositorio git en una máquina de administración central, de modo que etckeeper en cada servidor almacene sus datos en el mismo lugar?
(Estoy haciendo algo similar ahora con svn y algunos scripts personalizados para confirmar y revertir archivos, pero tengo que acordarme de confirmarlos cuando realice cambios).
fuente
git push
funcionar para tu repositorio de git creado? probablemente necesites crear un repositorio desnudo en somedir, el gancho debajo de commit.d es una muy buena idea, me gustaEs posible agregar una configuración de bifurcación remota para asignar la bifurcación maestra del repositorio etckeeper de cada servidor a una bifurcación en el repositorio remoto. Para hacerlo, puede ejecutar los siguientes comandos en cada servidor:
Después de esta configuración, los siguientes
git push
enviarán cambios desde cada rama maestra del servidor a la rama del servidor dedicado en el repositorio central.Aunque las ramas no tendrán un punto de partida común, esto permite comparar fácilmente el mismo archivo de dos ramas diferentes, que representan dos servidores diferentes, ejecutando:
Esto se puede combinar con la configuración automática sugerida por jojoo .
fuente
Cómo hacerlo automáticamente, la historia completa:
Cree el archivo /etc/etckeeper/commit.d/60-push (no olvide chmod + x) en los clientes.
central_server se define en la configuración ssh, ver más abajo. /var/git/client_name.git es el directorio en el servidor central, que contiene el repositorio git.
El ~ / .ssh / config de root (!) Debería contener algo como esto:
Luego debe iniciar el repositorio git en el servidor central
Pruébelo con una edición menor en / etc y luego un etckeeper comete "test push'ing".
fuente
Ese no es el punto. Si desea distribuir ampliamente la configuración, configure otro repositorio además del repositorio local de cada máquina, y haga que cada máquina elija según sea necesario. Lo que esto hace es permitir que cada máquina se desvíe (se ramifique, realmente) y retenga el control de revisión.
fuente
Realmente no desea que etckeeper sea su política de respaldo. Si bien tener una copia de sus archivos de configuración sería bueno, no es suficiente para calificar como un plan de recuperación ante desastres.
Concéntrese en tener copias de seguridad reales de su sistema. El simplista podría ser un cronjob para alimentar un tarball a la cinta ... oh, cierto. Ya nadie usa cintas. Bien, un trabajo temporal para sincronizar todos sus archivos a un NAS dedicado . Para obtener soluciones de respaldo más sólidas, eche un vistazo a Amanda y Bacula .
Y para el caso de los académicos, pude llevar mi repositorio etckeeper a github como cualquier otro repositorio git.
fuente