Advertisement
  1. Code
  2. Deployment

Cómo Implementar con Deployer

by
Read Time:7 minsLanguages:

Spanish (Español) translation by Jean Perez (you can also view the original English article)

Flujo de trabajo automatizado para el despliegue es una gran herramienta que debe tener cada equipo de desarrollo de software. El proceso de liberación, cuando es rápido, seguro y tolerantes, puede ahorrar tiempo de desarrollo más grandes cosas. Y lo bueno que hay muchos excelentes herramientas para la creación de un ciclo de lanzamiento automatizado.

En este artículo, voy a presentarles una implementación herramienta llamada Deployer. Me gusta usarlo porque está escrito en PHP, es fácil de configurar y tiene muchas características útiles para integrar el proceso de implementación de flujo de trabajo de su equipo.

El Proceso de Implementación con Deployer

En primer lugar, vamos a ver la estructura del proceso de implementación con Deployer. Consta de tres partes principales: un servidor Deployer para despliegue de init, una producción o servidor para hospedar su aplicación y un repositorio git para almacenar el código de su aplicación.

Al inicio un proceso de implementación, ejecutar un script de implementación en el servidor de implementación. Después de esto, el servidor de despliegue se conecta con el servidor de producción con SSH y hace las cosas de mantenimiento del servidor de producción como la clonación del código en un repositorio git, actualización de las dependencias del compositor y otras cosas que usted necesita para tener un éxito lanzamiento.

Deployer Deployment ProcessDeployer Deployment ProcessDeployer Deployment Process

Para que todos puedan confiar en esta cadena, crearemos e instalar certificados SSH a los servidores y el repositorio.

Instalar SSH Certificados

Necesitamos crear una clave de autenticación de SSH en un servidor de producción y compartir en un repositorio de git. Si no tienes ninguna clave de autenticación de SSH tu implementar server, ejecute ssh-keygen y siga las instrucciones. Keygen creará una clave pública en un archivo ~ /.ssh/id_rsa.pub.

Ahora usted puede instalar a la cuenta de tu repositorio. Si no sabes cómo hacerlo, mira el ejemplo de GitHub de los enlaces relacionados en la parte inferior del artículo, o pedir su repositorio de servicio de ayuda de alojamiento.

También, es mejor crear una clave SSH en su implementar server para obtener confianza en el equipo de producción. Use estos comandos para hacer una conexión SSH conexión entre los servidores de implementación y producción.

Con todos los certificados instalados, estamos listos para instalar Deployer.

Instalar Deployer

La instalación de Deployer es tan fácil como la instalación del compositor. Necesita descargar el archivo PHP y hacerlo un comando global:

Vamos a comprobar la versión del Deployer para ver si todo está instalado correctamente:

Todo se ve muy bien, y estamos listos para crear nuestro primer script de despliegue.

Hacer el Primer Script de Despliegue

Para inicializar Deployer para su proyecto, ejecutar init dep. Esto ejecutará una utilidad para generar un script de implementación, que le preguntará por un enlace de tipo y repositorio del proyecto y se creará el archivo deploy.php en el directorio actual. Echemos un vistazo a este archivo y las funciones principales que se utilizan en la receta.

Las funciones de set y get con los valores de configuración y un acceso directo de un captador puede utilizarse con una orden de run:

Cada valor de configuración puede cambiarse para cada host. Podemos fijar una ruta de implementación y SSH usuario de nuestra aplicación en nuestro script de despliegue:

Para definir tus propias tareas, utilice la función task y run para ejecutar un comando en el servidor de producción:

Y luego ejecutarlo con dep y el nombre de función como un parámetro:

Ahora puede mirar a través del archivo de despliegue y cambiar todos los parámetros necesarios para la configuración de la aplicación.

Desplegar en Producción

Ya hemos instalado Deployer, instalar certificados SSL a los servidores de producción y despliegue, y hecho el script de implementación, así que finalmente es el momento de tirar todos juntos y hacer el primer despliegue a producción.

Para desplegar la aplicación, simplemente llamada dep deploy:

Deploy to ProductionDeploy to ProductionDeploy to Production

Si algo ha ido mal, puede hacer retroceder a la versión previamente implementada en sólo un paso:

Parece fácil, ¿no?

Ahora vamos a comprobar lo que se creó en nuestro servidor de producción. Gracias a ejecutor, podemos hacerlo fácilmente con atajos. intentar con dep ssh para conectarse a un servidor directamente a través de la configuración de la secuencia de comandos de implementación, o ejecutar remotamente un comando via túnel SSH con dep run. También, este comando admite variables que hemos fijado en la escritura.

Así que vamos a echar un vistazo a la ruta de implementación:

Lo principal es el directorio de releases, donde el ejecutor almacena las últimas versiones de nuestra aplicación. Después de cada éxito desplegar o rollback, conecta current a la versión habilitada. Por último, tenemos un directorio shared que almacena archivos y carpetas de la shared_dirs y shared_files que nos hemos puesto en el archivo de comandos.

En el primer despliegue, Deployer se copiar esos archivos a un directorio shared y crear un enlace desde la dir de releases de la compartida dir. La próxima vez, sólo agregará un enlace de los archivos de lanzamiento a los archivos y carpetas en el directorio compartido. También, usted puede cambiar cualquier archivo en un directorio compartido y ejecutor de la mantendrá sin cambios en cada implementación, por ejemplo, esto es útil para archivos de configuración.

Además, si tiene un archivo composer.json en la raíz del repositorio, Deployer llamará al compositor para crear un directorio de proveedores y actualizar todas las dependencias necesarias. Si no guarda el archivo del compositor en el directorio raíz, puede crear una tarea personalizada para actualizarlo.

Y ahora es tiempo de integrar la aplicación en nuestros procesos.

Agregar una Tarea Personalizada

Cada equipo tiene su propio implementar configuraciones y proceso a automatizar, así Deployer tiene herramientas fácil extender la configuración estándar y añadir tareas personalizadas. Por ejemplo, tu hosting puede tener la regla para almacenar aplicaciones y webroot en diferentes lugares, sin derechos para cambiar la configuración de Apache o Nginx.

Pero hay una manera de superar esta norma, utilizar enlaces simbólicos. Así que vamos a añadir una tarea de esto:

Y luego agregarlo a la tarea de despliegue principal como parte de un ciclo de liberación:

Ahora, vuelva a ejecutar el script deploy y compruebe si todo está correcto con dep ssh.

Recetas de Terceros

Deployer tiene muchas recetas para integrar con terceros que pueden extender la funcionalidad básica. Podemos utilizar el compositor para instalarlos:

Me gusta usar la receta de la holgura de la notificación. Para habilitarlo, debemos ir a la página receta de Slack, haga clic en el botón Añadir a Slack y seleccione el canal para enviar notificaciones. Luego haz el webhook Slack  y agregue este código al despliegue.

Después de estos cambios, Deployer enviará un mensaje como este al canal de deploy:

Viewing Deployer in SlackViewing Deployer in SlackViewing Deployer in Slack

Ahora usted puede agregar su equipo al canal para que todos los involucrados pueden ser notificado.

Conclusión

En este tutorial hemos instalado Deployer y creado un script deploy que puede utilizar para desplegar nuestra aplicación desde un repositorio git en una producción o un servidor de tan solo un clic.

También, puede ser integrado en los procesos de equipo — por ejemplo, una aplicación puede implementar automáticamente después de cambios en la rama principal y notificación se puede hacer en un canal de parafina sobre la implementación exitosa.

Si usted tiene alguna pregunta, no dude en preguntar en los comentarios al artículo.

Lectura Adicional y Enlaces Relacionados

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.