Implementación de una aplicación web en un servidor web nginx en una máquina virtual Linux
Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018
Nota
Si desea implementar la aplicación en una máquina virtual Linux mediante YAML, consulte Implementación en una máquina virtual Linux.
Aprenda a configurar la implementación continua de la aplicación en un servidor web nginx que se ejecuta en Ubuntu mediante Azure Pipelines. Puede seguir los pasos de este inicio rápido para cualquier aplicación, siempre y cuando la canalización de integración continua publique un paquete de implementación web.

Después de confirmar e insertar un cambio de código, se crea y se implementa automáticamente. Los resultados se mostrarán automáticamente en el sitio.
Definición de la canalización de compilación de CI
Necesitará una canalización de compilación de integración continua (CI) que publique la aplicación web y un script de implementación que se pueda ejecutar localmente en el servidor Ubuntu. Configure una canalización de compilación de CI basada en el tiempo de ejecución que quiera usar.
Si ya tiene una aplicación en GitHub que desea implementar, puede crear una canalización para ese código.
Si es un nuevo usuario, bifurca este repositorio en GitHub:
https://github.com/spring-guides/gs-spring-boot-docker.git
Siga los pasos que se mencionan en Compilación de la aplicación java con Maven para crear una compilación para implementarla en Linux.
Requisitos previos para la máquina virtual Linux
Los scripts de implementación usados en los repositorios de ejemplo anteriores se han probado en Ubuntu 16.04 y se recomienda usar la misma versión de máquina virtual Linux para este inicio rápido. Siga los pasos adicionales que se describen a continuación en función de la pila en tiempo de ejecución que se usa para la aplicación.
- Para implementar aplicaciones basadas en Java Spring Boot y Spring Cloud, cree una máquina virtual Linux en Azure mediante esta plantilla, que proporciona un entorno de ejecución basado en OpenJDK totalmente compatible.
- Para implementar servlets de Java en el servidor de Tomcat, cree una máquina virtual Linux con Java 8 mediante esta plantilla de Azure y configure Tomcat 9.x como servicio.
- Para implementar una aplicación basada en Java EE, use una plantilla de Azure para crear una máquina virtual Linux + Java + WebSphere 9.x o una máquina virtual Linux + Java + WebLogic 12.x o una máquina virtual Linux +Java + WildFly/JBoss 14
Creación de un grupo de implementación
Los grupos de Azure Pipelines facilitan la organización de los servidores que desea usar para hospedar la aplicación. Un grupo de implementación es una colección de máquinas con Azure Pipelines agente en cada una de ellas. Cada máquina interactúa con Azure Pipelines para coordinar la implementación de la aplicación.
Abra una sesión SSH en la máquina virtual Linux. Puede hacerlo con el botón Cloud Shell en el menú de la esquina superior derecha de la Azure Portal.

Inicie la sesión escribiendo el siguiente comando y sustituyendo la dirección IP de la máquina virtual:
ssh <publicIpAddress>Para más información, consulte SSH en la máquina virtual.
Ejecute el siguiente comando:
sudo apt-get install -y libunwind8 libcurl3Las bibliotecas que instala este comando son requisitos previos para instalar el agente de compilación y versión en una máquina virtual Ubuntu 16.04. Los requisitos previos para otras versiones de Linux se pueden encontrar aquí.
Abra el Azure Pipelines web, vaya a Azure Pipelinesy elija Grupos de implementación.
Elija Agregar grupo de implementación (o Nuevo si tiene grupos de implementación existentes).
Escriba un nombre para el grupo como myNginx y elija Crear.
En la sección Registrar máquina, asegúrese de que Ubuntu 16.04+ está seleccionado y de que también está activada la opción Usar un token de acceso personal en el script para la autenticación. Elija Copiar script en el Portapapeles.
El script que ha copiado en el Portapapeles descargará y configurará un agente en la máquina virtual para que pueda recibir nuevos paquetes de implementación web y aplicarlos al servidor web.
De nuevo en la sesión SSH de la máquina virtual, pegue y ejecute el script.
Cuando se le pida que configure etiquetas para el agente, presione Entrar (no necesita ninguna etiqueta).
Espere a que finalice el script y muestre el mensaje Started Azure Pipelines Agent. Escriba "q" para salir del editor de archivos y volver al símbolo del sistema del shell.
De nuevo en Azure Pipelines o TFS, en la página Grupos de implementación, abra el grupo de implementación myNginx. En la pestaña Destinos, compruebe que aparece la máquina virtual.
Definición de la canalización de versión de CD
La canalización de versión de CD recoge los artefactos publicados por la compilación de CI y, a continuación, los implementa en los servidores nginx.
Realice una de las siguientes acciones para empezar a crear una canalización de versión:
Si ha completado una compilación de CI, en la pestaña Resumen de la compilación, en Implementaciones, elija Crear versión seguida de Sí. Esto inicia una nueva canalización de versión que se vincula automáticamente a la canalización de compilación.

Abra la pestaña Versiones deAzure Pipelines, abra la lista desplegable en la lista de canalizaciones de versión y elija Crear canalización de versión.

Elija Iniciar con un trabajo vacío.
Si ha creado la nueva canalización de versión a partir de un resumen de compilación, compruebe que la canalización de compilación y el artefacto se muestran en la sección Artifacts de la pestaña Canalización. Si ha creado una nueva canalización de versión desde la pestaña Versiones, elija el vínculo + Agregar y seleccione el artefacto de compilación.

Elija el icono Implementación continua en la sección Artifacts, compruebe que el desencadenador de implementación continua esté habilitado y agregue un filtro que incluya la rama principal.

La implementación continua no está habilitada de forma predeterminada al crear una nueva canalización de versión desde la pestaña Versiones.
Abra la pestaña Tareas, seleccione el trabajo agente yelija Quitar para quitar este trabajo.

Elija ... junto a la canalización de implementación de fase 1 y seleccione Agregar trabajo de grupo de implementación.

En Grupo de implementación,seleccione el grupo de implementación que creó anteriormente, como myNginx.

Las tareas que agregue a este trabajo se ejecutarán en cada una de las máquinas del grupo de implementación especificado.
Elija + junto al trabajo Grupo de + y, en el catálogo de tareas, busque y agregue una tarea bash.

En las propiedades de la tarea Bash, use el botón Examinar de la ruta de acceso del script para seleccionar la ruta de acceso al script deploy.sh en el artefacto de compilación. Por ejemplo, cuando se usa el repositorio nodejs-sample para compilar la aplicación, la ubicación del script es
$(System.DefaultWorkingDirectory)/nodejs-sample/drop/deploy/deploy.sh.
Vea un archivo de deploy.sh ejemplo para obtener una Node.js web.
Guarde la canalización de versión.

Creación de una versión para implementar la aplicación
Ya está listo para crear una versión, lo que significa iniciar el proceso de ejecución de la canalización de versión con los artefactos generados por una compilación específica. Esto dará lugar a la implementación de la compilación.
Elija + Versión y seleccione Crear una versión.
En el panel Crear una nueva versión, compruebe que la versión del artefacto que desea usar está seleccionada y elija Crear.
Elija el vínculo de versión en el mensaje de la barra de información. Por ejemplo: "Release Release-1 has been created".
En la vista de canalización, elija el vínculo de estado en las fases de la canalización para ver los registros y la salida del agente.
Una vez completada la versión, vaya a la aplicación y compruebe su contenido.