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
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.
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.
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. Para obtener más información sobre cómo instalar el script del agente, consulte Agentes de Linux autohospedados.
Ejecución del script copiado
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.
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.
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.
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.
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