La respuesta corta a su pregunta es sí .
No dudaría en recomendar Git (o cualquier otro software de control de versiones) para realizar un seguimiento de los archivos de configuración. Desde entonces, he sido más productivo (particularmente para configurar nuevas instalaciones) y tengo mayor confianza en mis archivos de configuración. Con el control de versiones, tengo un registro de lo que se hicieron cambios y el mensaje de confirmación proporciona la razón por qué se hizo el cambio. Si un cambio tiene efectos secundarios no deseados, puedo revisar fácilmente el registro / historial para ver qué cambio causó los efectos.
Personalmente, desconfiaría de rastrear todos los archivos en el /
directorio raíz. La lista de caminos a ignorar podría volverse grande y difícil de manejar. Prefiero mantener cada conjunto lógico de archivos en su propio repositorio.
Yo uso manual Git para realizar un seguimiento de mis personales de configuración / archivos de arranque, por ejemplo, la configuración de Vim, funciones Bash, alias, etc. - similar al enfoque que figuran en Cómo realizar el seguimiento $ HOME con git . Mantengo cada conjunto de archivos en su propio repositorio y uso enlaces simbólicos al directorio de inicio.
Para los archivos de configuración del sistema , uso Git con Etckeeper para realizar un seguimiento de los archivos en mi /etc
directorio.
Inconvenientes
Una cuestión a tener en cuenta es si los archivos que se rastrean incluyen enlaces duros . Cuando Git se usa para extraer archivos o modificar el árbol de trabajo, desvincula los archivos y luego los recrea . Ver Git, Dotfiles y Hardlinks para una explicación más completa.
Etckeeper
Etckeeper se puede usar para mantener un historial completo de los cambios realizados en / etc. Realiza un seguimiento de los metadatos de los archivos que los sistemas de control de revisiones normalmente no son compatibles, pero para eso es importante /etc
, como los permisos de /etc/shadow
.
Se conecta a los administradores de paquetes como apt y yum y (en su configuración predeterminada), se ejecuta antes y después de la instalación para que /etc
se rastreen todos los cambios .
Si se instala o elimina un paquete, todos los cambios no confirmados en / etc se confirmarán antes de la operación del paquete para que haya dos confirmaciones:
- "Guardar cambios no confirmados en / etc antes de ejecutar yum"
- "Confirmar cambios en / etc después de ejecutar yum"
Lo he usado con distribuciones basadas en Debian y Red Hat y sé que es compatible con la gestión de paquetes Arch. No puedo decir cuánta automatización agregaría a un sistema Gentoo, pero hay un paquete disponible para ello .
También admite la inserción de los archivos de configuración en un repositorio remoto
(que, por supuesto, debería ser privado).
Configuración
Después de instalar el paquete, es posible que deba configurarlo ( /etc/etckeeper/etckeeper.conf
), por ejemplo, en los sistemas Ubuntu, el sistema de control de versiones predeterminado cambia de Git a Bazaar. También puede deshabilitar las confirmaciones automáticas diarias .
Autocompromisos diarios
Los cambios pueden ser confirmados automáticamente por un trabajo cron diario . Esto puede ser molesto ya que el repositorio puede estar lleno de múltiples mensajes de confirmación automatizados.
Descomento la línea apropiada en /etc/etckeeper/etckeeper.conf
:
sed -i '/AVOID_DAILY_AUTOCOMMITS/s|^#* *||' /etc/etckeeper/etckeeper.conf
Ignorar ciertos archivos
Edite /etc/.gitignore
para especificar cualquier archivo que no deba rastrearse.
Primer intento
Después de configurar, ejecute los siguientes comandos:
sudo etckeeper init
sudo etckeeper commit "Initial commit"
Si su directorio actual es etc
, puede ejecutar git
comandos regulares , por ejemplo,
sudo git status
sudo git log