Estoy pensando en un sistema, donde /etc
fueron 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 /etc
modificación tuviera que confirmarse en muchas máquinas, podría hacerse fácilmente mediante un script de fusión.
En caso de un /etc
cambio "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?
configuration
git
peterh - Restablece a Monica
fuente
fuente
etckeeper
que ya se usa en muchos sistemas. No ofrece todas las funciones que solicitó. Por ejemplo, tiene un repositorio por host, no uno central.Respuestas:
El programa
etckeeper
se administra/etc
engit
, solo necesita cambiar el backend vcs predeterminado de adentrobzr
agit
adentro/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.
fuente
El problema con la configuración de seguimiento para
/etc
ingit
es que todo lo que realmente gana al hacerlo es el control de versiones (la mayoría de losgit
principiantes ni siquiera saben cómo hacerlotag
y de manerabranch
adecuada, por lo que es poco probable en ese momento) y la capacidad de retroceder (de nuevo, si no está ttagging
correctamente, 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 ,
git
y 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-pull
que puede extraer el último repositorio de sus libros de jugadasgit
; lo mismo también es cierto para el chef. Básicamente, los administradores modernos de Linux no deberían usar algo como estoetckeeper
. Chef también tiene el modo cliente-servidor donde se pueden gestionar todos los sistemas con loschef-client
basados enenvironment
,roles
y de libros de cocina versiones; cosas que no puedes hacergit
solo y a escala.fuente