Partilhar via


Tutorial: Implantar extensões de máquina virtual com modelos ARM

Aprenda a utilizar extensões de máquina virtual do Azure para fazer tarefas de automatização e configuração de pós-implementação em VMs do Azure. Estão disponíveis muitas VMs diferentes para utilização com as VMs do Azure. Neste tutorial, você implanta uma extensão de Script Personalizado de um modelo do Azure Resource Manager (modelo ARM) para executar um script do PowerShell em uma VM do Windows. O script instala o Servidor Web na VM.

Este tutorial abrange as seguintes tarefas:

  • Preparar o script do Powershell
  • Abrir um modelo de início rápido
  • Editar o modelo
  • Implementar o modelo

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Para concluir este artigo, precisa de:

  • Visual Studio Code com extensão Ferramentas do Resource Manager. Consulte Guia de início rápido: criar modelos ARM com o Visual Studio Code.

  • Para aumentar a segurança, utilize uma palavra-passe gerada para a conta de administrador da máquina virtual. Você pode usar o Azure Cloud Shell para executar o seguinte comando no PowerShell ou no Bash:

    openssl rand -base64 32
    

    Para saber mais, execute man openssl rand para abrir a página de manual.

    O Azure Key Vault foi criado para salvaguardar chaves criptográficos e outros segredos. Para obter mais informações, consulte Tutorial: Integrar o Azure Key Vault em sua implantação de modelo ARM. Também recomendamos que atualize a sua palavra-passe de três em três meses.

Preparar o script do Powershell

Você pode usar um script do PowerShell embutido ou um arquivo de script. Este tutorial mostra como usar um arquivo de script. Um script do PowerShell com o seguinte conteúdo é compartilhado do GitHub:

Install-WindowsFeature -Name Web-Server -IncludeManagementTools

Se você optar por publicar o arquivo em seu próprio local, atualize o fileUri elemento no modelo posteriormente no tutorial.

Abrir um modelo de início rápido

Os Modelos de Início Rápido do Azure são um repositório para modelos ARM. Em vez de criar um modelo do zero, pode encontrar um modelo de exemplo e personalizá-lo. O modelo utilizado neste tutorial é denominado Implementar uma VM do Windows simples.

  1. No Visual Studio Code, selecione File>Open File.

  2. Na caixa Nome do arquivo , cole o seguinte URL:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. Para abrir o arquivo, selecione Abrir. O modelo define cinco recursos:

  4. Salve uma cópia do arquivo no computador local com o nome azuredeploy.json selecionando Arquivo>Salvar como.

Editar o modelo

Adicione um recurso de extensão de máquina virtual ao modelo existente com o seguinte conteúdo:

{
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "apiVersion": "2021-04-01",
  "name": "[format('{0}/{1}', variables('vmName'), 'InstallWebServer')]",
  "location": "[parameters('location')]",
  "dependsOn": [
    "[format('Microsoft.Compute/virtualMachines/{0}',variables('vmName'))]"
  ],
  "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.7",
    "autoUpgradeMinorVersion": true,
    "settings": {
      "fileUris": [
        "https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/tutorial-vm-extension/installWebServer.ps1"
      ],
      "commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File installWebServer.ps1"
    }
  }
}

Para obter mais informações sobre essa definição de recurso, consulte a referência de extensão. Seguem alguns elementos importantes:

  • name: Como o recurso de extensão é um recurso filho do objeto de máquina virtual, o nome deve ter o prefixo do nome da máquina virtual. Consulte Definir nome e tipo para recursos filho.
  • dependsOn: Crie o recurso de extensão depois de criar a máquina virtual.
  • fileUris: Os locais onde os arquivos de script são armazenados. Se você optar por não usar o local fornecido, precisará atualizar os valores.
  • commandToExecute: Este comando invoca o script.

Para usar um script embutido, remova fileUrise atualize commandToExecute para:

powershell.exe Install-WindowsFeature -name Web-Server -IncludeManagementTools && powershell.exe remove-item 'C:\\inetpub\\wwwroot\\iisstart.htm' && powershell.exe Add-Content -Path 'C:\\inetpub\\wwwroot\\iisstart.htm' -Value $('Hello World from ' + $env:computername)

Este script embutido também atualiza o conteúdo iisstart.html.

Você também deve abrir a porta HTTP para que você possa acessar o servidor Web.

  1. Encontre securityRules no modelo.

  2. Adicione a seguinte regra ao lado de default-allow-3389.

    {
      "name": "AllowHTTPInBound",
      "properties": {
        "priority": 1010,
        "access": "Allow",
        "direction": "Inbound",
        "destinationPortRange": "80",
        "protocol": "Tcp",
        "sourcePortRange": "*",
        "sourceAddressPrefix": "*",
        "destinationAddressPrefix": "*"
      }
    }
    

Implementar o modelo

Para obter o procedimento de implantação, consulte a seção Implantar o modelo do Tutorial: Criar modelos ARM com recursos dependentes. Recomendamos que você use uma senha gerada para a conta de administrador da máquina virtual. Consulte a seção Pré-requisitos deste artigo.

No Cloud Shell, execute o seguinte comando para recuperar o endereço IP público da VM:

(Get-AzPublicIpAddress -ResourceGroupName $resourceGroupName).IpAddress

Cole o endereço IP em um navegador da Web. A página de boas-vindas padrão do IIS (Serviços de Informações da Internet) abre:

Captura de ecrã da página de boas-vindas dos Serviços de Informação Internet.

Clean up resources (Limpar recursos)

Quando não precisar mais dos recursos do Azure implantados, limpe-os excluindo o grupo de recursos.

  1. No portal do Azure, no painel esquerdo, selecione Grupo de recursos.
  2. Na caixa Filtrar por nome, insira o nome do grupo de recursos.
  3. Selecione o nome do grupo de recursos. Seis recursos são exibidos no grupo de recursos.
  4. No menu superior, selecione Excluir grupo de recursos.

Próximos passos

Neste tutorial, implementou uma máquina virtual e uma extensão de máquina virtual. A extensão instalou o servidor web dos IIS na máquina virtual. Para saber como usar a extensão do Banco de Dados SQL do Azure para importar um arquivo BACPAC, consulte: