¿Usando git para administrar / etc?

14

Estoy pensando en un sistema, donde /etcfueron rastreados en un repositorio remoto de git. Estoy pensando en un flujo de trabajo git, donde cada máquina host tiene una rama diferente.

Todas las versiones anteriores en cada máquina podrían rastrearse, compararse y fusionarse fácilmente.

Si una /etcmodificación tuviera que confirmarse en muchas máquinas, podría hacerse fácilmente mediante un script de fusión.

En caso de un /etccambio "no deseado" , esto podría ser bien visible (incluso los scripts de alarma podrían ajustarse para ver eso).

¿Alguien ya usó una configuración así? ¿Hay algún problema de seguridad con él?

peterh - Restablece a Monica
fuente
66
Existe el etckeeperque ya se usa en muchos sistemas. No ofrece todas las funciones que solicitó. Por ejemplo, tiene un repositorio por host, no uno central.
jofel
¿Qué archivos le interesan o qué archivos se han cambiado no deseados en el pasado? Pregunto porque creo que Git no es la forma correcta de resolver los problemas causados ​​en otro punto de su flujo de trabajo. Además: si alguien olvida cometer múltiples cambios, Git no tiene valor. ¿Podría por favor explicar su entorno? ¿Tiene pruebas y entornos de control de calidad idénticos a la producción? ¿Tiene mucho más de dos o tres hosts del mismo tipo / propósito o es heterogéneo? ¿Qué es más importante: comparar configuraciones de hosts o rastrear una configuración de hosts a lo largo del tiempo?
try-catch-finally

Respuestas:

7

El programa etckeeperse administra /etcen git, solo necesita cambiar el backend vcs predeterminado de adentro bzra gitadentro /etc/etckeeper/etckeeper.conf.

Se instala por defecto en Ubuntu Linux, y maneja los casos comunes de cuándo confirmar automáticamente.
Se confirma antes de instalar paquetes en caso de que haya cambios manuales no comprometidos, y después de la instalación.

Volker Siegel
fuente
5

El problema con la configuración de seguimiento para /etcin gites que todo lo que realmente gana al hacerlo es el control de versiones (la mayoría de los gitprincipiantes ni siquiera saben cómo hacerlo tagy de manera branchadecuada, por lo que es poco probable en ese momento) y la capacidad de retroceder (de nuevo, si no está t taggingcorrectamente, no obtienes nada más que un registro para culpar a las personas); pero pierde la plantilla (no puede la plantilla porque git no proporciona eso) y el escalado horizontal (no puede aplicar la configuración en ningún otro lugar; especialmente si está utilizando bases de datos distribuidas como Elasticsearch) y la administración de sistemas automatizada (nuevamente, git no proporciona esto )

Dicho esto, lo que probablemente esté buscando es la administración de la configuración ; que los lazos en plantillas , gity secuencias de comandos básicos para la gestión de la configuración. Esto, por supuesto, va por la dirección de DevOps e Infraestructura como Código .

Para agregar a esto; Ansible tiene el ansible-pullque puede extraer el último repositorio de sus libros de jugadas git; lo mismo también es cierto para el chef. Básicamente, los administradores modernos de Linux no deberían usar algo como esto etckeeper. Chef también tiene el modo cliente-servidor donde se pueden gestionar todos los sistemas con los chef-clientbasados en environment, rolesy de libros de cocina versiones; cosas que no puedes hacer gitsolo y a escala.


fuente
No solo la reversión me atrapa con git. También obtengo comparabilidad (tanto entre máquinas como entre tiempo), y también sincronización. Pero creo que la idea sobre algunas herramientas más específicas es útil.
peterh - Restablece a Mónica el