Soy nuevo en Puppet y aunque he estado usando sistemas * nix durante muchos años, nunca he trabajado como administrador de sistemas o en operaciones.
Actualmente estoy escribiendo manifiestos de Puppet para alojar un conjunto de aplicaciones web (PHP / MySQL / MongoDB, código en git). Claramente, Puppet necesita tener algún conocimiento de las aplicaciones reales porque configuraré un host virtual para cada una, pero no estoy seguro de si Puppet debería administrar cosas como la implementación del código y la creación de la base de datos.
¿Es Puppet una herramienta adecuada para la implementación de aplicaciones? Si no, ¿me puede recomendar una herramienta más apropiada?
deployment
puppet
michaeltwofish
fuente
fuente
Respuestas:
Buscaría implementaciones en Capistrano o Fabric .
Tendrá un mejor control sobre cómo se realiza la implementación con estas dos herramientas.
fuente
Puppet se usa para implementaciones en muchas organizaciones grandes, pero no siempre es perfecto. Gran parte depende de su metodología de implementación. ¿Está implementando en muchas máquinas a la vez? ¿Haces implementaciones continuas?
Algunas organizaciones usan Puppet creando paquetes de sus implementaciones y luego haciendo que Puppet haga cumplir la política para estar en la versión correcta de ese paquete. Debido a que Puppet incluye el concepto de entornos, puede utilizar entornos para realizar implementaciones en etapas (por ejemplo, desarrollo, prueba, producción).
Otras organizaciones usan Puppet para organizar la implementación ya sea disparando un rsync, git checkout o algunas copias recursivas de archivos usando Puppet (aunque eso es bastante lento).
También hay otras herramientas bastante buenas disponibles para la implementación. He usado Whiskey Disk en el pasado (una simple herramienta de rubí) y me gustó mucho.
(Descargo de responsabilidad, trabajo en Puppet Labs)
fuente
Si desea crear un paquete a partir de su aplicación, puede buscar en FPM . El código está en GitHub .
fuente
Puppet no es la herramienta adecuada para implementar aplicaciones en mi opinión.
Yo uso Jenkins para construir e implementar nuestro código para probar y organizar.
Jenkins es originalmente un servidor de integración continua, pero es realmente flexible y modular. Existen muchos complementos para Jenkins que pueden ayudarlo a implementar sus aplicaciones:
Para nuestra aplicación, configuré Jenkins con Publish over SSH que copia un archivo WAR creado con éxito en el servidor de destino y luego ejecuto un script que hace la copia de seguridad y la implementación. ¡Espero que esto ayude!
fuente
Una herramienta de administración de configuración y ejecución remota sería buena para la implementación de la aplicación. La sal es un buen ejemplo de esto .
fuente
Puppet no está realmente diseñado para la implementación, porque cuando hay una gran cantidad de archivos involucrados, podría tener problemas. Puede buscar en capistrano para la implementación de la aplicación.
http://rubyforge.org/projects/capistrano/
fuente