Pregunta

Estoy usando phpUnderControl que se ejecuta en la parte superior de control de crucero para mi continua integración y examen de la unidad. También lo tengo configurado para ejecutarse PHPDocumentor para generar phpdoc de para mí y ejecuta el código PHP Sniffer para hacer cumplir las normas de codificación para mí. Pero ahora quiero montar algo en ese mismo servidor (Ubuntu) para realizar la implementación en un servidor remoto más fácil. Ya lo tengo configuración así que después de cada generación con éxito una exportación de SVN se realiza desde el tronco en un directorio dentro de la carpeta de proyectos en el servidor.

He estado pensando en escribir un pequeño script PHP personalizado que SSH a un servidor remoto configurado, hasta el último tarball de exportación, copiarlo, descomprimir y ejecutar cualquier migraciones. Un script PHP como este no debería ser demasiado difícil al principio, a menos que necesite para comenzar finalmente escalar a varios servidores. Sé que hay sistemas por ahí como Phing , Tela y otros.

Mi pregunta es si alguien tiene alguna experiencia con estos y puede proporcionar los contras de algunos pros y? He empezado a establecer Phing en mi servidor y serán tratando Tela junto a jugar con ellos, pero se preguntaba si alguien que los ha utilizado más ampliamente, o tuvieron que escalar ellos, podría proporcionar alguna información.

¿Fue útil?

Solución

He usado Capistrano con PHP (aunque es más una cosa de los carriles-y como está escrito en rubí).

Ha sido muy sencillo de usar, pero que no he dicho tenido que reducir mucho con ella. Nosotros desplegamos a varios servidores de almacenamiento intermedio / producción diferentes, sin embargo, y la extensión de varias etapas ha sido útil en esos escenarios.

Sin embargo, como la mayoría de las cosas Ruby, hay un montón de ganchos y "mágica" que puede ser confuso si usted es nuevo en Capistrano y tratando de hacer algo complicado con él.

En cuanto a cómo se compara con otras herramientas de implementación, no puedo comentar. Sé que solíamos usar Phing, pero estoy seguro por qué nos cambiamos a Capistrano.

Otros consejos

Si te gusta Capistrano, pero deseaba que fuera un poco más PHP'ish, echa un vistazo a Fredistrano .

escribí un automático de generación (SVN de exportación, la codificación de Zend Guard, etc.) y el sistema de despliegue mediante Phing de una vez pareció bastante el dolor de usar. Cada vez que tenía que escribir una tarea especial que sentí que tenía que pasar por el camino a muchos aros sólo para conseguir que funcione.

Por lo tanto, en estos días me acaba de escribir scripts bash simple que la construcción de la caja con SVN, la codificación, la creación de una etiqueta en el SVN y el despliegue a través de rsync. Puede ser de baja tecnología, y Phing puede tener algunas características superiores, pero al menos no en mi camino.

Theres una nueva herramienta de construcción, llamada BLDR. Utiliza Yaml para la configuración, en lugar de XML como la mayoría de los sistemas de construcción por ahí, y su altamente extensible.

http://bldr.io

Utilizamos phing y que ha sido muy útil. Nosotros no utilizamos para el embalaje, pero no debería ser demasiado difícil para que haga lo que busca. Se utilizará principalmente para tareas comunes tales como la limpieza de cachés, las obras de construcción de desarrollo, y otras tareas para ayudar en el desarrollo. Ha sido de gran ayuda, ya partir de lo que he entendido lo que parece ser un clon de hormiga, aunque podría no tener toda la funcionalidad que tiene hormigas.

Si tuviera que implementar un sistema de este tipo de implementación, probablemente optar por una solución ligeramente diferente de lo que usted ha esbozado anteriormente. En lugar de tener código que se ejecuta localmente en mi sistema, se conecta a una lista de servidores remotos y hace el "trabajo" no, me embale el módulo de actualización con el resto del código y que éste tire de los datos de actualización de mi servidor bajo demanda (o más bien cuando "dicho" que lo haga). De esa manera usted tiene mucho menos de qué preocuparse en su final (sólo tiene que servir al código actualizado a través de http cuando se le solicite, y el servidor remoto se encarga del resto). Sólo mis 2 centavos.

He escrito mi propia rsync como herramienta para esto porque trabajo desde una conexión a Internet muy mal en una tercera contry mundo y tienen todo tipo de fallos y conexiones de hambre así que rsync no funciona.

En el sistema remoto al menos debe escribir un guión litte que está haciendo copias de seguridad antes de las migraciones en ejecución.

Una mejor es que está utilizando un sistema de espejos independiente totales en el sistema de alojamiento web y se incluyen algunas pequeñas pero fundamentales pruebas de unidad después de una migración. A continuación, hacer un cambio de raíz para poner el sitio web actualizado en línea. Para ello sería necesario ejecutar unos servicios interactivos en modo de sólo lectura durante la migración (por desgracia, una característica que no mucha gente poner en práctica).

Pero en primer lugar - piensa si es realmente vale la pena su tiempo haciendo esto -. Si sólo se actualiza cada un cuarto a continuación, una simple lista de verificación sobre papel sería suficiente

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top