Utilize extensões de máquinas virtuais e um modelo de Gestor de Recursos Azure para implementar scripts personalizados para servidores Azure Arc Linux e WindowsUse virtual machine extensions and an Azure Resource Manager template to deploy custom scripts to Azure Arc Linux and Windows servers

Este artigo fornece orientações sobre como executar scripts personalizados para servidores ativados do Azure Arc utilizando extensões de máquinas virtuais.This article provides guidance on how to execute custom scripts to Azure Arc enabled servers by using virtual machine extensions. As extensões de máquinas virtuais são pequenas aplicações que fornecem tarefas de configuração e automatização pós-implantação, tais como instalação de software, proteção antivírus ou um mecanismo para executar um script personalizado.Virtual machine extensions are small applications that provide post-deployment configuration and automation tasks such as software installation, anti-virus protection, or a mechanism to run a custom script.

Pode utilizar o portal Azure, Azure CLI, um modelo de Gestor de Recursos Azure (modelo ARM), script de concha PowerShell ou Linux, ou políticas de Azure para gerir a implementação da extensão para servidores ativados do Arco Azure.You can use the Azure portal, Azure CLI, an Azure Resource Manager template (ARM template), PowerShell or Linux shell script, or Azure policies to manage the extension deployment to Azure Arc enabled servers. Nos seguintes procedimentos, utilizará um modelo ARM para implementar a extensão de script personalizada.In the following procedures, you'll use an ARM template to deploy the custom script extension. Esta extensão descarrega e executa scripts em máquinas virtuais.This extension downloads and executes scripts on virtual machines. É útil para configuração de pós-implementação, instalação de software ou qualquer outra configuração ou tarefas de gestão.It's useful for post deployment configuration, software installation, or any other configuration or management tasks.

Importante

Os procedimentos neste artigo pressupõe que já implementou VMs, ou servidores que estão a funcionar no local ou em outras nuvens, e que os ligou ao Arco de Azure. Se não o fez, as seguintes informações podem ajudá-lo a automatizar isto.The procedures in this article assumes you've already deployed VMs, or servers that are running on-premises or on other clouds, and you have connected them to Azure Arc. If you haven't, the following information can help you automate this.

Pré-requisitosPrerequisites

  1. Clone o repositório Azure Arc Jumpstart.Clone the Azure Arc Jumpstart repository.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Como mencionado anteriormente, este guia começa no ponto onde já implementou e ligou VMs ou servidores ao Azure Arc. As imagens que se seguem mostram um servidor GCP que foi ligado ao Arco Azure e é visível como um recurso em Azure.As mentioned previously, this guide starts at the point where you already deployed and connected VMs or servers to Azure Arc. The following screenshots show a GCP server that's been connected with Azure Arc and is visible as a resource in Azure.

    Uma imagem de um grupo de recursos de um servidor ativado pelo Azure Arc.

    Uma imagem de um estado ligado a partir de um servidor ativado pelo Arco Azure.

  3. Instale ou atualize o Azure CLI.Install or update Azure CLI. O Azure CLI deve estar a executar a versão 2.7 ou mais tarde.Azure CLI should be running version 2.7 or later. Utilize az --version para verificar a sua versão instalada atual.Use az --version to check your current installed version.

  4. Criar um diretor de serviço Azure.Create an Azure service principal.

    Para ligar um servidor VM ou de metal nu ao Azure Arc, é necessário um responsável de serviço Azure atribuído à função Contribuinte.To connect a VM or bare-metal server to Azure Arc, an Azure service principal assigned with the Contributor role is required. Para criá-lo, inscreva-se na sua conta Azure e execute o seguinte comando.To create it, sign in to your Azure account and run the following command. Também pode executar este comando em Azure Cloud Shell.You can also run this command in Azure Cloud Shell.

    az login
    az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor
    

    Por exemplo:For example:

    az ad sp create-for-rbac -n "http://AzureArcServers" --role contributor
    

    A saída deve ser assim:Output should look like this:

    {
      "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "displayName": "AzureArcServers",
      "name": "http://AzureArcServers",
      "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    }
    

Nota

Recomendamos vivamente que se encate o principal do serviço a um grupo específico de subscrição e recursos da Azure.We highly recommend that you scope the service principal to a specific Azure subscription and resource group.

Para demonstrar a extensão de script personalizado, utilize os scripts abaixo do Linux e do Windows.To demonstrate the custom script extension, use the below Linux and Windows scripts.

  • Linux: O script modificará a mensagem do dia no sistema operativo.Linux: The script will modify the message of the day on the operating system.
  • Windows: O script instalará pacotes windows terminal, Microsoft Edge, 7-Zip e Visual Studio Code Chocolatey no VM.Windows: The script will install Windows Terminal, Microsoft Edge, 7-Zip, and Visual Studio Code Chocolatey packages on the VM.

Azure Arc ativou a implementação de extensão de script personalizada dos servidoresAzure Arc enabled servers custom script extension deployment

  1. Editar o ficheiro de parâmetros de extensões para Windows ou LinuxEdit the extensions parameters file for Windows or Linux

    Uma imagem de um ficheiro de parâmetros do modelo ARM.

  2. Forneça as seguintes informações para corresponder à configuração do seu ambiente:Provide the following information to match your environment configuration:

    • O nome VM registado em Azure Arc.The VM name as registered in Azure Arc.

    Uma imagem de um nome de máquina de um servidor ativado pelo Azure Arc.

    • A localização do grupo de recursos onde registou o servidor ativado pelo Arco Azure.The location of the resource group where you registered the Azure Arc enabled server.

    Uma imagem de uma região de Azure.

    • Um URI público para o script que gostaria de executar nos servidores, neste caso use o URL para o script em formato cru.A public URI for the script that you would like to run on the servers, in this case use the URL for the script in raw format.
  3. Para executar qualquer um dos scripts, utilize os seguintes comandos:To run either script, use the following commands:

    • Windows:Windows:

      powershell -ExecutionPolicy Unrestricted -File custom_script_windows.ps1
      
    • Linux:Linux:

      ./custom_script_linux.sh
      
  4. Para implementar o modelo ARM para Linux ou Windows, navegue na pasta de implantação e execute o seguinte comando com os modelos que correspondem ao seu sistema operativo:To deploy the ARM template for Linux or Windows, navigate to the deployment folder and run the following command with the templates that match your operating system:

    az deployment group create --resource-group <Name of the Azure resource group> \
    --template-file <The `customscript-template.json` template file location for Linux or Windows> \
    --parameters <The `customscript-template.parameters.json` template file location>
    
  5. Depois de concluída a implementação do modelo, deverá ver uma saída da seguinte forma:After the template deployment has completed it's run, you should see an output as follows:

    Uma imagem de uma saída de um modelo ARM.

  6. Verifique uma implementação bem sucedida no servidor ativado do Arco Azure, no portal Azure, selecionando as definições de Extensões.Verify a successful deployment on the Azure Arc enabled server, in the Azure portal, by selecting Extensions settings. Deve ver a extensão do script personalizada instalada.You should see the custom script extension installed.

    Uma imagem de uma extensão de script personalizada.

Outra forma de verificar o sucesso da execução do script personalizado é conectando-se aos VMs e verificando se o sistema operativo foi configurado.Another way to verify successful custom script execution is by connecting to the VMs and verifying that the operating system has been configured.

  • Para o Linux VM, utilize o SSH para ligar o VM e confira a mensagem do dia que foi personalizada pelo script:For the Linux VM, use SSH to connect the VM and check out the message of the day which was customized by the script:

    Uma imagem de uma mensagem diária atualizada.

  • Ligue-se ao Windows VM via RDP e verifique se o software adicional foi instalado: Microsoft Edge, 7-zip e Visual Studio Code.Connect to the Windows VM via RDP and verify that the additional software has been installed: Microsoft Edge, 7-zip, and Visual Studio Code.

    Uma imagem de software adicional instalada.

Limpe o seu ambienteClean up your environment

Complete os seguintes passos para limpar o seu ambiente.Complete the following steps to clean up your environment.

Retire as máquinas virtuais de cada ambiente seguindo as instruções de demolição de cada guia.Remove the virtual machines from each environment by following the teardown instructions from each guide.