(Disculpas de antemano por la estupidez en esta pregunta. Normalmente soy un programador, no un administrador de sistemas, pero me he encargado de automatizar algunas cosas y limpiar otras cosas que están automatizadas pero no de la manera más bonita . :-)
He estado buscando varias herramientas para la automatización de la implementación de software en un montón de servidores, como cfengine, Puppet y Chef. Hasta ahora, Puppet se ve más atractivo, pero ciertamente aún no me he comprometido con nada.
Parece que todas estas herramientas pueden hacer un gran trabajo al mantener un montón de servidores actualizados con software preempaquetado .
Lo que no entiendo es: ¿cómo se usa una herramienta (como Puppet) para administrar las implementaciones de nuestro propio software interno? Creo que estoy perdido porque he visto miles de tutoriales que muestran cómo mantener Apache ensure => latest
(que es bastante bueno), pero nada que se corresponda con mi caso de uso hoy, que es algo más como:
- cuando un ser humano presiona el botón,
- extraiga la rama A del repositorio de control de versiones B
- ejecuta el comando C para compilarlo
- copie los binarios D a los servidores E1 a E10
- en cada servidor, ejecute el comando F para que todos los cambios surtan efecto
Puppet suena muy bien, y veo totalmente la ventaja de la configuración declarativa e idempotente sobre algunos scripts de shell, pero no he visto ningún tutorial para "desea actualizar sus scripts de shell a Puppet (o Chef, o cfengine) así que esto es lo que usted debería hacer". ¿Hay tal cosa? ¿Es obvio para otras personas cómo tomar las cosas provistas en los documentos de Puppet y replicar el comportamiento que quiero? ¿No lo estoy entendiendo?
Lo que me parece, hasta ahora, es que el ser humano (n. ° 1) empaquetaría manualmente el software (n. ° 2 y n. ° 3) externo a Puppet, actualizaría manualmente la configuración de Puppet, lo que provocaría que Puppet actualizara los servidores. .. ¿tal vez? (Estoy un poco confundido aquí, como estoy seguro de que puedes decir).
¡Gracias!