Creare e gestire macchine virtuali con DevTest Labs tramite l'interfaccia della riga di comando di Azure

Questa guida introduttiva illustra la creazione, l'avvio, la connessione, l'aggiornamento e la pulizia di un computer di sviluppo nel lab.

Prima di iniziare:

Creare e verificare la macchina virtuale

Prima di eseguire i comandi correlati a DevTest Labs, impostare il contesto di Azure appropriato usando il az account set comando:

az account set --subscription 11111111-1111-1111-1111-111111111111

Il comando per creare una macchina virtuale è: az lab vm create. Il gruppo di risorse per il lab, il nome del lab e il nome della macchina virtuale sono tutti necessari. Il resto degli argomenti cambia a seconda del tipo di macchina virtuale.

Il comando seguente crea un'immagine basata su Windows da Azure Market Place. Il nome dell'immagine è uguale a quello visualizzato quando si crea una macchina virtuale usando il portale di Azure.

az lab vm create --resource-group DtlResourceGroup --lab-name MyLab --name 'MyTestVm' --image "Visual Studio Community 2017 on Windows Server 2016 (x64)" --image-type gallery --size 'Standard_D2s_v3' --admin-username 'AdminUser' --admin-password 'Password1!'

Il comando seguente crea una macchina virtuale in base a un'immagine personalizzata disponibile nel lab:

az lab vm create --resource-group DtlResourceGroup --lab-name MyLab --name 'MyTestVm' --image "My Custom Image" --image-type custom --size 'Standard_D2s_v3' --admin-username 'AdminUser' --admin-password 'Password1!'

L'argomento del tipo di immagine è cambiato dalla raccolta alla personalizzata. Il nome dell'immagine corrisponde a ciò che viene visualizzato se si desidera creare la macchina virtuale nel portale di Azure.

Il comando seguente crea una macchina virtuale da un'immagine del marketplace con l'autenticazione ssh:

az lab vm create --lab-name sampleLabName --resource-group sampleLabResourceGroup --name sampleVMName --image "Ubuntu Server 16.04 LTS" --image-type gallery --size Standard_DS1_v2 --authentication-type  ssh --generate-ssh-keys --ip-configuration public 

È anche possibile creare macchine virtuali in base alle formule impostando il parametro del tipo di immagine su formula. Se è necessario scegliere una rete virtuale specifica per la macchina virtuale, usare i parametri vnet-name e subnet . Per altre informazioni, vedere az lab vm create.

Verificare che la VM sia disponibile.

Usare il az lab vm show comando per verificare che la macchina virtuale sia disponibile prima di avviare e connettersi.

az lab vm show --lab-name sampleLabName --name sampleVMName --resource-group sampleResourceGroup --expand 'properties($expand=ComputeVm,NetworkInterface)' --query '{status: computeVm.statuses[0].displayStatus, fqdn: fqdn, ipAddress: networkInterface.publicIpAddress}'
{
  "fqdn": "lisalabvm.southcentralus.cloudapp.azure.com",
  "ipAddress": "13.85.228.112",
  "status": "Provisioning succeeded"
}

Avviare e connettersi alla macchina virtuale

Il comando di esempio seguente avvia una macchina virtuale:

az lab vm start --lab-name sampleLabName --name sampleVMName --resource-group sampleLabResourceGroup

Connettersi a una VM: SSH o Desktop remoto.

ssh userName@ipAddressOrfqdn 

Aggiornare la macchina virtuale

Il comando di esempio seguente applica elementi a una macchina virtuale:

az lab vm apply-artifacts --lab-name  sampleLabName --name sampleVMName  --resource-group sampleResourceGroup  --artifacts @/artifacts.json
[
  {
    "artifactId": "/artifactSources/public repo/artifacts/linux-java",
    "parameters": []
  },
  {
    "artifactId": "/artifactSources/public repo/artifacts/linux-install-nodejs",
    "parameters": []
  },
  {
    "artifactId": "/artifactSources/public repo/artifacts/linux-apt-package",
    "parameters": [
      {
        "name": "packages",
        "value": "abcd"
      },
      {
        "name": "update",
        "value": "true"
      },
      {
        "name": "options",
        "value": ""
      }
    ]
  } 
]

Elencare gli artefatti disponibili nel lab

Per elencare gli artefatti disponibili in una macchina virtuale in un lab, eseguire i comandi seguenti.

Cloud Shell - PowerShell: si noti l'uso del backtick (') prima di $ in $expand (ad esempio '$expand):

az lab vm show --resource-group <resourcegroupname> --lab-name <labname> --name <vmname> --expand "properties(`$expand=artifacts)" --query "artifacts[].{artifactId: artifactId, status: status}"

Cloud Shell - Bash: si noti l'uso del carattere barra (\) davanti a $ nel comando.

az lab vm show --resource-group <resourcegroupname> --lab-name <labname> --name <vmname> --expand "properties(\$expand=artifacts)" --query "artifacts[].{artifactId: artifactId, status: status}"

Output di esempio:

[
  {
    "artifactId": "/subscriptions/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.DevTestLab/labs/<lab name>/artifactSources/public repo/artifacts/windows-7zip",
    "status": "Succeeded"
  }
]

Arrestare ed eliminare la macchina virtuale

Il comando di esempio seguente arresta una macchina virtuale.

az lab vm stop --lab-name sampleLabName --name sampleVMName --resource-group sampleResourceGroup

Eliminare una VM.

az lab vm delete --lab-name sampleLabName --name sampleVMName --resource-group sampleResourceGroup

Passaggi successivi

Vedere il contenuto seguente: documentazione dell'interfaccia della riga di comando di Azure per Azure DevTest Labs.