Gestión de configuración: dependencias entre máquinas

8

He utilizado herramientas como la marioneta para administrar sistemas individuales, en general con un alto nivel de éxito. Donde Puppet se cae es que no es bueno para administrar dependencias fuera de un servidor individual.

Por ejemplo, en un servidor MySQL configuro puppet para hacer lo siguiente:

  • Configurar la autenticación en la máquina para que llegue a mi servidor LDAP
  • Configurar apt para usar mi espejo de repositorio local
  • Instalar paquetes MySQL
  • Escribe my.cnf
  • Inicie MySQL
  • Crear usuarios en la base de datos

En este conjunto de pasos hay una serie de dependencias resueltas; por ejemplo, no puedo iniciar el servicio de base de datos a menos que haya instalado los paquetes, lo que no puedo hacer a menos que el repositorio de apt esté configurado correctamente.

Este servidor MySQL es un cuadro en una configuración de replicación master-> master. En un mundo ideal, Puppet (u otra herramienta similar) me permitiría representar el hecho de que el servidor B necesita esperar hasta que el servidor A esté disponible y luego intentar establecer una relación de replicación con él.

Aquí hay mucho texto, básicamente, lo que pregunto es: ¿hay alguna herramienta como la marioneta que pueda administrar dependencias entre máquinas como esta?

Jon Topper
fuente

Respuestas:

4

Si está utilizando Puppet, los recursos exportados (y, por lo tanto, las configuraciones almacenadas ) son la herramienta para el trabajo. Esto le permite compartir información entre nodos. Incluyendo la configuración de replicación real, si es necesario.

Alternativamente, y aunque no soy suscriptor, algunas personas tratan sus manifiestos / ejecuciones como no deterministas. Lo que significa que una sola ejecución no necesariamente declara el resultado completo de un nodo. Puede tomar dos o más ejecuciones antes de que el nodo alcance el estado deseado.

Dado que configurar el esclavo MySQL antes de que el maestro esté disponible no sería del todo fatal, es posible que desee seguir este camino. Sin embargo, no es tan "inteligente" en mi opinión.

Dan Carley
fuente
0

Al no ser un usuario títere, estoy seguro de que otros intervendrán con respuestas más apropiadas, pero parece que un script de contenedor podría implementarse con relativa facilidad que se verifica antes de comenzar el servicio.

Matt Simmons
fuente
0

Puppet puede hacer esto bien. Haga que cada servidor exporte un recurso para configurar los otros servidores apropiados para hacer lo que debe hacerse una vez que estén en funcionamiento. No tengo un ejemplo para MySQL, pero configuramos muchos recursos DRBD (como unos 80, en el recuento actual) de esta manera, así como todas nuestras configuraciones de Nagios.

womble
fuente
0

El nivel de control puede ser lo que buscas. Puede usarlo junto con la marioneta para que la curva de aprendizaje no sea demasiado empinada.

cosa muy pegajosa
fuente