Recomendaría usar una mezcla de pre-siembra de Debian, donde le das al instalador un archivo de texto que responde a todas las preguntas que haría, y Puppet.
La razón para usar la configuración previa, en lugar de FAI, es que no tiene que configurar una imagen primero y tratar de mantenerla actualizada. Terminarás con una instalación muy similar a la que tendrías si las hicieras todas a mano. Cuando venga a instalar una nueva versión, tendrá que actualizar un archivo de configuración con los cambios, en lugar de tener que reconstruir una nueva imagen.
Una herramienta de administración de configuración es particularmente útil cuando tiene varios servidores que desempeñan el mismo rol y desea que sean idénticos, por ejemplo, el clúster de servidores web. Sin embargo, también pueden ser útiles para configurar la instalación base de todos los servidores. Querrá instalar paquetes particulares en todos sus servidores, como ntpd y un MTA. Querrá cambiar un archivo de configuración en todos sus servidores. Un beneficio adicional es que puede mantener sus manifiestos en algo como subversión y mantener un registro de lo que cambió en un servidor y quién lo hizo y por qué. La administración de la configuración también puede ser un salvavidas en el caso de una falla del servidor y necesita reconstruirlo rápidamente. Instale el sistema operativo (usando FAI o preseeding), instale Puppet y listo, reconstruido exactamente como estaba antes. Obviamente, deberá mantener copias de seguridad de los datos.
La administración de la configuración requiere dedicación para asegurarse de que solo realice cambios al usarla y tendrá un costo inicial para configurar las cosas, pero una vez que tenga una configuración funcional, no se arrepentirá.
Puppet es la más moderna de las dos herramientas que has mencionado. Realmente lo recomiendo a cualquiera. La configuración es un lenguaje declarativo y es fácil de construir construcciones de nivel superior. También hay una comunidad muy grande a su alrededor y siempre hay personas bienvenidas para ayudar en la lista de correo o en el canal IRC.
Recomiendo CFengine para cualquier entorno que tenga más de 2-3 cuadros y en el que tenga algún concepto de 'plantillas' o servidores que desempeñen roles específicos.
¿Por qué? En pocas palabras, reduce los errores, tiene una herramienta que garantizará que los permisos de archivo / directorio sean correctos en todas partes del entorno y cuando venga a implementar más servidores, la herramienta maneja absolutamente todo y nunca comete errores.
Contraste incluso con un administrador del sistema experto que implementa un servidor web al final de un turno de doce horas cuando las cosas ya salieron mal ... ¿Es probable que recuerden ese pequeño y desagradable archivo de configuración que debe ir en / etc / random / location / foo / bar, de lo contrario, la aplicación no podrá hacer algo bastante importante, como facturar a los clientes. :)
Herramientas como CFengine también son una excelente manera de realizar actualizaciones de seguridad en todo el entorno. Dejar caer una configuración de Nagios (NRPE) en todos los cuadros también es un obstáculo. Ya sea que esté tratando con cinco cajas o quinientas cajas , ahorrará tiempo con CFengine.
Probablemente valga la pena señalar que mi entorno es un poco más grande, sin embargo, también he implementado CFengine para entornos más pequeños de lo que observa, ¡de ahí la recomendación!
¿Probablemente su próxima pregunta será CFengine vs Puppet? Esa es una decisión más difícil, y siempre he ido a CFengine debido a (en los primeros días) cierta inmadurez de Puppet, particularmente en lo que respecta al registro de errores ... en estos días realmente no estoy seguro: ¿tienen un play 'n see? Mirando hacia atrás a mis problemas específicos con Puppet, estaban relacionados con el certificado SSL, dolorosamente aún recuerdo el tiempo que pasé 3 horas diagnosticando problemas de conectividad del servidor <-> cliente en irc.freenode.net/#puppet con algunos RTFM y RTFS fuertes solo para encontrar un error, no se registra, y Luke dijo: "Ah, eso es realmente difícil de solucionar" y nunca lo hizo. :(
fuente
Además de cfengine y títeres, también hay chef . Sugeriría encarecidamente utilizar una de estas herramientas, ya que las cosas siempre crecerán en direcciones inesperadas. Esto ayuda a administrar las cosas en una ubicación centralizada.
Lo importante a reconocer es que es probable que no obtenga todo, pero si al menos puede obtener el 90% allí, es un comienzo. Además, es divertido y te hará la vida más fácil a largo plazo. Por último, es una buena habilidad seguir adelante.
fuente
Estoy usando cfengine desde hace 5 años para instalar Debian (desde Woody hasta Lenny hoy en día). Con etch construyo un instalador de Debian personalizado. Gracias a la preselección surge una sola pregunta: "cuál es el nombre de host". Después de esto, cfengine configura todo el servidor (dns + dhcp con dnssec, samba, ntpd, usuarios y contraseñas predeterminados (Samba), ssh, openvpn, apache vHosts, copia de seguridad con rsnapshot en LVM, webminmodules personalizados, etc.).
Incluso cuando instalo solo un servidor, uso cfengine-scripts de mi caja de herramientas de esta manera:
Me gusta cfengine, porque los scripts cf2 son algo legibles para los humanos.
así que definitivamente vale la pena trabajar con herramientas para la gestión automática de la configuración.
/ thorsten
fuente
Tiene que valer la pena incluso para un sitio pequeño. Se trata de consistencia a medida que crece. Y sabes que tu sitio va a crecer. Lo mejor es comenzar mientras aún eres pequeño. Cfengine es asombroso. Especialmente la versión 3, que puede manejar todos los gestores de paquetes en todo el campo, y es realmente ligera y segura y "simplemente funciona". Puppet simplemente no entregó lo que decía. No he probado chef.
La ventaja de cfengine sobre los demás es que es ultraligera, pero en realidad tiene más capacidades. Su seguridad es como ssh, en lugar de los certificados web utilizados por Puppet. Cuando le conté a mi jefe sobre cfengine, pensó que era ciencia ficción :) Si está buscando algo futurista, intente leer algunos de los trabajos de investigación de Marc Burgess. Cosas interesantes.
fuente
La herramienta número uno que desearía tener al ejecutar un sitio pequeño son las compilaciones de "botones". Facilita los parches, las actualizaciones y las reconstrucciones, lo que puede abordar una miríada de otros problemas en el futuro.
¿No hay ssh instalado correctamente en todas las cajas? sin curl / wget / vim tampoco? ¿Qué pasa con otras herramientas internas que le gustaría tener en cada caja?
Tener una administración central de sus servidores es una de las primeras herramientas que debe tener para trabajar para facilitar los esfuerzos futuros.
fuente
Estoy de acuerdo con todos aquí. Debe comenzar a aprender y configurar una infraestructura de trabajo cuando no sea demasiado grande. Porque entonces estás preparado cuando crezcas.
Dependiendo de lo que quieras ejecutar, elegiría FAI, cfengine y pre-siembra para Debian / Ubuntu. FAI puede funcionar con muchas herramientas diferentes, por lo que es un buen comienzo para cualquier distribución similar a Debian. Con la configuración controlada por clase FAI (y cfengine), puede dividir fácilmente sus instalaciones en pequeños módulos, que luego puede seleccionar cuál usar para cada una de sus máquinas. De esta manera, será útil incluso si tiene muchas máquinas diferentes. En realidad, es más útil, ya que documentará su instalación con estos scripts. Y cuando instale en una nueva máquina, no olvidará nada.
Sí, DEBE tener algunas máquinas para probar antes de implementar sus cambios en una instalación en vivo. Pero con un script de configuración como este, no olvidará realizar ningún paso en la instalación en vivo.
fuente