Создание виртуальных машин и управление ими с DevTest Labs с использованием Azure CLI

В этом кратком руководстве рассказывается, как создавать, запускать, подключать, обновлять и очищать компьютеры разработчиков в лаборатории.

Перед началом работы

  • Если лаборатория еще не создана, ознакомьтесь с инструкциями в этой статье.

  • Установка Azure CLI. Перед началом выполните команду az login, чтобы создать подключение к Azure.

Создание и проверка виртуальной машины

Прежде чем выполнять команды, связанные с DevTest Labs, настройте соответствующий контекст Azure с помощью команды az account set:

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

Команда для создания виртуальной машины: az lab vm create. Группа ресурсов для лаборатории, название лаборатории и название виртуальной машины — обязательные аргументы. Перечень остальных аргументов зависит от типа виртуальной машины.

Приведенная ниже команда создает образ на основе ОС Windows из Azure Market. Имя образа совпадает с именем, которое отображается при создании виртуальной машины с помощью портала 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!'

Приведенная ниже команда создает виртуальную машину на основе пользовательского образа, доступного в лаборатории.

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

Значение аргумента image-type изменилось с gallery на custom. Имя образа совпадает с именем, которое бы отображалось, если бы вы создавали виртуальную машину на портале Azure.

Приведенная ниже команда создает виртуальную машину на основе образа из Marketplace с проверкой подлинности 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 

Можно также создавать виртуальные машины на основе формул, присвоив параметру image-type значение formula. Если необходимо выбрать определенную виртуальную сеть для виртуальной машины, используйте параметры vnet-name и subnet. Дополнительные сведения см. в разделе az lab vm create.

Убедитесь, что виртуальная машина доступна.

Прежде чем запустить виртуальную машину и подключиться к ней, с помощью команды az lab vm show убедитесь, что виртуальная машина доступна.

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

Запуск виртуальной машины и подключение к ней

В приведенном ниже примере команда запускает виртуальную машину.

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

Подключитесь к виртуальной машине по протоколу SSH или через удаленный рабочий стол.

ssh userName@ipAddressOrfqdn 

Обновление виртуальной машины

В приведенном ниже примере команда применяет артефакты к виртуальной машине.

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

Отображение артефактов, доступных в лаборатории

Чтобы отобразить артефакты, доступные в виртуальной машине в лаборатории, выполните указанные ниже команды.

Cloud Shell — PowerShell: обратите внимание на то, что перед символом $ в выражении $expand используется обратный апостроф (`) (т. е. `$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: обратите внимание на то, что в команде перед символом $ используется символ косой черты (\).

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

Пример результатов выполнения:

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

Остановка и удаление виртуальной машины

В приведенном ниже примере команда останавливает виртуальную машину.

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

Удалите виртуальную машину.

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

Дальнейшие действия

См. документацию по Azure CLI для Azure DevTest Labs.