Partilhar via


AzureVmssDeployment@1 - Tarefa v1 de implantação do conjunto de escala de VM do Azure

Implante uma imagem de conjunto de escala de máquina virtual.

Observação

Esta versão da tarefa usa o RBAC do Azure para se conectar ao armazenamento do Azure. Para obter mais informações, consulte Configurar o RBAC do Azure para acessar o armazenamento do Azure.

Sintaxe

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

Insumos

azureSubscription - de assinatura do Azure
Alias de entrada: ConnectedServiceName. string. Obrigatório

Selecione a assinatura do Azure Resource Manager para o conjunto de escalas.


action - Ação
string. Obrigatório Valores permitidos: Update image (Atualizar escala de VM definida usando uma imagem), Configure application startup (Executar extensão de VM de script personalizado no conjunto de escala de VM). Valor predefinido: Update image.

Escolha entre atualizar uma escala de VM definida usando uma imagem VHD e/ou executando scripts de implantação/instalação usando a extensão de VM de script personalizado.
A abordagem de imagem VHD é melhor para dimensionar rapidamente e fazer reversão. A abordagem de extensão é útil para configuração pós-implantação, instalação de software ou qualquer outra tarefa de configuração/gerenciamento.
Você pode usar uma imagem VHD para atualizar um conjunto de escala de VM somente quando ele foi criado usando uma imagem personalizada, a atualização falhará se o conjunto de Escala de VM tiver sido criado usando uma imagem de plataforma/galeria disponível no Azure.
A abordagem de extensão de VM de script personalizado pode ser usada para o conjunto de escala de VM criado usando imagem personalizada ou imagem de plataforma/galeria.


vmssName - nome do conjunto de escala da máquina virtual
string. Obrigatório

Nome do conjunto de escala de VM que você deseja atualizar usando uma imagem VHD ou usando a extensão de VM de script personalizado.


vmssOsType - tipo de SO
string. Obrigatório Valores permitidos: Windows, Linux.

Selecione o tipo de sistema operacional do conjunto de escala de VM.


imageUrl - URL da imagem
string. Necessário quando action = Update image || action = UpdateImage.

Especifique o URL da imagem VHD. Se for uma URL de blob de armazenamento do Azure, o local da conta de armazenamento deverá ser igual ao local do conjunto de escala.


customScriptsDirectory - Diretório de script personalizado
string. Opcional. Use quando action = Configure application startup || action = Update image || action = UpdateImage.

Caminho para o diretório contendo script(s) personalizado(s) que serão executados usando a extensão Custom Script VM. A abordagem de extensão é útil para configuração pós-implantação, instalação de aplicativo/software ou qualquer outra tarefa de configuração/gerenciamento de aplicativos. Por exemplo: o script pode definir uma variável de ambiente de nível de máquina que o aplicativo usa, como cadeia de conexão de banco de dados.


customScript - de comando
string. Opcional. Use quando action = Configure application startup || action = Update image || action = UpdateImage.

O script que será executado usando a extensão Custom Script VM. Este script pode invocar outros scripts no diretório. O script será invocado com argumentos passados abaixo.
Este script em conjugação com tais argumentos pode ser usado para executar comandos. Por exemplo:
1. Update-DatabaseConnectionStrings.ps1 -clusterType dev -user $(dbUser) -password $(dbUserPwd) atualizará a cadeia de conexão em web.config de aplicação web.
2. install-secrets.sh --key-vault-type prod -key serviceprincipalkey criará um ficheiro encriptado contendo a chave principal do serviço.


customScriptArguments - Argumentos
string. Opcional. Use quando action = Configure application startup || action = Update image || action = UpdateImage.

O script personalizado será invocado com argumentos passados. As variáveis Build/Release podem ser usadas, o que facilita o uso de segredos.


customScriptsStorageAccount - conta de armazenamento do Azure onde scripts personalizados serão carregados
string. Opcional. Use quando action = Configure application startup || action = Update image || action = UpdateImage.

A Extensão de Script Personalizada baixa e executa scripts fornecidos por você em cada máquina virtual no conjunto de escala de VM. Esses scripts serão armazenados na conta de armazenamento especificada aqui. Especifique uma conta de armazenamento ARM pré-existente.


skipArchivingCustomScripts - Ignorar scripts personalizados de arquivamento
boolean. Valor predefinido: false.

Por padrão, essa tarefa cria um arquivo compactado de diretório contendo scripts personalizados. Isso melhora o desempenho e a confiabilidade durante o carregamento para o armazenamento azure. Se não for selecionado, o arquivamento não será feito e todos os arquivos serão carregados individualmente.


Opções de controlo de tarefas

Todas as tarefas têm opções de controle, além de suas entradas de tarefas. Para obter mais informações, consulte Opções de controle e propriedades de tarefas comuns.

Variáveis de saída

Nenhum.

Observações

Use esta tarefa para implantar uma imagem de conjunto de escala de máquina virtual.

A execução do script é relatada como bem-sucedida, no entanto, as instâncias do VMSS não são atualizadas

Os conjuntos de dimensionamento têm uma política de atualização que determina como as VMs são atualizadas up-tocom o modelo de conjunto de escala mais recente e, se a política de atualização estiver definida como manual, você deverá atualizar manualmente cada VM. Para obter mais informações, consulte Como atualizar as VMs up-tocom o modelo de conjunto de escala mais recente. Você pode alterar a política de atualização ou atualizar manualmente cada VM. Por exemplo, para atualizar a política para Automatic, use o seguinte comando Az CLI: az vmss update --set upgradePolicy.mode=Automatic -g <resource group name> -n <vmss name>

Erro: 'Permissão negada: o script não é executável'

Esse problema ocorre se você tentar executar um script personalizado, mas o script não é executável.

Para resolver o problema, primeiro certifique-se de que a entrada customScript não tenha ./ ou qualquer outra coisa antes que o nome do script 'test.sh':

    customScript: 'test.sh'

Em seguida, tente adicionar uma tarefa de linha de comando antes da tarefa de dimensionamento da máquina virtual:

    - task: CmdLine@2
      inputs:
        script: 'chmod 777 $(System.DefaultWorkingDirectory)/test.sh' 

Configurar o RBAC do Azure para acessar o armazenamento do Azure

Esta versão da tarefa usa uma conexão de serviço do Azure Resource Manager configurada usando a federação de identidade de carga de trabalho e o RBAC do Azure para se conectar ao armazenamento do Azure em vez de chaves de conta de armazenamento ou assinaturas de acesso compartilhado (SAS). Para se conectar ao armazenamento do Azure a partir dessa tarefa, você deve atribuir a função de Colaborador de Dados de Blob de Armazenamento na conta de armazenamento à identidade da conexão de serviço configurada para azureSubscription.

Para obter mais informações, consulte Atribuir uma função do Azure para acesso a dados de blob e Etapas para atribuir uma função.

A AzureVmssDeployment@1 tarefa requer as seguintes funções RBAC adicionais configuradas para acessar a conta de armazenamento configurada no customScriptsStorageAccount.

Funções Recurso Utilizador
Colaborador ou Colaborador de Máquina Virtual Conjunto de Escalonamento de Máquinas Virtuais A identidade da conexão de serviço configurada para azureSubscription
Contribuidor de Dados de Armazenamento Blob Conta de armazenamento do Azure que contém o script personalizado A identidade da conexão de serviço configurada para azureSubscription
Leitor de Dados de Armazenamento Blob Conta de armazenamento do Azure que contém o script personalizado A Identidade Gerenciada Atribuída ao Sistema do Conjunto de Dimensionamento de Máquina Virtual

Acesso ao RBAC do Azure para acesso a scripts personalizados.

Requerimentos

Requisito Descrição
Tipos de pipeline YAML, Construção clássica, Versão clássica
Funciona em Agente, DeploymentGroup
Exigências Nenhum
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis configuráveis Qualquer
Versão do agente 2.209.0 ou superior
Categoria de tarefa Desplegar