Implemente uma instância local do Servidor do Windows hospedada por Vagrant e conecte-o ao Arco de AzureDeploy a local Windows Server instance hosted by Vagrant and connect it to Azure Arc

O seguinte artigo fornece orientações para a implementação de uma máquina virtual local do Windows 10 utilizando vagrant e conectá-la como um recurso de servidor ativado pelo Azure Arc.The following article provides guidance for deploying a local Windows 10 virtual machine using Vagrant and connect it as an Azure Arc enabled server resource.

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. Instale ou atualize o CLI do Azure para a versão 2.7 e superior.Install or update Azure CLI to version 2.7 and above. Utilize o seguinte comando para verificar a sua versão instalada atual.Use the following command to check your current installed version.

    az --version
    
  3. Vagrant depende de um hipervisor subjacente.Vagrant relies on an underlying hypervisor. Para este guia, estaremos a utilizar a Oracle VM VirtualBox.For this guide, we will be using Oracle VM VirtualBox.

    1. Instalar VirtualBox.Install VirtualBox.

      • Se é utilizador de macOS, corra brew cask install virtualboxIf you are an macOS user, run brew cask install virtualbox
      • Se você é um utilizador do Windows, você pode usar o pacote ChocolateyIf you are a Windows user, you can use the Chocolatey package
      • Se você é um utilizador Linux, todos os métodos de instalação de pacotes podem ser encontrados aquiIf you are a Linux user, all package installation methods can be found here
    2. Instalar VagrantInstall Vagrant

      • Se é utilizador de macOS, corra brew cask install vagrantIf you are an macOS user, run brew cask install vagrant
      • Se você é um utilizador do Windows, você pode usar o pacote ChocolateyIf you are a Windows user, you can use the Chocolatey package
      • Se você é um utilizador Linux, olhe aquiIf you are a Linux user, look here
  4. Criar um diretor de serviço Azure.Create an Azure service principal.

    Para ligar a máquina virtual Vagrant ao Azure Arc, é necessário um responsável de serviço Azure atribuído à função Contribuinte.To connect the Vagrant virtual machine 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.

  • O vagrantfil executa um script no VM OS para instalar todos os artefactos necessários e injetar variáveis ambientais.The vagrantfile executes a script on the VM OS to install all the needed artifacts and to inject environment variables. Edite o scripts/vars.ps1 script PowerShell para corresponder ao principal do serviço Azure que criou.Edit the scripts/vars.ps1 PowerShell script to match the Azure service principal you created.

    • subscriptionId = O seu ID de assinatura AzuresubscriptionId = Your Azure subscription ID
    • appId = O nome principal do seu serviço AzureappId = Your Azure service principal name
    • password = A sua senha principal de serviço Azurepassword = Your Azure service principal password
    • tenantId = A sua ID do seu inquilino azultenantId = Your Azure tenant ID
    • resourceGroup = Nome do grupo de recursos AzureresourceGroup = Azure resource group name
    • location = Região azullocation = Azure region

ImplementaçãoDeployment

Como qualquer desdobramento de Vagrant, um vagrantfil e uma caixa vagrant são necessários.Like any Vagrant deployment, a vagrantfile and a Vagrant box is needed. A um nível elevado, a implantação:At a high level, the deployment will:

  • Descarregue a caixa vagrant de ficheiro de imagem do Windows 10Download the Windows 10 image file Vagrant box
  • Execute o script de instalação do Arco AzureExecute the Azure Arc installation script

Depois de editar o scripts/vars.ps1 script para combinar com o seu ambiente, a partir da Vagrantfile pasta, corra vagrant up .After editing the scripts/vars.ps1 script to match your environment, from the Vagrantfile folder, run vagrant up. Como esta é a primeira vez que está a criar o VM, a primeira corrida será muito mais lenta do que as que se seguem.As this is the first time you are creating the VM, the first run will be much slower than the ones to follow. Isto porque a implementação está a descarregar pela primeira vez a caixa do Windows 10.This is because the deployment is downloading the Windows 10 box for the first time.

Uma imagem de execução do comando 'vagabundo'.

Uma vez que o download esteja concluído, o provisionamento real começará.Once the download is complete, the actual provisioning will start. Como mostrado na imagem seguinte, o processo pode demorar entre 7 a 10 minutos.As shown in the following screenshot, the process takes can take somewhere between 7 to 10 minutes.

Uma imagem de um comando completo de "vagabundo".

Após a conclusão, terá um Windows 10 VM local implantado, ligado como um novo servidor Azure Arc ativado dentro de um novo grupo de recursos.Upon completion, you will have a local Windows 10 VM deployed, connected as a new Azure Arc enabled server inside a new resource group.

Uma imagem de um servidor ativado pelo Azure Arc no portal Azure.

Uma imagem dos detalhes de um servidor ativado pelo Azure Arc no portal Azure.

Implantação semi-automatizada (opcional)Semi-automated deployment (optional)

O último passo da execução é registar o VM como um novo recurso de servidor ativado pelo Azure Arc.The last step of the run is to register the VM as a new Azure Arc enabled server resource.

Outra imagem de um comando completo de "vagabundo".

Se pretender despromupro/controlar o processo de registo real, faça o seguinte:If you want to demo/control the actual registration process, do the following:

  1. No install_arc_agent script PowerShell, comente a run connect command secção e guarde o ficheiro.In the install_arc_agent PowerShell script, comment out the run connect command section and save the file. Também pode comentar ou alterar a criação do grupo de recursos.You can also comment out or change the creation of the resource group.

    Uma imagem do script PowerShell 'install_arc_agent'.

    Uma imagem do comando 'az group create'.

  2. RDP o VM utilizando o vagrant rdp comando.RDP the VM using the vagrant rdp command. Use vagrant/vagrant como nome de utilizador/palavra-passe.Use vagrant/vagrant as the username/password.

    Uma imagem de acesso a um servidor Vagrant com o Protocolo de Ambiente de Trabalho Remoto da Microsoft.

  3. Abra o PowerShell ISE como Administrador e edite o C:\runtime\vars.ps1 ficheiro com as variáveis ambientais.Open PowerShell ISE as Administrator and edit the C:\runtime\vars.ps1 file with your environment variables.

    Uma imagem do Windows PowerShell ISE.

  4. Cole o Invoke-Expression "C:\runtime\vars.ps1" comando, o az group create --location $env:location --name $env:resourceGroup --subscription $env:subscriptionId comando e o mesmo azcmagent connect ordená-lo e executar o guião.Paste the Invoke-Expression "C:\runtime\vars.ps1" command, the az group create --location $env:location --name $env:resourceGroup --subscription $env:subscriptionId command and the same azcmagent connect command you out and execute the script.

    Uma imagem do PowerShell ISE a executar um script.

Eliminar a implantaçãoDelete the deployment

Para eliminar toda a implantação, executar o vagrant destroy -f comando.To delete the entire deployment, run the vagrant destroy -f command. O vagrantfil inclui um before: destroy gatilho Vagrant que executa o comando para eliminar o grupo de recursos Azure antes de destruir o VM real.The vagrantfile includes a before: destroy Vagrant trigger that runs the command to delete the Azure resource group before destroying the actual VM.

Uma imagem do comando "vagar destruir".