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.
Implemente una imagen de conjunto de escalado de máquinas virtuales.
Nota:
Esta versión de la tarea usa RBAC de Azure para conectarse al almacenamiento de Azure. Para obtener más información, consulte Configuración de RBAC de Azure para acceder al almacenamiento de Azure.
Sintaxis
# Azure VM scale set deployment v1
# Deploy a virtual machine scale set image.
- task: AzureVmssDeployment@1
inputs:
# Azure Details
azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription.
action: 'Update image' # 'Update image' | 'Configure application startup'. Required. Action. Default: Update image.
vmssName: # string. Required. Virtual Machine scale set name.
vmssOsType: # 'Windows' | 'Linux'. Required. OS type.
# Image Details
#imageUrl: # string. Required when action = Update image || action = UpdateImage. Image URL.
# Configure start-up
#customScriptsDirectory: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Custom script directory.
#customScript: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Command.
#customScriptArguments: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Arguments.
#customScriptsStorageAccount: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Azure storage account where custom scripts will be uploaded.
# Advanced
#skipArchivingCustomScripts: false # boolean. Skip Archiving custom scripts. Default: false.
Entradas
azureSubscription
-
de suscripción de Azure
Alias de entrada: ConnectedServiceName
.
string
. Obligatorio.
Seleccione la suscripción de Azure Resource Manager para el conjunto de escalado.
action
-
acción
string
. Obligatorio. Valores permitidos: Update image
(actualizar el conjunto de escalado de máquinas virtuales mediante una imagen), Configure application startup
(ejecutar la extensión de máquina virtual script personalizado en el conjunto de escalado de máquinas virtuales). Valor predeterminado: Update image
.
Elija entre actualizar un conjunto de escalado de máquinas virtuales mediante una imagen de disco duro virtual o mediante la ejecución de scripts de implementación e instalación mediante la extensión de máquina virtual de script personalizado.
El enfoque de imagen VHD es mejor para escalar rápidamente y realizar reversión. El enfoque de extensión es útil para la configuración posterior a la implementación, la instalación de software o cualquier otra tarea de configuración / administración.
Puede usar una imagen de disco duro virtual para actualizar un conjunto de escalado de máquinas virtuales solo cuando se creó mediante una imagen personalizada, se producirá un error en la actualización si el conjunto de escalado de máquinas virtuales se creó mediante una imagen de plataforma o galería disponible en Azure.
El enfoque de extensión de máquina virtual de script personalizado se puede usar para el conjunto de escalado de máquinas virtuales creado mediante una imagen personalizada o una imagen de plataforma o galería.
vmssName
-
nombre del conjunto de escalado de máquinas virtuales
string
. Obligatorio.
Nombre del conjunto de escalado de máquinas virtuales que desea actualizar mediante una imagen de disco duro virtual o mediante la extensión de máquina virtual de script personalizado.
vmssOsType
-
tipo de sistema operativo
string
. Obligatorio. Valores permitidos: Windows
, Linux
.
Seleccione el tipo de sistema operativo del conjunto de escalado de máquinas virtuales.
imageUrl
-
dirección URL de imagen
string
. Obligatorio cuando action = Update image || action = UpdateImage
.
Especifique la dirección URL de la imagen VHD. Si se trata de una dirección URL de blob en Azure Storage, la ubicación de la cuenta de almacenamiento debe ser la misma que la ubicación del conjunto de escalado.
customScriptsDirectory
-
directorio de scripts personalizados
string
. Opcional. Use cuando action = Configure application startup || action = Update image || action = UpdateImage
.
Ruta de acceso al directorio que contiene scripts personalizados que se ejecutarán mediante la extensión de máquina virtual de script personalizado. El enfoque de extensión es útil para la configuración posterior a la implementación, la instalación de aplicaciones o software o cualquier otra tarea de configuración o administración de aplicaciones. Por ejemplo: el script puede establecer una variable de entorno de nivel de máquina que utiliza la aplicación, como la cadena de conexión de la base de datos.
customScript
-
comando
string
. Opcional. Use cuando action = Configure application startup || action = Update image || action = UpdateImage
.
El script que se ejecutará mediante la extensión de máquina virtual de script personalizado. Este script puede invocar otros scripts en el directorio. El script se invocará con los argumentos que se pasan a continuación.
Este script en conjugación con tales argumentos se puede usar para ejecutar comandos. Por ejemplo:
1. Update-DatabaseConnectionStrings.ps1 -clusterType dev -user $(dbUser) -password $(dbUserPwd) actualizará la cadena de conexión en web.config de la aplicación web.
2. install-secrets.sh --key-vault-type prod -key serviceprincipalkey creará un archivo cifrado que contendrá la clave de entidad de servicio.
argumentos de
string
. Opcional. Use cuando action = Configure application startup || action = Update image || action = UpdateImage
.
El script personalizado se invocará con argumentos pasados. Se pueden usar variables de compilación/versión, lo que facilita el uso de secretos.
customScriptsStorageAccount
-
cuenta de Azure Storage donde se cargarán scripts personalizados
string
. Opcional. Use cuando action = Configure application startup || action = Update image || action = UpdateImage
.
La extensión de script personalizado descarga y ejecuta scripts proporcionados por el usuario en cada máquina virtual del conjunto de escalado de máquinas virtuales. Estos scripts se almacenarán en la cuenta de almacenamiento especificada aquí. Especifique una cuenta de almacenamiento arm existente previamente.
skipArchivingCustomScripts
-
Omitir el archivado de scripts personalizados
boolean
. Valor predeterminado: false
.
De forma predeterminada, esta tarea crea un archivo comprimido de directorio que contiene scripts personalizados. Esto mejora el rendimiento y la confiabilidad al cargar en Azure Storage. Si no se selecciona, el archivado no se realizará y todos los archivos se cargarán individualmente.
Opciones de control de tareas
Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.
Variables de salida
Ninguno.
Observaciones
Use esta tarea para implementar una imagen de conjunto de escalado de máquinas virtuales.
La ejecución del script se notifica como correcta, pero las instancias de VMSS no se actualizan.
Los conjuntos de escalado tienen una directiva de actualización que determina cómo se llevan las máquinas virtuales up-to-date con el modelo de conjunto de escalado más reciente y, si la directiva de actualización está establecida en manual, debe actualizar manualmente cada máquina virtual. Para obtener más información, consulte How to bring VMs up-to-date with the latest scale set model. Puede cambiar la directiva de actualización o actualizar manualmente cada máquina virtual. Por ejemplo, para actualizar la directiva a Automatic
, use el siguiente comando de la CLI de Az: az vmss update --set upgradePolicy.mode=Automatic -g <resource group name> -n <vmss name>
Error: "Permiso denegado: el script no es ejecutable"
Este problema se produce si intenta ejecutar un script personalizado, pero el script no es ejecutable.
Para resolver el problema, asegúrese primero de que la entrada customScript
no tenga ./
ni nada más antes del nombre del script 'test.sh'
:
customScript: 'test.sh'
A continuación, intente agregar una tarea de línea de comandos antes de la tarea del conjunto de escalado de máquinas virtuales:
- task: CmdLine@2
inputs:
script: 'chmod 777 $(System.DefaultWorkingDirectory)/test.sh'
Configuración de RBAC de Azure para acceder al almacenamiento de Azure
Esta versión de la tarea usa una conexión de servicio de Azure Resource Manager configurada mediante la federación de identidades de carga de trabajo y RBAC de Azure para conectarse al almacenamiento de Azure en lugar de a las claves de cuenta de almacenamiento o a las firmas de acceso compartido (SAS). Para conectarse al almacenamiento de Azure desde esta tarea, debe asignar el rol Colaborador de datos de blob de almacenamiento en la cuenta de almacenamiento a la identidad de la conexión de servicio configurada para azureSubscription
.
Para obtener más información, consulte Asignación de un rol de Azure para el acceso a datos de blobs y Pasos para asignar un rol.
La AzureVmssDeployment@1
tarea requiere los siguientes roles RBAC adicionales configurados para acceder a la cuenta de almacenamiento configurada en customScriptsStorageAccount
.
Rol | Recurso | Usuario |
---|---|---|
Colaborador o colaborador de máquina virtual | Conjunto de escalado de máquinas virtuales | La identidad de la conexión de servicio configurada para azureSubscription |
Colaborador de datos de blobs de almacenamiento | Cuenta de almacenamiento de Azure que contiene el script personalizado | La identidad de la conexión de servicio configurada para azureSubscription |
Lector de datos de blobs de almacenamiento | Cuenta de almacenamiento de Azure que contiene el script personalizado | La identidad administrada asignada por el sistema del conjunto de escalado de máquinas virtuales |
Requisitos
Requisito | Descripción |
---|---|
Tipos de canalización | YAML, compilación clásica, versión clásica |
Se ejecuta en | Agente, DeploymentGroup |
demandas | Ninguno |
Capacidades | Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
restricciones de comandos | Cualquiera |
variables settable | Cualquiera |
Versión del agente | 2.209.0 o superior |
Categoría de tarea | Desplegar |