Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
En este inicio rápido, aprenderá a configurar una canalización de Azure DevOps para la implementación en varios recursos de máquina virtual Linux en un entorno. Puede usar estas instrucciones para cualquier aplicación que publique un paquete de implementación web.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Una organización y proyecto de Azure DevOps. Suscribirse a Azure Pipelines.
En el caso de las aplicaciones de JavaScript o Node.js, al menos dos máquinas virtuales Linux configuradas con Nginx en Azure.
Bifurcar el código de ejemplo
Si ya tiene una aplicación en GitHub que quiere implementar, puede intentar crear una canalización para ese código.
Si es un nuevo usuario, bifurque este repositorio en GitHub:
https://github.com/MicrosoftDocs/pipelines-javascript
Creación de un entorno con máquinas virtuales Linux
Puede agregar máquinas virtuales como recursos dentro de entornos y destinarlas a implementaciones de varias máquinas virtuales. El historial de implementación del entorno proporciona rastreabilidad de la máquina virtual a la confirmación.
Adición de un recurso de máquina virtual
En el proyecto de Azure DevOps, vaya a Canalizaciones>Entornos y seleccione Crear entorno o Nuevo entorno.
En la primera pantalla Nuevo entorno, agregue un nombre y una descripción opcional.
En Recurso, seleccione Máquinas virtuales y, a continuación, seleccione Siguiente.
En la siguiente pantalla Nuevo entorno , elija Linux en Sistema operativo.
Copie el script de registro de Linux. El script es el mismo para todas las máquinas virtuales Linux agregadas al entorno.
Nota:
El token de acceso personal (PAT) del usuario que ha iniciado sesión se inserta previamente en el script y expira después de tres horas.
Seleccione Cerrar y observe que se crea el nuevo entorno.
Ejecute el script copiado en cada máquina virtual de destino que quiera registrar con el entorno.
Nota:
Si la máquina virtual ya tiene otro agente que se ejecuta en ella, proporcione un nombre único para que el agente se registre en el entorno.
Una vez registrada la máquina virtual, aparece como un recurso en la pestaña Recursos del entorno.
Para volver a copiar el script para crear más recursos, por ejemplo, si expira el PAT, seleccione Agregar recurso en la página del entorno.
Incorporación y administración de etiquetas
Las etiquetas son una manera de tener como destino un conjunto específico de máquinas virtuales en un entorno para la implementación. No hay límite para el número de etiquetas que puede usar. Las etiquetas están limitadas a 256 caracteres cada una.
Puede agregar etiquetas o quitar etiquetas para máquinas virtuales en el script de registro interactivo o a través de la interfaz de usuario seleccionando Más acciones para un recurso de máquina virtual. En este inicio rápido, asigne una etiqueta diferente a cada máquina virtual del entorno.
Definición de una canalización de compilación de CI
Necesita una canalización de compilación de integración continua (CI) que publique la aplicación web y un script de implementación para ejecutarse localmente en el servidor Linux. Configure la canalización de compilación de CI en función del entorno de ejecución que quiera usar.
Importante
Durante los procedimientos de GitHub, es posible que se le pida que cree una conexión de servicio de GitHub o que se redirija a GitHub para iniciar sesión, instalar Azure Pipelines o autorizar Azure Pipelines. Siga las instrucciones que aparecen en pantalla para completar el proceso. Para más información, consulte Acceso a repositorios de GitHub.
- En el proyecto de Azure DevOps, seleccione Canalizaciones>crear canalización y, a continuación, seleccione GitHub como ubicación del código fuente.
- En la pantalla Seleccionar un repositorio , seleccione el repositorio de ejemplo bifurcada.
- En la pantalla Configurar su canalización, seleccione Canalización inicial. Azure Pipelines genera un archivo YAML denominado azure-pipelines.yml para la canalización.
- Seleccione el símbolo de intercalación desplegable junto a Guardar y ejecutar, seleccione Guardar y, a continuación, seleccione Guardar de nuevo. El archivo se guarda en el repositorio de GitHub bifurcado.
Edición del código
Seleccione Editar y reemplace el contenido del archivo azure-pipelines.yml por el código siguiente. Agregue a este YAML en los pasos futuros.
El código siguiente compila el proyecto de Node.js con npm.
trigger:
- main
pool:
vmImage: ubuntu-latest
stages:
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build
steps:
- task: UseNode@1
inputs:
version: '16.x'
displayName: 'Install Node.js'
- script: |
npm install
npm run build --if-present
npm run test --if-present
displayName: 'npm install, build and test'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
includeRootFolder: false
archiveType: zip
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
replaceExistingArchive: true
- upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
artifact: drop
Para obtener más información, revise los pasos descritos en Compilación de la aplicación de Node.js con Gulp para crear una compilación.
Ejecución de la canalización
Seleccione Validar y guardar y, después, Guardar, Ejecutar y volver a ejecutar.
Una vez ejecutada la canalización, compruebe que el trabajo se ejecutó correctamente y que ve un artefacto publicado.
Implementación en las máquinas virtuales Linux
Edite la canalización para agregar el siguiente trabajo de implementación. Reemplace por
<environment name>
el nombre del entorno que creó anteriormente. Seleccione máquinas virtuales específicas del entorno para recibir la implementación especificando la<VM tag>
que definió para cada máquina virtual.jobs: - deployment: VMDeploy displayName: Web deploy environment: name: <environment name> resourceType: VirtualMachine tags: <VM tag> # Update value for VMs to deploy to strategy:
Para obtener más información, consulte la definición completa de jobs.deployment.
Para obtener más información sobre la palabra clave y los
environment
recursos destinados a un trabajo de implementación, consulte la definición de jobs.deployment.environment.Especifique o
runOnce
rolling
como una implementaciónstrategy
.runOnce
es la estrategia de implementación más sencilla. Los enlaces depreDeploy
deploy
ciclo de vida ,routeTraffic
ypostRouteTraffic
se ejecutan una vez. A continuación, seon:
ejecuta oon:
failure
.success
El código siguiente muestra un trabajo de implementación para
runOnce
:jobs: - deployment: VMDeploy displayName: Web deploy environment: name: <environment name> resourceType: VirtualMachine tags: <VM tag> strategy: runOnce: deploy: steps: - script: echo my first deployment
En el código siguiente se muestra un fragmento de código YAML para la
rolling
estrategia de implementación, mediante una canalización de Java. Puede actualizar hasta cinco destinos en cada iteración. ElmaxParallel
parámetro especifica el número de destinos en los que se puede implementar en paralelo.La
maxParallel
selección tiene en cuenta el número absoluto o el porcentaje de destinos que deben permanecer disponibles en cualquier momento, excepto los destinos en los que se implementan y determina las condiciones de éxito y error durante la implementación.jobs: - deployment: VMDeploy displayName: web environment: name: <environment name> resourceType: VirtualMachine tags: <VM tag> strategy: rolling: maxParallel: 2 #for percentages, mention as x% preDeploy: steps: - download: current artifact: drop - script: echo initialize, cleanup, backup, install certs deploy: steps: - task: Bash@3 inputs: targetType: 'inline' script: | # Modify deployment script based on the app type echo "Starting deployment script run" sudo java -jar '$(Pipeline.Workspace)/drop/**/target/*.jar' routeTraffic: steps: - script: echo routing traffic postRouteTraffic: steps: - script: echo health check post-route traffic on: failure: steps: - script: echo Restore from backup! This is on failure success: steps: - script: echo Notify! This is on success
Con cada ejecución de este trabajo, el historial de implementación se registra en el entorno en el que creó y registró las máquinas virtuales.
Acceso a la rastreabilidad de la canalización en el entorno
La vista Implementaciones de entorno proporciona una rastreabilidad completa de confirmaciones y elementos de trabajo y un historial de implementación entre canalizaciones para el entorno.