Compartir vía


Administración de recursos de máquina virtual en entornos

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

En este artículo se describe cómo usar recursos de máquina virtual (VM) en entornos para administrar implementaciones de Azure Pipelines en varias máquinas. También puede instalar agentes en sus propios servidores para implementaciones graduales.

Los recursos de máquina virtual pueden existir en entornos, como desarrollo, prueba o producción. Después de definir un entorno, puede agregar máquinas virtuales al destino con implementaciones. El historial de implementación del entorno proporciona rastreabilidad de cada máquina virtual a la canalización.

Requisitos previos

  • Acceso a un repositorio de origen que está conectado a la canalización.
  • Acceso y permiso para descargar y ejecutar scripts ejecutables en las máquinas virtuales que desea conectar al entorno.
  • Permisos administrador de proyectos o administrador de compilación en el proyecto de Azure DevOps que contiene el entorno. Para más información, consulte Recursos de seguridad de canalización.
  • Rol de administrador para el grupo de implementación o conjunto de servidores de destino disponibles para la organización. Para más información, consulte Permisos de entorno y grupo de implementación.

Nota:

Para configurar un agente de grupo de implementación o si ve un error al registrar un recurso de entorno de máquina virtual, asegúrese de establecer el ámbito del token de acceso personal (PAT) en Todas las organizaciones accesibles.

Creación del entorno

Use el procedimiento siguiente para agregar un recurso de máquina virtual a un entorno. Puede usar el mismo proceso para configurar máquinas físicas.

Adición de un recurso de máquina virtual

  1. En el proyecto de Azure DevOps, vaya a Canalizaciones>Entornos y seleccione Crear entorno o Nuevo entorno.

  2. En la primera pantalla Nuevo entorno, agregue un nombre y una descripción opcional.

  3. En Recurso, seleccione Máquinas virtuales y, a continuación, seleccione Siguiente.

    Captura de pantalla que muestra cómo agregar un entorno.

Copia del script de registro

Los scripts de agente para los recursos de máquina virtual son como los scripts de los agentes autohospedados y usan los mismos comandos. Los scripts incluyen un token de acceso personal (PAT) de Azure DevOps para el usuario que ha iniciado sesión, que expira tres horas después de que se genere el script.

  1. En la siguiente pantalla Nuevo entorno , elija Linux en Sistema operativo.

  2. Copie el script de registro de Linux.

    Captura de pantalla que muestra cómo agregar una máquina virtual.

El script es el mismo para todas las máquinas virtuales Linux agregadas al entorno. Para obtener más información sobre cómo instalar el script del agente, consulte Agentes de Linux autohospedados.

Ejecución del script copiado

  1. Seleccione Cerrar y observe que se crea el nuevo entorno. Para volver a copiar el script, por ejemplo, si el PAT expira, seleccione Agregar recurso.

    Captura de pantalla del nuevo mensaje creado por el entorno.

  2. 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.

Captura de pantalla de la pestaña Recursos.

Uso de máquinas virtuales en canalizaciones

En la canalización de YAML, puede dirigirse a las máquinas virtuales haciendo referencia a su entorno. De forma predeterminada, el trabajo tiene como destino todas las máquinas virtuales registradas para ese entorno resourceName.

Nota:

Al reintentar una fase, la implementación se vuelve a ejecutar en todas las máquinas virtuales, no solo destinos con errores.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
   name: VMenv
   resourceName: VMenv
   resourceType: virtualMachine
  strategy:
     runOnce:
        deploy:   
          steps:
            - script: echo "Hello world"

Nota:

Los resourceType valores como virtualMachine distinguen mayúsculas de minúsculas. Las mayúsculas y minúsculas incorrectas no muestran ningún recurso coincidente.

Puede implementar en máquinas virtuales específicas en el entorno si las especifica en resourceName. En el ejemplo siguiente solo se implementa en el recurso de máquina virtual denominado RESOURCE-PC en el VMenv entorno.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    resourceName: RESOURCE-PC # only deploy to the VM resource named RESOURCE-PC
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

Para obtener más información sobre los trabajos de implementación de canalización de YAML, consulte el esquema de canalizaciones de YAML.

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. Las etiquetas están limitadas a 256 caracteres cada una. No hay límite para el número de etiquetas que puede usar.

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.

Captura de pantalla que muestra la configuración de etiquetas de máquina virtual.

Si especifica varias etiquetas, la canalización solo usa máquinas virtuales que incluyen todas las etiquetas. En el ejemplo siguiente solo se destinan las máquinas virtuales que tienen las windows etiquetas y prod . Las máquinas virtuales que tienen solo una o ninguna de las etiquetas no están dirigidas.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    tags: windows,prod # only deploy to VMs with both windows and prod tags
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

Aplicación de estrategia de implementación

Puede aplicar una implementación strategy para definir cómo implementar la aplicación. Las máquinas virtuales admiten las runOnce estrategias y rolling . Para obtener más información sobre las estrategias de implementación y los enlaces de ciclo de vida, consulte Estrategias de implementación.

Visualización del historial de implementaciones

Seleccione la pestaña Implementaciones para completar la rastreabilidad de confirmaciones y elementos de trabajo, así como un historial de implementación entre canalizaciones por entorno y recurso.

Captura de pantalla que muestra la vista Implementaciones de máquina virtual.

Eliminación de una máquina virtual de un entorno

Para quitar una máquina virtual de un entorno Linux, ejecute el comando siguiente en cada máquina.

./config.sh remove