Entorno: recurso de máquina virtual

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

Use recursos de máquina virtual (VM) para administrar implementaciones en varias máquinas con canalizaciones YAML. Los recursos de máquina virtual permiten instalar agentes en sus propios servidores para realizar implementaciones graduales.

Los recursos de máquina virtual se conectan a entornos. Después de definir un entorno, puede agregar máquinas virtuales al destino con implementaciones. La vista del historial de implementación de un entorno proporciona rastreabilidad de la máquina virtual a la canalización.

Prerrequisitos

Debe tener al menos una licencia Básica y acceso a las áreas siguientes:

  • el repositorio conectado a la canalización
  • la máquina virtual que quiere conectar al entorno

Para más información sobre la seguridad de Azure Pipelines, consulte Recursos de seguridad de canalización.

Para agregar una máquina virtual a un entorno, debe tener el rol Administrador para el grupo de implementación correspondiente. Un grupo de implementación es un conjunto de servidores de destino disponibles para la organización. Obtenga más información sobre los permisos de entorno y grupo de implementación.

Nota

Si va a configurar un agente para el grupo de implementación o si ve un error al registrar un recurso de entorno de máquina virtual, debe establecer el ámbito PAT en Todas las organizaciones accesibles.

Creación de un recurso de máquina virtual

Nota

Puede usar este mismo proceso para configurar máquinas físicas con un script de registro.

El primer paso para agregar un recurso de máquina virtual es definir un entorno.

Definición de un entorno

  1. Seleccione Crear entorno o Nuevo entorno, en función de si se trata de su primer entorno.
  2. Agregue un Nombre (requerido) para el entorno y una Descripción.
  3. Guarde el entorno nuevo.

Agregar un recurso

  1. Seleccione el entorno y elija Agregar recurso.

  2. Seleccione Máquinas virtuales para el tipo de Recurso. Luego, seleccione Siguiente.

    Add an environment.

  3. Elija Windows o Linux como sistema operativo.

  4. Copie el script de registro. El script será un script de PowerShell si ha seleccionado Windows y un script de Linux si ha seleccionado Linux.

    Add a virtual machine.

  5. Ejecute el script copiado en cada una de las máquinas virtuales de destino que desea registrar con este entorno.

    • Si realiza la instalación en Windows, deberá ejecutar el script como administrador de PowerShell.
    • Si va a hacerlo en Linux, deberá tener permiso para descargar y ejecutar scripts ejecutables.

    Nota

    • El token de acceso personal (PAT) para el usuario que ha iniciado sesión se incluye en el script. El PAT expira el día que se genera el script.
    • Si la máquina virtual ya tiene un agente en ejecución, proporcione un nombre único para el agente para registrarlo en el entorno.
    • Para más información sobre cómo instalar el script del agente, consulte Agentes de Linux autohospedados y Agentes de Windows autohospedados. Los scripts de agente para los recursos de máquina virtual son similares a los scripts para agentes autohospedados y puede usar los mismos comandos.
  6. Una vez registrada la máquina virtual, aparece como un recurso de entorno en la pestaña Recursos del entorno.

  7. Para agregar más máquinas virtuales, vuelva a copiar el script. Seleccione Agregar recurso>Máquinas virtuales. Los scripts de Windows y Linux son los mismos para todas las máquinas virtuales que se agregan al entorno.

  8. Cuando el script de máquina virtual se instala correctamente, la máquina virtual aparece en la lista de recursos del entorno.

    View resources.

Uso de máquinas virtuales en canalizaciones

Haga referencia al entorno para establecer como destino las máquinas virtuales de la canalización. De manera predeterminada, el trabajo de canalización se ejecuta para todas las máquinas virtuales definidas para un entorno con resourceName.

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 valores resourceType distinguen mayúsculas de minúsculas. Si se especifica un uso incorrecto de mayúsculas y minúsculas, no encontrará ningún recurso coincidente en el entorno. Para más información, consulte el esquema YAML.

Puede seleccionar una máquina virtual específica del entorno para solo recibir la implementación; para ello, especifíquela según su resourceName. Por ejemplo, para establecer como destino de la implementación solo el recurso de máquina virtual denominado USHAN-PC en el entorno VMenv, agregue el parámetro resourceName y asígnele el valor de USHAN-PC.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

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

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

Incorporación y administración de etiquetas

Las etiquetas le permiten establecer como destino un conjunto de máquinas virtuales específicas en un entorno para la implementación. Puede agregar etiquetas a la máquina virtual como parte del script de registro interactivo o a través de la interfaz de usuario. Las etiquetas tienen un límite de 256 caracteres. No hay límite para el número de etiquetas que puede usar.

Agregue o quite etiquetas en la interfaz de usuario de la vista de recursos; para ello, seleccione Más acciones para un recurso de máquina virtual.

Set VM tags.

Al seleccionar varias etiquetas, se usan en la canalización las máquinas virtuales que incluyen todas las etiquetas. Por ejemplo, esta canalización tiene como destino máquinas virtuales con las etiquetas windows y prod. Si una máquina virtual solo tiene una de estas etiquetas, no es parte del destino de la canalización.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

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

Aplicación de estrategia de implementación

Aplique una estrategia de implementación para definir cómo se implementa la aplicación. Se admiten la estrategia runOnce y la estrategia rolling para las máquinas virtuales. Para más información sobre las estrategias de implementación y los enlaces de ciclo de vida, consulte Trabajos de implementación/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.

VMDeployments_view

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

Entorno de Windows

Para quitar máquinas virtuales de un entorno de Windows, ejecute el comando siguiente. Asegúrese de realizar estas tareas:

  • Ejecución del comando desde un símbolo del sistema de PowerShell del administrador
  • Ejecución del comando en cada máquina
  • Ejecución del comando en la misma ruta de acceso de carpeta en la que se ejecutó el comando de registro de entorno
./config.cmd remove

Entorno de Linux

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

./config.sh remove

Limitaciones conocidas

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