Creación y administración de máquinas virtuales con DevTest Labs mediante la CLI de Azure

Este inicio rápido le ayudará a crear, iniciar, actualizar y limpiar una máquina de desarrollo en el laboratorio, así como conectarse a ella.

Antes de empezar:

Creación y comprobación de la máquina virtual

Antes de ejecutar los comandos relacionados de DevTest Labs, establezca el contexto de Azure adecuado mediante el comando az account set:

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

El comando para crear una máquina virtual es az lab vm create. Solo se necesita el grupo de recursos para el laboratorio, el nombre del laboratorio y el nombre de la máquina virtual. El resto de los argumentos cambian según el tipo de máquina virtual.

El siguiente comando crea una imagen basada en Windows desde Azure Marketplace. El nombre de la imagen es el mismo que vería al crear una máquina virtual mediante Azure Portal.

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

El siguiente comando crea una máquina virtual basada en una imagen personalizada disponible en el laboratorio:

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

El argumento image-type ha cambiado de gallery a custom. El nombre de la imagen coincide con lo que se ve si fuera a crear la máquina virtual en Azure Portal.

El siguiente comando crea una máquina virtual desde una imagen de Marketplace mediante autenticación 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 

También puede crear máquinas virtuales basadas en las fórmulas estableciendo el parámetro image-type en formula. Si tiene que elegir una red virtual específica para la máquina virtual, use los parámetros vnet-name y subnet. Para obtener más información, consulteaz lab vm create.

Compruebe que la máquina virtual esté disponible.

Use el comando az lab vm show para comprobar que la máquina virtual está disponible antes de iniciarla y conectarse a ella.

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

Inicio y conexión a la máquina virtual

El siguiente comando de ejemplo inicia una máquina virtual:

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

Conéctese a una máquina virtual: SSH o Escritorio remoto.

ssh userName@ipAddressOrfqdn 

Actualización de la máquina virtual

El siguiente comando de ejemplo aplica artefactos a una máquina virtual:

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

Enumeración de los artefactos disponibles en el laboratorio

Para enumerar los artefactos disponibles en una máquina virtual de un laboratorio, ejecute los siguientes comandos.

Cloud Shell - PowerShell: observe el uso del acento grave (`) delante de $ en $expand (por ejemplo, `$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 el uso del carácter de barra (\) delante de $ en el comando.

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

Salida del ejemplo:

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

Detención y eliminación de la máquina virtual

El siguiente comando de ejemplo detiene una máquina virtual.

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

Elimine una máquina virtual.

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

Pasos siguientes

Consulte el siguiente contenido: Documentación de la CLI de Azure para Azure DevTest Labs.