¿Existe una forma estándar de mantener los archivos de configuración de Linux modificados separados e identificables?

¿Existe una forma estándar de mantener los archivos de configuración de Linux modificados separados e identificables?

NOTAEsta es una copia de unpregunta cerrada de Stack Overflow, y una versión constructiva, creo, de unpregunta similar en Server Fault.

A menudo necesito editar muchos archivos de configuración en /etc; sin embargo, no quiero que estos cambios se pierdan cuando realice mi próxima actualización del sistema.

En este momento, he alojado todos los archivos de configuración, así como algunos de mis scripts de mantenimiento /opt/admin, y he vinculado /etcobjetivos allí, pero eso no parece correcto.según los estándares que he visto. Otra opción que se me ocurrió es alojarlos en /usr/local. El documento antes mencionado dice que es para uso del administrador del sistema al instalar software localmente. Eso es lo más cerca que tengo. Sin embargo, también /usr/localse ve afectado cuando instala nuevo software no empaquetado.

¿Existe un estándar o una práctica recomendada ampliamente seguida sobre cómo mantenerlos? Dado que esta no es una página de discusión, las respuestas deben ser definitivas y con uno o dos artículos que las respalden.

NOTAHe incluido mi propia respuesta que he encontrado más útil hasta ahora. Reabrí esto aquí para que pueda discutirse y recibir más respuestas.

Respuesta1

Si bien no los mantiene separados,etc guardiánhace un muy buen trabajo al rastrear cambios en los archivos de configuración. Mantener el repositorio fuera de la caja en algún lugar facilitaría la restauración de esos cambios en una nueva máquina.

Respuesta2

Podría utilizar una herramienta de gestión de configuración para hacer esto. Esto escala bien cuando agrega servidores con la misma función.

Parece que ha creado uno que se adapta a sus necesidades, pero es posible que desee buscar Chef, Puppet, Ansible, Opsware u otras herramientas de administración/automatización/orquestación de configuración, según sus necesidades y presupuesto.

Respuesta3

A partir de las respuestas a las preguntas que he mencionado, parece haber dos soluciones generales: usar enlaces simbólicos o mantener una lista de archivos (consulte las respuestas de ptman y Jim en preguntas vinculadas). No pude encontrar un artículo sobre mejores prácticas.

Sugiero una solución híbrida: mantienes sólo un archivo simple (yo lo llamo FILES) con una lista de archivos de configuración. Un script lee FILESy vincula simbólicamente archivos de configuración reales en una jerarquía de sistema de archivos duplicado en un directorio elegido (yo llamo al script link-config-files.shy al directorio system-config).

De esta manera, solo mantiene archivos en un archivo que es fácil de editar y no implica magia de shell. Se puede acceder a los archivos de configuración que le interesan system-configgracias al enlace simbólico. Se configuró una tarea cron para realizar una copia de seguridad system-config, por lo que se realiza una copia de seguridad de todos los archivos de configuración automáticamente. Y periódicamente se ejecuta otro trabajo cron, link-config-files.shpor lo que todo lo que queda para que un archivo aparezca (o desaparezca) system-configy se haga una copia de seguridad es editarlo FILES.

Creo que esta es la mejor solución hasta ahora. Por supuesto que soy parcial. En todo caso,aquí está mi guióny también vincula un script de respaldo.

información relacionada