Condividi tramite


Distribuire un'istanza di Windows Server locale ospitata da Vagrant e connetterla a Azure Arc

L'articolo seguente fornisce indicazioni per la distribuzione di una macchina virtuale Windows 10 locale usando Vagrant e la connette come risorsa server abilitata per Azure Arc.

Prerequisiti

  1. Clonare il repository delle risorse introduttive per Azure Arc.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Installare l'interfaccia della riga di comando di Azure 2.7 e successive o eseguirne l'aggiornamento a tale versione. Usare il comando seguente per verificare l'attuale versione installata.

    az --version
    
  3. Vagrant è basato su un hypervisor sottostante. Per questa guida si usa Oracle VM VirtualBox.

    1. Installare VirtualBox.

      • Se si è un utente macOS, eseguire brew cask install virtualbox
      • Se sei un utente di Windows, puoi usare il pacchetto Chocolatey
      • Se si è un utente Linux, tutti i metodi di installazione dei pacchetti sono disponibili in Download VirtualBox per gli host Linux.
    2. Installare Vagrant

      • Se si è un utente macOS, eseguire brew cask install vagrant
      • Se sei un utente di Windows, puoi usare il pacchetto Chocolatey
      • Se si è un utente Linux, visitare la pagina di download di Vagrant.
  4. Creare un'entità servizio di Azure.

    Per connettere la macchina virtuale Vagrant ad Azure Arc, è necessario disporre di un'entità servizio di Azure assegnata con il ruolo Collaboratore. Per crearla, accedere al proprio account Azure ed eseguire il comando seguente. È possibile eseguire il comando anche in 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>"
    

    Ad esempio:

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

    L'output dovrebbe essere simile al seguente:

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

    Nota

    È consigliabile impostare l'ambito dell'entità servizio su una sottoscrizione e un gruppo di risorse di Azure specifici.

  • Il file di Vagrant esegue uno script nel sistema operativo della macchina virtuale per installare tutti gli elementi necessari e inserire le variabili di ambiente. Modificare lo script di PowerShell scripts/vars.ps1 in modo che corrisponda all'entità servizio di Azure creata.

    • subscriptionId = ID sottoscrizione di Azure
    • appId = nome dell'entità servizio di Azure
    • password = password dell'entità servizio di Azure
    • tenantId = ID tenant di Azure
    • resourceGroup = nome del gruppo di risorse di Azure
    • location = area di Azure

Distribuzione

Come qualsiasi distribuzione di Vagrant, sono necessari un file vagrantfile e un pacchetto Vagrant box. A livello generale, la distribuzione:

  • Scarica il file di immagine di Windows10 di Vagrant box
  • Esegue lo script di installazione di Azure Arc

Dopo aver modificato lo script scripts/vars.ps1 affinché corrisponda all'ambiente, eseguire vagrant up dalla cartella Vagrantfile. Poiché questa è la prima volta che si crea la macchina virtuale, la prima esecuzione sarà molto più lenta di quelle successive. Questo perché la distribuzione sta scaricando la box di Windows 10 per la prima volta.

A screenshot of running the vagrant up command.

Al termine del download, viene avviato il provisioning effettivo. Come illustrato nello screenshot seguente, il processo richiede da 7 a 10 minuti.

A screenshot of a completed vagrant up command.

Nota

Se viene visualizzato un errore relativo al controllo della revoca per il certificato, aggiungere questa configurazione a Vagrantfile:

config.vm.box_download_insecure = true

Al termine, si avrà una macchina virtuale Windows 10 locale distribuita, connessa come nuovo server abilitato per Azure Arc all'interno di un nuovo gruppo di risorse.

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.

Distribuzione semi-automatizzata (facoltativo)

L'ultimo passaggio dell'esecuzione consiste nel registrare la macchina virtuale come nuova risorsa del server abilitata per Azure Arc.

Another screenshot of a completed vagrant up command.

Se si vuole dimostrare/controllare il processo di registrazione effettivo, procedere come segue:

  1. Nel modello di script install_arc_agent di PowerShell impostare come commento la sezione run connect command e salvare il file. È anche possibile impostare come commento o modificare la creazione del gruppo di risorse.

    A screenshot of the install_arc_agent PowerShell script.

    A screenshot of the az group create command.

  2. Collegare la macchina virtuale con RDP usando il comando vagrant rdp. Usare vagrant/vagrant come nome utente/password.

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

  3. Aprire PowerShell ISE come amministratore e modificare il file C:\runtime\vars.ps1 con le variabili di ambiente.

    A screenshot of Windows PowerShell ISE.

  4. Incollare il comando Invoke-Expression C:\runtime\vars.ps1, il comando az group create --location $env:location --name $env:resourceGroup --subscription $env:subscriptionId e lo stesso comando azcmagent connect ed eseguire lo script.

    A screenshot of PowerShell ISE running a script.

Eliminare la distribuzione

Per eliminare l'intera distribuzione, eseguire il comando vagrant destroy -f. Il file vagrantfile include un trigger before: destroy di Vagrant che esegue il comando per eliminare il gruppo di risorse di Azure prima di eliminare definitivamente la macchina virtuale effettiva.

A screenshot of the vagrant destroy command.