Подготовка виртуальной машины Linux с помощью Azure CLI

Завершено

Azure CLI можно установить локально в операционных системах Linux, macOS и Windows. Сведения об установке зависят от операционной системы и в случае Linux, а также от дистрибутива.

Примечание.

Дополнительные сведения о параметрах установки Linux см. в статье "Установка Azure CLI в Linux".

Чтобы использовать Azure CLI в интерактивном режиме, запустите оболочку, доступную в операционной системе, например cmd.exe в Windows, Bash в Linux или macOS, а затем выполните команду в командной строке. Чтобы автоматизировать повторяющиеся задачи, соберите команды CLI в скрипт оболочки с помощью синтаксиса скрипта выбранной оболочки, а затем запустите скрипт.

Если вы хотите избежать установки Azure CLI, можно использовать Azure Cloud Shell. Azure Cloud Shell — это интерактивная оболочка с проверкой подлинности, которую можно использовать для управления ресурсами Azure из веб-браузера. Azure Cloud Shell может запускать Bash и Azure PowerShell, а у него уже есть текущая версия Azure CLI. Чтобы получить доступ к Azure Cloud Shell, откройте ссылку Azure Cloud Shell в веб-браузере или запустите ее из портал Azure, выбрав значок Azure Cloud Shell рядом с текстовым полем глобального поиска.

Снимок экрана: значок Azure Cloud Shell в портал Azure.

Azure Cloud Shell предоставляет преимущества встроенной проверки подлинности, которая использует учетные данные, предоставляемые при доступе к подписке Azure из веб-браузера. Это устраняет необходимость выполнения az login команды в начале каждого сеанса, который требуется при локальном запуске Azure CLI.

Развертывание виртуальной машины Linux с помощью Azure CLI

Процесс подготовки виртуальной машины Azure под управлением Linux с помощью Azure CLI обычно включает в себя следующую последовательность высокоуровневых шагов:

  • Определите подходящий образ виртуальной машины.
  • Определите подходящий размер виртуальной машины.
  • Создать группу ресурсов.
  • Создание и настройка виртуальной сети.
  • Создайте виртуальную машину Azure.

В зависимости от существующей среды и требований может потребоваться выполнить все описанные выше действия. Например, для развертывания можно использовать существующую группу ресурсов или подсеть виртуальной сети. Кроме того, Azure CLI поддерживает широкий спектр параметров по умолчанию, которые автоматически применяются, если вы решили не явно назначать значения некоторым параметрам ресурсов. Например, как и при развертывании на основе портал Azure, если вы не указываете существующую виртуальную сеть, Azure CLI автоматически подготавливает ее для вас. В этом модуле вы будете полагаться на параметры Azure CLI по умолчанию и пропустить процесс создания виртуальной сети.

Примечание.

Сведения о реализации виртуальных сетей с помощью Azure CLI см. в кратком руководстве. Использование Azure CLI для создания виртуальной сети.

Определение подходящего образа виртуальной машины

Прежде чем начать процесс подготовки, сначала необходимо определить образ виртуальной машины, который требуется использовать. Кроме того, необходимо убедиться, что доступность образа в регионе Azure, где будет размещено развертывание.

Чтобы получить список регионов Azure, доступных в подписке, выполните следующую команду из сеанса Bash на панели Azure Cloud Shell:

az account list-locations --output table

Просмотрите выходные данные и определите значение в столбце "Имя" для региона, который вы планируете использовать. Предположим, что вы выбрали регион "Восточная часть США" в качестве целевого объекта, чтобы имя было восточнее.

Чтобы определить подходящий образ, необходимо определить издателя, предложения и SKU. Чтобы сузить список доступных параметров, выведите список издателей, отличных от Майкрософт, для региона, который вы определили ранее, выполнив следующую команду:

az vm image list-publishers --location eastus --query [].name --output tsv | grep -v "Microsoft" | more

Примечание.

Список довольно обширный, поэтому следует убедиться, что вы ограничиваете выходные данные доступным буфером сеанса.

Предположим, что вы выбрали Canonical. Затем определите предложения, доступные от этого издателя, выполнив следующую команду:

az vm image list-offers --location eastus --publisher Canonical --query [].name --output tsv

Предположим, что вы выбрали 0001-com-ubuntu-server-jammy. Затем выполните следующую команду, чтобы определить номера SKU, доступные с этим предложением, выполнив следующую команду:

az vm image list-skus --location eastus --publisher Canonical --offer 0001-com-ubuntu-server-focal --query [].name --output tsv

Примечание.

Канонический недавно изменил имена предложений. До Ubuntu 20.04 имя предложения было UbuntuServer. Для Ubuntu 20.04 имя предложения — 0001-com-ubuntu-server-focalи для Ubuntu 22.04 это 0001-com-ubuntu-server-jammy.

Чтобы развернуть виртуальную машину Azure с помощью определенного образа, необходимо определить значение его Urn свойства. Это значение состоит из издателя, предложения, номера SKU и при необходимости номера версии, который однозначно идентифицирует изображение. Номер версии также можно задать для последней версии, которая обозначает последнюю версию дистрибутива. Чтобы отобразить значение Urn свойства для всех образов Ubuntu 22_04-lts в регионе "Восточная часть США", выполните следующую команду:

az vm image list --location eastus --publisher Canonical --offer 0001-com-ubuntu-server-jammy --sku 22_04-lts --all --output table

Примечание.

Свойство можно использовать UrnAlias для более простого (хотя и гораздо менее гибкого) подхода к назначению образа для использования во время развертывания. Это свойство легко доступно для наиболее распространенных образов, и вы можете получить его значения, выполнив az vm image list --output table команду Azure CLI. Например, соответствует UrnAlias Ubuntu2204 изображению Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest.

Определение подходящего размера виртуальной машины

Помимо доступности образов, вы также должны убедиться, что размер виртуальной машины, который вы планируете использовать, доступен в регионе Azure, где будет размещено развертывание. Чтобы подтвердить это, выполните следующую команду:

az vm list-sizes --location eastus --output table

Определите размер виртуальной машины, подходящий для примера развертывания из списка, и запишите значение в столбце "Имя". При выполнении команды Azure CLI, инициирующей подготовку виртуальной машины Azure, необходимо ввести имя в идентичном формате. Предположим, что вы выбрали Standard_F4s.

Внимание

Прежде чем продолжить, убедитесь, что этот размер виртуальной машины доступен в целевом регионе Azure, и при необходимости настройте значения параметров в последующих командах соответствующим образом.

Создание или изменение группы ресурсов

После идентификации образа и размера виртуальной машины Azure теперь можно начать процесс подготовки. Начните с создания группы ресурсов для размещения виртуальной машины Azure и зависимых ресурсов. Чтобы создать группу ресурсов, используйте команду az group create. Для этой команды необходимо указать значение параметров имени и расположения, которое указывает имя группы ресурсов и целевой регион Azure соответственно.

az group create --name rg_lnx-cli --location eastus

Выходные данные команды должны выглядеть следующим образом:

{
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/sample-RG",
  "location": "eastus",
  "managedBy": null,
  "name": "rg_lnx-cli",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

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

Чтобы создать виртуальную az vm create машину, используйте команду. Эта команда поддерживает широкий спектр параметров, включая образ ОС, размер диска и административные учетные данные. В следующем примере az vm create команда активирует развертывание виртуальной машины Azure с именем sample-cli-vm0, в которой размещена последняя версия SKU Ubuntu 22_04-lts-2-го поколения. Процесс подготовки настраивает учетную запись администратора azureuser с проверкой подлинности на основе пары ключей SSH. Закрытый и открытый ключ создаются и хранятся локально в расположении по умолчанию (~/.ssh), чтобы разрешить SSH-доступ к виртуальной машине Azure. Используйте следующий пример кода для создания виртуальной машины Azure:

az vm create \
    --resource-group rg_lnx-cli \
    --name lnx-cli-vm \
    --image Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest \
    --size Standard_F4s \
    --admin-username azureuser \
    --generate-ssh-keys

Примечание.

Параметр --size является необязательным. Если вы решите исключить его, результирующий размер будет зависеть от выбранного изображения.

Виртуальная машина Azure начнет работать вскоре после этого, как правило, в течение нескольких минут. Выходные данные команды Azure CLI будут содержать сведения в формате JSON о недавно развернутой виртуальной машине Azure:

{
  "fqdns": "",
  "id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg_lnx-cli/providers/Microsoft.Compute/virtualMachines/lnx-cli-vm",
  "location": "eastus",
  "macAddress": "00-0D-3A-8C-C6-AE",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "20.51.149.212",
  "resourceGroup": "rg_lnx-cli",
  "zones": ""
}

На этом этапе вы сможете подключиться к виртуальной машине Azure, выполнив следующую команду (заменив <заполнитель public_ip_address> IP-адресом, указанным в выходных данных Azure CLI), на компьютере, где хранится закрытый ключ:

ssh azureuser@<public_ip_address>