Criar e gerenciar máquinas virtuais com DevTest Labs usando a CLI do Azure

Este guia rápido ajudará você a criar, iniciar, conectar, atualizar e limpar um computador de desenvolvimento em seu laboratório.

Antes de começar:

  • Se um laboratório não tiver sido criado, as instruções poderão ser encontradas aqui.

  • Instale a CLI do Azure. Para iniciar, execute az login para criar uma conexão com o Azure.

Criar e verificar a máquina virtual

Antes de executar os comandos relacionados ao DevTest Labs, defina o contexto do Azure apropriado usando o az account set comando:

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

O comando para criar uma máquina virtual é: az lab vm create. O grupo de recursos para o laboratório, o nome do laboratório e o nome da máquina virtual são todos necessários. O restante dos argumentos muda dependendo do tipo de máquina virtual.

O comando a seguir cria uma imagem baseada no Windows do Azure Market Place. O nome da imagem é o mesmo que você veria ao criar uma máquina virtual usando o portal do 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!'

O comando a seguir cria uma máquina virtual com base em uma imagem personalizada disponível no laboratório:

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!'

O argumento de tipo de imagem foi alterado de galeria para personalizado. O nome da imagem corresponde ao que você veria se criasse a máquina virtual no portal do Azure.

O comando a seguir cria uma VM de uma imagem do Marketplace com uma autenticação 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 

Você também pode criar máquinas virtuais com base em fórmulas definindo o parâmetro de tipo de imagem como fórmula. Se você precisar escolher uma rede virtual específica para a sua máquina virtual, use os parâmetros vnet-name e subnet. Para obter mais informações, confira az lab vm create.

Verifique se a VM está disponível.

Use o az lab vm show comando para verificar se a VM está disponível antes de iniciar e conectar-se a ela.

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"
}

Iniciar e conectar-se à máquina virtual

O comando de exemplo a seguir inicia uma VM:

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

Conectar-se a uma VM: SSH ou Área de Trabalho Remota.

ssh userName@ipAddressOrfqdn 

Atualizar a máquina virtual

O comando de exemplo a seguir aplica artefatos a uma VM:

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": ""
      }
    ]
  } 
]

Lista de artefatos disponíveis no laboratório

Para listar os artefatos disponíveis em uma VM em um laboratório, execute os comandos a seguir.

Cloud Shell - PowerShell: observe o uso de acento grave (`) antes de $ em $expand (ou seja, `$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: observe o uso do caractere de barra (\) na frente de $ no comando.

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

Saída de exemplo:

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

Parar e excluir a máquina virtual

O comando de exemplo a seguir interrompe uma VM.

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

Exclua uma VM.

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

Próximas etapas

Consulte o conteúdo: Documentação da CLI do Azure para Azure DevTest Labs.