Implantar uma instância local do Windows Server hospedada pelo Vagrant e conectá-la ao Azure Arc

O artigo a seguir fornece orientação para implantar uma máquina virtual local do Windows 10 usando o Vagrant e a conecta como um recurso de servidor habilitado para Azure Arc.

Pré-requisitos

  1. Clone o repositório do Azure Arc Jumpstart.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Instale ou atualize a CLI do Azure para a versão 2.7 e superior. Use o seguinte comando para verificar sua versão instalada atual.

    az --version
    
  3. O Vagrant depende de um hipervisor subjacente. Para este guia, estamos usando o Oracle VM VirtualBox.

    1. Instale o VirtualBox.

      • Se você for um usuário do macOS, execute brew cask install virtualbox
      • Se você é um usuário do Windows, você pode usar o pacote Chocolatey
      • Se você é um usuário Linux, todos os métodos de instalação de pacotes podem ser encontrados em Download VirtualBox para hosts Linux.
    2. Instalar o Vagrant

      • Se você for um usuário do macOS, execute brew cask install vagrant
      • Se você é um usuário do Windows, você pode usar o pacote Chocolatey
      • Se você é um usuário do Linux, visite a página de download do Vagrant.
  4. Crie uma entidade de serviço do Azure.

    Para conectar a máquina virtual Vagrant ao Azure Arc, é necessária uma entidade de serviço do Azure atribuída com a função de Colaborador. Para criá-lo, entre em sua conta do Azure e execute o seguinte comando. Você também pode executar esse comando no Azure Cloud Shell.

    az login
    az account set -s <Your Subscription ID>
    az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor --scopes "/subscriptions/<Your Subscription ID>"
    

    Por exemplo:

    az ad sp create-for-rbac -n "http://AzureArcServers" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    A saída deverá ter o seguinte aspeto:

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

    Nota

    É altamente recomendável que você defina o escopo da entidade de serviço para uma assinatura específica do Azure e um grupo de recursos.

  • O vagrantfile executa um script no VM OS para instalar todos os artefatos necessários e injetar variáveis de ambiente. Edite o scripts/vars.ps1 script do PowerShell para corresponder à entidade de serviço do Azure que você criou.

    • subscriptionId = sua ID de assinatura do Azure
    • appId = seu nome principal de serviço do Azure
    • password = sua senha principal de serviço do Azure
    • tenantId = sua ID de locatário do Azure
    • resourceGroup = Nome do grupo de recursos do Azure
    • location = região do Azure

Implementação

Como qualquer implantação do Vagrant, um vagrantfile e uma caixa Vagrant são necessários. A um nível elevado, a implantação:

  • Baixe a caixa Vagrant do arquivo de imagem do Windows 10
  • Executar o script de instalação do Azure Arc

Depois de editar o scripts/vars.ps1 script para corresponder ao seu ambiente, a Vagrantfile partir da pasta, execute vagrant up. Como esta é a primeira vez que você está criando a VM, a primeira execução será muito mais lenta do que as seguintes. Isso ocorre porque a implantação está baixando a caixa do Windows 10 pela primeira vez.

A screenshot of running the vagrant up command.

Quando o download estiver concluído, o provisionamento real será iniciado. Como mostrado na captura de tela a seguir, o processo leva entre 7 a 10 minutos.

A screenshot of a completed vagrant up command.

Nota

Se você vir um erro sobre a revogação de verificação do certificado, adicione esta configuração a Vagrantfile:

config.vm.box_download_insecure = true

Após a conclusão, você terá uma VM local do Windows 10 implantada, conectada como um novo servidor habilitado para Azure Arc dentro de um novo grupo de recursos.

A screenshot of an Azure Arc-enabled server in the Azure portal.

A screenshot of the details from an Azure Arc-enabled server in the Azure portal.

Implantação semiautomatizada (opcional)

A última etapa da execução é registrar a VM como um novo recurso de servidor habilitado para Azure Arc.

Another screenshot of a completed vagrant up command.

Se você quiser demonstrar/controlar o processo de registro real, faça o seguinte:

  1. install_arc_agent No script do PowerShell, comente a run connect command seção e salve o arquivo. Você também pode comentar ou alterar a criação do grupo de recursos.

    A screenshot of the install_arc_agent PowerShell script.

    A screenshot of the az group create command.

  2. RDP a VM usando o vagrant rdp comando. Use vagrant/vagrant como nome de usuário/senha.

    A screenshot of accessing a Vagrant server with the Microsoft Remote Desktop Protocol.

  3. Abra o ISE do PowerShell como Administrador e edite o arquivo com suas variáveis de C:\runtime\vars.ps1 ambiente.

    A screenshot of Windows PowerShell ISE.

  4. Cole o comando, o comando e o mesmo azcmagent connect comando que você e execute o Invoke-Expression C:\runtime\vars.ps1az group create --location $env:location --name $env:resourceGroup --subscription $env:subscriptionId script.

    A screenshot of PowerShell ISE running a script.

Excluir a implantação

Para excluir toda a implantação, execute o vagrant destroy -f comando. O vagrantfile inclui um before: destroy gatilho Vagrant que executa o comando para excluir o grupo de recursos do Azure antes de destruir a VM real.

A screenshot of the vagrant destroy command.