Создание Azure Local виртуальных машин с поддержкой Azure Arc

Область применения: гиперконвергентные развертывания Azure Local

В этой статье описывается, как создать локальные виртуальные машины Azure, работающие под управлением Azure Arc, начиная с образов виртуальных машин, которые вы создали на локальном экземпляре Azure. Виртуальные машины Azure Local можно создать с помощью Azure CLI, портала Azure или шаблона Azure Resource Manager (шаблон ARM).

Сведения о ресурсах Azure Local

Используйте страницу ресурсов Azure Local для следующих операций:

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

Процедура создания виртуальных машин описана далее в этой статье.

Предварительные условия

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

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

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

Примечание.

  • Два DVD-привода создаются и используются в виртуальных машинах Azure Local во время их подготовки. ISO-файлы, используемые во время подготовки, удаляются после успешного создания виртуальной машины. Однако вы можете увидеть пустые диски, видимые для виртуальной машины. Чтобы удалить эти диски на виртуальной машине Windows, используйте диспетчер устройств для удаления дисков. В зависимости от используемого вами варианта Linux можно также удалить их для виртуальных машин Linux.

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

Следуйте следующим шагам на клиенте, выполняя команду az cli, связанную с локальным экземпляром Azure.

Вход и настройка подписки

  1. Подключитесь к машине на экземпляре Azure Local.

  2. Войдите и введите следующую команду:

    az login --use-device-code
    
  3. Задайте подписку.

    az account set --subscription <Subscription ID>
    

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

В зависимости от типа созданного сетевого интерфейса можно создать виртуальную машину с сетевым интерфейсом со статическим IP-адресом или одной с динамическим выделением IP-адресов.

Если вам потребуется несколько сетевых интерфейсов со статическим IP-адресом для виртуальной машины, создайте один или несколько интерфейсов перед созданием виртуальной машины. Добавление сетевого интерфейса со статическим IP-адресом после подготовки виртуальной машины не поддерживается.

Теперь создайте виртуальную машину, которая использует определенные объемы памяти и процессора в указанном пути к хранилищу.

  1. Задайте некоторые параметры:

    $vmName ="local-vm"
    $subscription =  "<Subscription ID>"
    $resource_group = "local-rg"
    $customLocationName = "local-cl"
    $customLocationID ="/subscriptions/$subscription/resourceGroups/$resource_group/providers/Microsoft.ExtendedLocation/customLocations/$customLocationName"
    $location = "eastus"
    $computerName = "mycomputer"
    $userName = "local-user"
    $password = "<Password for the VM>"
    $imageName ="ws22server"
    $nicName ="local-vnic" 
    $storagePathName = "local-sp" 
    $storagePathId = "/subscriptions/<Subscription ID>/resourceGroups/local-rg/providers/Microsoft.AzureStackHCI/storagecontainers/local-sp" 
    

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

    Параметры Описание
    name Имя виртуальной машины, создаваемой для экземпляра Azure Local. Укажите имя, которое соответствует правилам для ресурсов Azure.
    admin-username Имя пользователя на виртуальной машине, которую вы разворачиваете на локальном экземпляре Azure.
    admin-password Пароль для пользователя на виртуальной машине, которую вы разворачиваете на локальном экземпляре Azure.
    image-name Имя образа виртуальной машины, используемого для развертывания виртуальной машины.
    location Регионы Azure, указанные в параметре az locations. Например, они могут быть eastus или westeurope.
    resource-group Имя группы ресурсов, в которой создается виртуальная машина. Чтобы упростить управление, рекомендуется использовать ту же группу ресурсов, что и экземпляр Azure Local.
    subscription Имя или идентификатор подписки, в рамках которой развернут экземпляр Azure Local. Это имя или идентификатор может быть другой подпиской, используемой для виртуальной машины в локальном экземпляре Azure.
    custom-location Используйте этот параметр, чтобы указать пользовательское расположение, связанное с экземпляром Azure Local, в котором создается эта виртуальная машина.
    authentication-type Тип проверки подлинности для использования с виртуальной машиной. Допустимые значения: all, passwordи ssh. По умолчанию используется пароль для Windows и открытого ключа Secure Shell (SSH) для Linux. Используйте all для включения обеих ssh и password аутентификаций.
    nics Имена или идентификаторы сетевых интерфейсов, связанных с виртуальной машиной. При создании виртуальной машины необходимо иметь хотя бы один сетевой интерфейс, чтобы включить управление гостевыми клиентами.
    memory-mb Память в мегабайтах, выделенная виртуальной машине. Если не указано, используются значения по умолчанию.
    processors Количество процессоров, выделенных виртуальной машине. Если не указано, используются значения по умолчанию.
    storage-path-id Связанный путь к хранилищу, в котором сохраняются конфигурация виртуальной машины и данные.
    proxy-configuration Используйте этот необязательный параметр для настройки прокси-сервера для виртуальной машины. Дополнительные сведения см. в статье "Создание виртуальной машины с настроенным прокси-сервером".
  2. Выполните следующие команды, чтобы создать соответствующую виртуальную машину:

    • Чтобы создать виртуальную машину Trusted launch Azure Local:

      1. Укажите дополнительные флаги, чтобы включить безопасную загрузку, включить виртуальный доверенный платформенный модуль (vTPM) и выбрать тип безопасности. При указании такого типа TrustedLaunchбезопасности необходимо включить безопасную загрузку и vTPM. TrustedLaunch В противном случае создание виртуальной машины завершается ошибкой.

        az stack-hci-vm create --name $vmName --resource-group $resource_group --admin-username $userName --admin-password $password --computer-name $computerName --image $imageName --location $location --authentication-type all --nics $nicName --custom-location $customLocationID --hardware-profile memory-mb="8192" processors="4" --storage-path-id $storagePathId --enable-secure-boot true --enable-vtpm true --security-type "TrustedLaunch"
        
      2. После создания виртуальной машины убедитесь, что тип безопасности виртуальной машины является TrustedLaunch.

      3. Выполните следующий командлет (на одном из узлов кластера), чтобы найти узел владельца виртуальной машины:

        Get-ClusterGroup $vmName
        
      4. Выполните следующий командлет на узле владельца виртуальной машины:

        (Get-VM $vmName).GuestStateIsolationType
        
      5. Убедитесь, что возвращается значение TrustedLaunch .

    • Чтобы создать стандартную виртуальную машину Azure Local:

       az stack-hci-vm create --name $vmName --resource-group $resource_group --admin-username $userName --admin-password $password --computer-name $computerName --image $imageName --location $location --authentication-type all --nics $nicName --custom-location $customLocationID --hardware-profile memory-mb="8192" processors="4" --storage-path-id $storagePathId 
      
    • Чтобы создать виртуальную машину с динамической памятью, выполните приведенные действия.

      1. Укажите дополнительные флаги для создания виртуальной машины с динамической памятью:

        --hardware-profile vm-size="Custom" processors=1 memory-mb=1024 maximum-memory-mb=2048 minimum-memory-mb=1024 target-memory-buffer=20

      2. Обратите внимание, что minimum-memory-mb меньше или равно memory-mb, а maximum-memory-mb больше или равно memory-mb.

      Пример скрипта:

      az stack-hci-vm create --name "my_dynmemory" -g "my_registration" --admin-username "admin" --admin-password "" --custom-location "/subscriptions/my_subscription/resourceGroups/my_registration/providers/Microsoft.ExtendedLocation/customLocations/my_customlocation" --location "eastus2euap" --image "/subscriptions/my_subscription/resourceGroups/my_registration/microsoft.azurestackhci/marketplacegalleryimages/2022-datacenter-azure-edition-core-01" --hardware-profile vm-size="Custom" processors=1 memory-mb=1024 maximum-memory-mb=2048 minimum-memory-mb=1024 target-memory-buffer=20 --enable-agent true --nics "dynnic"
      

Виртуальная машина успешно создается, когда provisioningState параметр отображается как succeeded в выходных данных.

Примечание.

Виртуальная машина, созданная по умолчанию, включает управление гостевыми клиентами. Если по какой-либо причине управление гостевыми объектами не удается во время создания виртуальной машины, выполните действия, описанные в разделе Enable guest management on the Azure Local VM, чтобы включить его после создания виртуальной машины.

В этом примере путь к хранилищу был указан с помощью флага --storage-path-id . Этот флаг гарантирует, что данные рабочей нагрузки (включая виртуальную машину, образ виртуальной машины и диск данных, отличные от ОС) помещаются в указанный путь к хранилищу.

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

Дополнительные параметры для образов Windows Server 2012 и Windows Server 2012 R2

Windows Server 2012 и Windows Server 2012 R2 не поддерживают включение гостевого управления, так как эта операционная система не поддерживает Hyper-V сокетов, необходимых для включения гостевого управления. Поэтому при создании виртуальной машины с помощью Windows Server 2012 и Windows Server 2012 образов R2 задайте для обоих следующих параметров значение false:

  • --enable-agent. Установите для этого параметра значение false, чтобы отключить процесс присоединения агента Azure для подключенных машин на виртуальных машинах.
  • --enable-vm-config-agent. Задайте для этого параметра значение false, чтобы предотвратить подключение агента виртуальной машины на виртуальной машине с узла через канал сокетов Hyper-V. Windows Server 2012 и Windows Server 2012 R2 не поддерживают сокеты Hyper-V. В более новых версиях образов виртуальных машин, поддерживающих сокеты Hyper-V, агент виртуальной машины используется для развёртывания Агента подключенной машины Azure на виртуальных машинах. Чтобы получить дополнительные сведения о сокетах Hyper-V, обратитесь к разделу Создайте собственные службы интеграции.

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

Чтобы создать виртуальную машину Linux, используйте ту же команду, которую вы использовали для создания виртуальной машины Windows:

  • Указанный образ коллекции должен быть образом Linux.
  • Имя пользователя и пароль, которые вы используете, должны работать с параметром authentication-type-all .
  • Для ключей SSH необходимо передать ssh-key-values параметры вместе с ключами authentication-type-allSSH.

Внимание

Настройка прокси-сервера во время создания виртуальной машины поддерживается для виртуальных машин Ubuntu Server.

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

Используйте необязательный параметр proxy-configuration для настройки прокси-сервера для виртуальной машины.

Конфигурация прокси-сервера для виртуальных машин применяется только к развертыванию агента Azure Connected Machine и устанавливается в виде переменных окружения в операционной системе гостевой виртуальной машины. Браузеры и приложения на виртуальной машине, ссылающиеся на WinInet и netsh, не обязательно используют эту конфигурацию прокси-сервера. Параметры WinInet и netsh должны быть настроены отдельно с параметрами прокси-сервера.

Может потребоваться специально задать конфигурацию прокси-сервера для приложений, если они не ссылаются на переменные среды, заданные на виртуальной машине.

Если вы создаете виртуальную машину за прокси-сервером, выполните следующую команду:

az stack-hci-vm create --name $vmName --resource-group $resource_group --admin-username $userName --admin-password $password --computer-name $computerName --image $imageName --location $location --authentication-type all --nics $nicName --custom-location $customLocationID --hardware-profile memory-mb="8192" processors="4" --storage-path-id $storagePathId --proxy-configuration http_proxy="<Http URL of proxy server>" https_proxy="<Https URL of proxy server>" no_proxy="<URLs which bypass proxy>" cert_file_path="<Certificate file path for your machine>"

Используйте следующие параметры для proxy-server-configuration.

Параметры Описание
http_proxy URL-адреса HTTP для прокси-сервера. Пример URL: http://proxy.example.com:3128.
https_proxy URL-адреса HTTPS для прокси-сервера. Сервер по-прежнему может использовать HTTP-адрес, как показано в следующем примере http://proxy.example.com:3128.
no_proxy URL-адреса, которые могут обойти этот прокси-сервер. Типичные примеры: localhost, 127.0.0.1, .svc, 10.0.0.0/8, 172.16.0.0/12и 192.168.0.0/16100.0.0.0/8.
cert_file_path Выберите файл сертификата, используемый для установления доверия с прокси-сервером. Примером является C:\Users\Palomino\proxycert.crt.

Пример команды:

az stack-hci-vm create --name $vmName --resource-group $resource_group --admin-username $userName --admin-password $password --computer-name $computerName --image $imageName --location $location --authentication-type all --nics $nicName --custom-location $customLocationID --hardware-profile memory-mb="8192" processors="4" --storage-path-id $storagePathId --proxy-configuration http_proxy="http://ubuntu:ubuntu@192.168.200.200:3128" https_proxy="http://ubuntu:ubuntu@192.168.200.200:3128" no_proxy="localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,100.0.0.0/8,s-cluster.test.contoso.com" cert_file_path="C:\ClusterStorage\UserStorage_1\server.crt"

Для проверки подлинности прокси-сервера можно передать имя пользователя и пароль, объединенные в URL-адрес, как показано в этом примере. "http://username:password@proxyserver.contoso.com:3128"

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

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

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

Чтобы настроить шлюз Azure Arc для виртуальной машины Azure Local, создайте виртуальную машину с поддержкой гостевого управления и передайте необязательный параметр --gateway-id. Шлюз Azure Arc можно использовать с конфигурацией прокси-сервера или без нее. По умолчанию только трафик Azure Arc перенаправляется через прокси-сервер Azure Arc.

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

Внимание

Трафик, предназначенный для конечных точек, не управляемых шлюзом Azure Arc, направляется через корпоративный прокси-сервер или брандмауэр.

Для виртуальных машин Windows разрешите следующие конечные точки: https://agentserviceapi.guestconfiguration.azure.com и https://<azurelocalregion>-gas.guestconfiguration.azure.com.

Для виртуальных машин Linux разрешают следующие конечные точки: https://agentserviceapi.guestconfiguration.azure.comи https://<azurelocalregion>-gas.guestconfiguration.azure.comhttps://packages.microsoft.com.

Создание виртуальной машины с включенным шлюзом Azure Arc за прокси-сервером

Выполните следующую команду:

az stack-hci-vm create --name $vmName --resource-group $resource_group --admin-username $userName --admin-password $password --computer-name $computerName --image $imageName --location $location --authentication-type all --nics $nicName --custom-location $customLocationID --hardware-profile memory-mb="8192" processors="4" --storage-path-id $storagePathId --gateway-id $gw --proxy-configuration http_proxy="<Http URL of proxy server>" https_proxy="<Https URL of proxy server>" no_proxy="<URLs which bypass proxy>" cert_file_path="<Certificate file path for your machine>"

Для этого можно использовать следующие параметры proxy-server-configurationArc gateway.

Параметры Описание
gateway-id Идентификатор ресурса шлюза Azure Arc. Пример идентификатора ресурса шлюза — /subscriptions/$subscription/resourceGroups/$resource_group/providers/Майкрософт.HybridCompute/gateways/$gwid.
http_proxy URL-адреса HTTP для прокси-сервера. Пример URL: http://proxy.example.com:3128.
https_proxy URL-адреса HTTPS для прокси-сервера. Сервер по-прежнему может использовать HTTP-адрес, как показано в следующем примере http://proxy.example.com:3128.
no_proxy URL-адреса, которые могут обойти прокси-сервер. Типичные примеры: localhost, 127.0.0.1, .svc, 10.0.0.0/8, 172.16.0.0/12и 192.168.0.0/16100.0.0.0/8.

Пример команды:

az stack-hci-vm create --name $vmName --resource-group $resource_group --admin-username $userName --admin-password $password --computer-name $computerName --image $imageName --location $location --authentication-type all --nics $nicName --custom-location $customLocationID --hardware-profile memory-mb="8192" processors="4" --storage-path-id $storagePathId --gateway-id $gw --proxy-configuration http_proxy="http://ubuntu:ubuntu@192.168.200.200:3128" https_proxy="http://ubuntu:ubuntu@192.168.200.200:3128" no_proxy="localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,100.0.0.0/8,s-cluster.test.contoso.com" 

Создание виртуальной машины с включенным шлюзом Azure Arc без прокси-сервера

Выполните следующую команду:

az stack-hci-vm create --name $vmName --resource-group $resource_group --admin-username $userName --admin-password $password --computer-name $computerName --image $imageName --location $location --authentication-type all --nics $nicName --custom-location $customLocationID --hardware-profile memory-mb="8192" processors="4" --storage-path-id $storagePathId --gateway-id $gw

Для шлюза Azure Arc можно использовать следующие параметры.

Параметры Описание
gateway-id Идентификатор ресурса шлюза Azure Arc. Пример идентификатора ресурса шлюза — /subscriptions/$subscription/resourceGroups/$resource_group/providers/Майкрософт.HybridCompute/gateways/$gwid.

Пример команды:

az stack-hci-vm create --name $vmName --resource-group $resource_group --admin-username $userName --admin-password $password --computer-name $computerName --image $imageName --location $location --authentication-type all --nics $nicName --custom-location $customLocationID --hardware-profile memory-mb="8192" processors="4" --storage-path-id $storagePathId --gateway-id $gw 

Использование управляемого удостоверения для проверки подлинности виртуальных машин Azure Local

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

Виртуальные машины в локальном экземпляре Azure, расширенном с помощью серверов с поддержкой Azure Arc, могут, в частности, использовать управляемое удостоверение, назначаемое системой, для доступа к другим ресурсам Azure, поддерживающим аутентификацию с использованием Microsoft Entra ID. Например, виртуальные машины могут использовать управляемое удостоверение, назначаемое системой, для доступа к Azure Key Vault.

Дополнительные сведения см. в разделе Системно назначенные управляемые идентичности и Аутентификация в ресурсах Azure с помощью серверов с поддержкой Azure Arc.