¿Cuándo es apropiado usar un administrador de configuración (por ejemplo, Puppet / Chef / Ansible)?

17

En mi lugar de trabajo actual, cuido dos máquinas host VMware, una máquina física OpenBSD, tres máquinas virtuales Debian y seis máquinas virtuales Windows Server (2008/2012).

Estoy considerando implementar una herramienta de administración de configuración como Puppet o Chef. ¿Es esto razonable, o la sobrecarga de aprender la herramienta superará los beneficios? ¿Dónde está el punto de inflexión entre la capacidad de administración y el costo de implementación?

Rhyven
fuente
1
Es "apropiado" tan pronto como necesite administrar una configuración. ¿Necesita recuperarse de un desastre? ¿Necesita mudarse a un nuevo centro de datos? ¿Necesita expandirse horizontalmente? Si lo haces a mano, lo estás haciendo mal . "¿ Haciéndolo dos veces? Escríbelo "
Warren
1
Depende de lo que necesite hacer con / con estos sistemas.
ewwhite

Respuestas:

25

En mi humilde opinión, vale la pena aprender incluso si solo administra un solo servidor,

Sí, habrá una curva de aprendizaje. Sí, te sentirás frustrado. Sin embargo, por esos costos, se le reembolsará en múltiplos a través de implementaciones confiables, consistentes, con un solo clic, configuración de servidor controlada por versión, facilidad para configurar entornos de prueba / desarrollo, etc.

Además de los beneficios de su trabajo actual, poder agregar un sistema CM a su currículum es una gran victoria. Ahora se espera que los administradores de sistemas modernos tengan al menos exposición a un sistema de administración de configuración, si no competencia.

(Nota al margen: considere Ansible también. Es mi CM preferido, y es muy fácil de poner en marcha, mucho más fácil que Puppet o Chef. Además, el soporte de Windows en Ansible está funcionando muy bien).

EEAA
fuente
55
Bien dicho. Termino usando Ansible en cosas triviales como configurar una pi frambuesa en casa porque es una forma conveniente de documentar el proceso.
tedder42
2
¡Absolutamente! Entrar en Chef ha sido una gran victoria profesional para mí. Esto es lo real: en un par de años, CM será casi obligatorio / esperado para todos los trabajos, excepto para los junior SysAd.
gWaldo
2
Totalmente de acuerdo. Se centra demasiado en la automatización de la instalación, que es solo una parte de los sistemas CM. La gente olvida lo que M significa: gestión. ¿Cómo realiza un seguimiento de los diversos cambios de configuración que realiza en 1 servidor? El número de servidores no importa. Cuando ese 1 servidor muere, está feliz de poder reconstruirlo exactamente sin ninguna duda.
ETL
5

Estoy considerando implementar una herramienta de administración de configuración como Puppet o Chef. ¿Es esto razonable, o la sobrecarga de aprender la herramienta superará los beneficios?

Es razonable dependiendo de cuánto tiempo y dinero tiene que gastar, y si es o no su dinero lo que está quemando.

Una herramienta de administración de configuración (cualquiera de ellas) se está convirtiendo en una habilidad valiosa en el mercado actual.

Pasar el tiempo para aprender e implementar una herramienta CM puede no ser lo más eficiente desde la perspectiva de su negocio o entorno, pero de su conjunto de habilidades puede valer la pena.

¿Dónde está el punto de inflexión entre la capacidad de administración y el costo de implementación?

La mayoría de las herramientas de administración de configuración están disponibles de forma gratuita con la advertencia de que son más difíciles de instalar y poner en marcha.

Esta pregunta es un poco difícil de responder, ya que realmente depende de lo que esté haciendo día a día para administrar estos servidores. Si no se requiere que haga mucho, entonces una herramienta de administración de configuración puede ser una exageración total.

Si realmente necesita forzar su infraestructura a un estado predecible y básico, entonces no le hará mucho daño aprender los conceptos básicos de algo como SaltStack o Ansible.

En mi experiencia personal, Salt es muy fácil de poner en marcha y arrancar en los servidores, y puede usarse para la ejecución remota e informes muy básicos, lo que puede ser útil si aún no lo tiene implementado en su entorno.

Tenga en cuenta que soy parcial. Debe evaluar cada herramienta de CM usted mismo.

Vasili Syrakis
fuente
4

Tal como dijo @EEAA, la cantidad de servidores es irrelevante. Puede obtener beneficios de usar la administración de configuración con una sola máquina:

  • configuración documentada (documentada mediante scripts CM)
  • implementación confiable (puede [re] implementar su configuración una y otra vez
  • Resistencia de la configuración (problemas actuales del servidor: activar uno nuevo)
  • reutilizar (cuando llegue al punto de tener un segundo servidor, ya tiene scripts CM que puede reciclar desde el primero)
  • actualizaciones (es como una nueva configuración, solo encima de una plataforma diferente)

Puedo decir que tuve que implementar CM para todos mis servidores personales, ya que trabajo allí con poca frecuencia y olvido todos los pequeños detalles. Tener scripts CM mientras que puede parecer que consume mucho tiempo (lo es) la recompensa bien vale la pena. A largo plazo, ahorrará mucho más tiempo que dedicará a configurar las cosas.

Droopy4096
fuente
3

Tengo experiencia con Puppet y Ansible. Ansible es IMO más simple, ya que es de procedimiento, mientras que Puppet es declarativo. Hay ventajas y desventajas para ambos, pero he arrancado suficiente cabello debido a los crípticos errores de Puppet.

Ambos requieren mucho trabajo si desea crear una configuración limpia y reutilizable. Los costos comienzan a pagar realmente si tiene al menos dos servidores muy similares, por ejemplo, nubes o clústeres.

Sin embargo, tiene algún uso incluso para servidores independientes: puede configurar usuarios administradores, configuraciones estándar (con variaciones locales) sshd, postfix o snmpd y también usarlos para una recopilación de información simple, como el cumplimiento de la política o la prueba de vulnerabilidad shellshock.

Además, como lo menciona EEAA, tiene un valor para documentar la configuración si verifica que realmente lleva un servidor del estado base al estado de ejecución. Es bueno combinarlo con el sistema de control de versiones (git), para que los cambios que realice estén versionados y documentados. Eso es muy valioso si tienes un equipo de administradores.

Edheldil
fuente
1

Puppet o cualquier otro sistema de administración brindan grandes beneficios que han sido destacados por otras respuestas aquí, pero no hay una bala de plata cuando se trata de administración.

Por ejemplo, la creación de clases de títeres para sistemas complejos cuesta mucho tiempo y esfuerzo y, a veces, desgarra, ya que hay muchas dificultades, y los mensajes de error no siempre son 100% claros, y cuando el software se actualiza, debe invertir tiempo para adaptar sus clases de títeres para que coincidan con cualquier especificación nueva. o procedimiento y averiguar qué enfoque es el más adecuado para esto (títere, por ejemplo, declarativo y una actualización suele ser de procedimiento)

También debe averiguar cómo planea implementar los cambios realizados en sus clases de manera controlada y cómo mantener las diferentes versiones de sus manifiestos.

También debe considerar cómo actualizar su solución de administración cuando llegue el momento.

Si pasa una cantidad significativa de tiempo escribiendo, por ejemplo, clases de títeres, entonces tendría que realizar muchas instalaciones con un solo clic para obtener beneficios reales.

Recomiendo explorar aún y cuando sea apropiado, es decir, la distribución de archivos de configuración puede ser un buen lugar para comenzar, y comenzar desde allí.

Petter H
fuente