Compartilhar via


AzureVmssDeployment@1 – Tarefa de implantação do conjunto de dimensionamento de VM do Azure v1

Implantar uma imagem do conjunto de dimensionamento de máquinas virtuais.

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.

Entradas

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

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


de Ação action -
string. Obrigatório Valores permitidos: Update image (atualizar conjunto de dimensionamento de VM usando uma imagem), Configure application startup (executar extensão de VM de script personalizado no conjunto de dimensionamento de VM). Valor padrão: Update image.

Escolha entre atualizar um conjunto de dimensionamento de VM 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 dimensionamento de VM somente quando ele foi criado usando uma imagem personalizada, a atualização falhará se o conjunto de dimensionamento 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 dimensionamento de VM criado usando imagem personalizada ou imagem de plataforma/galeria.


vmssName - nome do conjunto de dimensionamento de máquinas virtuais
string. Obrigatório

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


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

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


imageUrl - de URL de Imagem
string. Necessário quando action = Update image || action = UpdateImage.

Especifique a URL da imagem VHD. Se for uma URL de blob de armazenamento do Azure, o local da conta de armazenamento deverá ser o mesmo que o local do conjunto de dimensionamento.


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

Caminho para o diretório que contém scripts personalizados que serão executados usando a extensão de VM de Script Personalizado. 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 string de conexão de banco de dados.


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

O script que será executado usando a extensão de VM de Script Personalizado. Esse 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 do aplicativo Web.
2. install-secrets.sh --key-vault-type prod -key serviceprincipalkey criará um arquivo criptografado contendo a chave da entidade de serviço.


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

O script personalizado será invocado com argumentos passados. Variáveis de compilação/versão podem ser usadas, o que facilita o uso de segredos.


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

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


skipArchivingCustomScripts - Ignorar scripts personalizados de arquivamento
boolean. Valor padrão: false.

Por padrão, essa tarefa cria um arquivo compactado de diretório contendo scripts personalizados. Isso melhora o desempenho e a confiabilidade ao carregar no armazenamento do Azure. Se não estiver selecionado, o arquivamento não será feito e todos os arquivos serão carregados individualmente.


Opções de controle de tarefa

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

Variáveis de saída

Nenhum.

Observações

Use essa tarefa para implantar uma imagem do conjunto de dimensionamento de máquinas virtuais.

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 trazidas up-todata com o modelo de conjunto de dimensionamento mais recente e, se a política de atualização for definida como manual, você deverá atualizar manualmente cada VM. Para obter mais informações, consulte Como colocar as VMs up-to-date com o modelo de conjunto de dimensionamento 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 da CLI do Az: az vmss update --set upgradePolicy.mode=Automatic -g <resource group name> -n <vmss name>

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

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

Para resolver o problema, primeiro verifique se a entrada customScript não tem ./ 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 do conjunto de dimensionamento de máquinas virtuais:

    - 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 SAS (assinaturas de acesso compartilhado). Para se conectar ao armazenamento do Azure a partir dessa tarefa, você deve atribuir a função Colaborador de Dados do 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ção Recurso Utilizador
Colaborador ou Colaborador de Máquina Virtual Conjunto de dimensionamento de máquinas virtuais A identidade da conexão de serviço configurada para azureSubscription
Colaborador de Dados de Armazenamento de Blobs 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 Blob de Armazenamento Conta de armazenamento do Azure que contém o script personalizado A identidade gerenciada atribuída pelo sistema do conjunto de dimensionamento de máquinas virtuais

Acesso ao RBAC do Azure para acesso a scripts personalizados.

Requisitos

Requisito Descrição
Tipos de pipeline YAML, build clássico, versão clássica
Execuções em Agent, DeploymentGroup
de demandas Nenhum
recursos Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho.
restrições de comando Qualquer
variáveis settable Qualquer
Versão do agente 2.209.0 ou superior
Categoria de tarefa Implantar