Поделиться через


Развертывание виртуальных машин на устройстве Azure Stack Edge с помощью Azure PowerShell

ОБЛАСТЬ ПРИМЕНЕНИЯ:Yes for Pro GPU SKUAzure Stack Edge Pro — GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for Mini R SKUAzure Stack Edge Mini R

В этой статье описан процесс создания виртуальных машин и управления ими на устройстве Azure Stack Edge с помощью Azure PowerShell.

Рабочий процесс развертывания виртуальной машины

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

  1. Подключитесь к локальной версии Azure Resource Manager на своем устройстве.
  2. Определите встроенную подписку на устройстве.
  3. Используйте собственный образ виртуальной машины.
  4. Создайте группу ресурсов во встроенной подписке. Группа ресурсов содержит виртуальную машину и все связанные ресурсы.
  5. Создайте локальную учетную запись хранения на устройстве для хранения виртуального жесткого диска, используемого для создания образа виртуальной машины.
  6. Передайте исходный образ Windows или Linux в учетную запись хранения, чтобы создать управляемый диск.
  7. Используйте этот управляемый диск для создания образа виртуальной машины.
  8. Включите вычисления на порту устройства, чтобы создать виртуальный коммутатор.
  9. При этом будет создана виртуальная сеть, использующая виртуальный коммутатор, подключенный к порту, на котором вы включили вычисления.
  10. Создайте виртуальную машину, используя созданные ранее образ виртуальной машины, виртуальную сеть и виртуальные сетевые интерфейсы для обмена данными в виртуальной сети, затем назначьте общедоступный IP-адрес для удаленного доступа к этой виртуальной машине. При необходимости добавьте в нее диски данных, чтобы обеспечить больше места для хранения данных виртуальной машины.

Необходимые компоненты

Перед развертыванием виртуальных машин на устройстве Azure Stack Edge необходимо настроить клиент для подключения к устройству через Azure Resource Manager в Azure PowerShell. Подробные инструкции см. в статье Подключение к Azure Resource Manager на устройстве Azure Stack Edge.

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

  1. Убедитесь, что коммуникация с Azure Resource Manager функционирует, выполнив следующую команду.

    Add-AzEnvironment -Name <Environment Name> -ARMEndpoint "https://management.<appliance name>.<DNSDomain>"
    
  2. Чтобы вызвать для проверки подлинности локальные API-интерфейсы устройств, введите следующее.

    login-AzAccount -EnvironmentName <Environment Name> -TenantId c0257de7-538f-415c-993a-1b87a031879d
    

    Чтобы подключиться через Azure Resource Manager, укажите имя пользователя EdgeArmUser и свой пароль.

  3. Если вы настроили вычисление для Kubernetes, этот шаг можно пропустить. В противном случае убедитесь, что вы включили сетевой интерфейс для вычислений, выполнив следующие действия.

    a. В локальном пользовательском интерфейсе выберите параметры Вычислений.
    b. Выберите сетевой интерфейс, который будет использоваться для создания виртуального коммутатора. Создаваемые виртуальные машины будут подключены к виртуальному коммутатору, подключенному к этому порту и связанной сети. Не забудьте выбрать сеть, соответствующую IP-адресу, который будет использоваться для виртуальной машины.

    Screenshot of the Compute configuration network settings pane.

    c. В разделе Включить для вычислений на сетевом интерфейсе выберите Да. Azure Stack Edge создаст виртуальный коммутатор, соответствующий этому сетевому интерфейсу, и будет управлять им. Не вводите в настоящее время определенные IP-адреса для Kubernetes. Включение службы вычислений может занять несколько минут.

    Примечание.

    Если вы создаете виртуальные машины GPU, выберите сетевой интерфейс, подключенный к Интернету. Это позволит установить расширение GPU на устройстве.

Запрос встроенной подписки на устройстве

Для Azure Resource Manager поддерживается только одна фиксированная подписка, которая является видимой для пользователя. Эта подписка уникальна для каждого устройства. Ее имя и идентификатор нельзя изменить.

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

Важно!

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

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

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

    Get-AzSubscription
    

    Вот пример выходных данных этой команды:

    PS C:\WINDOWS\system32> Get-AzSubscription
    
    Name                          Id                                   TenantId
    ----                          --                                   --------
    Default Provider Subscription ...                                  ...
    
    
    PS C:\WINDOWS\system32>
    
  2. Получите список зарегистрированных поставщиков ресурсов, которые выполняются на устройстве. В список обычно входят вычисления, сеть и хранилище.

    Get-AzResourceProvider
    

    Примечание.

    Поставщики ресурсов предварительно зарегистрированы и не могут быть изменены.

    Вот пример выходных данных этой команды:

    PS C:\WINDOWS\system32>  Get-AzResourceProvider
    
    ProviderNamespace : Microsoft.AzureBridge
    RegistrationState : Registered
    ResourceTypes     : {locations, operations, locations/ingestionJobs}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Compute
    RegistrationState : Registered
    ResourceTypes     : {virtualMachines, virtualMachines/extensions, locations, operations...}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Network
    RegistrationState : Registered
    ResourceTypes     : {operations, locations, locations/operations, locations/usages...}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Resources
    RegistrationState : Registered
    ResourceTypes     : {tenants, locations, providers, checkresourcename...}
    Locations         : {DBELocal}
    
    ProviderNamespace : Microsoft.Storage
    RegistrationState : Registered
    ResourceTypes     : {storageaccounts, storageAccounts/blobServices, storageAccounts/tableServices,
                        storageAccounts/queueServices...}
    Locations         : {DBELocal}
    
    PS C:\WINDOWS\system32>
    

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

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

Важно!

Все ресурсы создаются в том же расположении, что и устройство. Для этого расположения задано значение DBELocal.

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

    $ResourceGroupName = "<Resource group name>" 
    
  2. Создайте группу ресурсов для ресурсов, создаваемых для виртуальной машины.

    New-AzResourceGroup -Name $ResourceGroupName -Location DBELocal
    

    Вот пример выходных данных этой команды:

    PS C:\WINDOWS\system32> New-AzResourceGroup -Name myaseazrg -Location DBELocal
    
    ResourceGroupName : myaseazrg
    Location          : dbelocal
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/.../resourceGroups/myaseazrg
    
    PS C:\WINDOWS\system32>
    

Создание локальной учетной записи хранения

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

Перед созданием локальной учетной записи хранения необходимо настроить клиент для подключения к устройству с помощью Azure Resource Manager через Azure PowerShell. Подробные инструкции см. в статье Подключение к Azure Resource Manager на устройстве Azure Stack Edge.

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

    $StorageAccountName = "<Storage account name>"    
    
  2. Создайте новую локальную учетную запись хранения на устройстве.

    New-AzStorageAccount -Name $StorageAccountName -ResourceGroupName $ResourceGroupName -Location DBELocal -SkuName Standard_LRS
    

    Примечание.

    С помощью Azure Resource Manager можно создавать только локальные учетные записи хранения, например локально избыточное хранилище (уровня "Стандартный" или "Премиум"). Сведения о создании многоуровневых учетных записей хранения см. в статье Учебник. Передача данных через учетные записи хранения с помощью Azure Stack Edge Pro с GPU.

    Ниже представлен пример результата.

    PS C:\WINDOWS\system32> New-AzStorageAccount -Name myaseazsa -ResourceGroupName myaseazrg -Location DBELocal -SkuName Standard_LRS
    
    StorageAccountName ResourceGroupName PrimaryLocation SkuName      Kind    AccessTier CreationTime
    ------------------ ----------------- --------------- -------      ----    ---------- ------------
    myaseazsa          myaseazrg         DBELocal        Standard_LRS Storage            6/10/2021 11:45...
    
    PS C:\WINDOWS\system32>
    

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

Get-AzStorageAccountKey

Ниже представлен пример результата.

PS C:\WINDOWS\system32> Get-AzStorageAccountKey
    
cmdlet Get-AzStorageAccountKey at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
ResourceGroupName: myaseazrg
Name: myaseazsa
    
KeyName    Value                                                                                       Permissions
-------    -----                                                                                       ------
key1       gv3OF57tuPDyzBNc1M7fhil2UAiiwnhTT6zgiwE3TlF/CD217Cvw2YCPcrKF47joNKRvzp44leUe5HtVkGx8RQ==    Full
key2       kmEynIs3xnpmSxWbU41h5a7DZD7v4gGV3yXa2NbPbmhrPt10+QmE5PkOxxypeSqbqzd9si+ArNvbsqIRuLH2Lw==    Full
    
PS C:\WINDOWS\system32>

Добавление URI BLOB-объекта в файл узла

Вы уже добавили URI BLOB-объекта в файл узлов для клиента, который используется для подключения к Хранилищу BLOB-объектов Azure, выполнив инструкции из раздела Изменение файла узла для разрешения имен конечных точек статьи Подключение к Azure Resource Manager на устройстве Azure Stack Edge. Указанная ниже запись использовалась для добавления URI BLOB-объекта.

<Device IP address> <storage name>.blob.<appliance name>.<dnsdomain>

Установка сертификатов

Если вы используете протокол HTTPS, необходимо установить на устройстве соответствующие сертификаты. В этом случае установите сертификат конечной точки BLOB-объекта. Дополнительные сведения см. в статье Использование сертификатов с устройством Azure Stack Edge Pro с GPU.

Передача VHD

Скопируйте все образы дисков, которые будут использоваться, в страничные BLOB-объекты в локальной учетной записи хранения, созданной ранее. Для отправки виртуального жесткого диска в соответствующую учетную запись хранения можно использовать такое средство, как AzCopy.

Используйте следующие команды с AzCopy 10:

  1. Задайте некоторые параметры, включая соответствующую версию API для AzCopy. В этом примере использовался AzCopy 10.

    $Env:AZCOPY_DEFAULT_SERVICE_API_VERSION="2019-07-07"    
    $ContainerName = <Container name>
    $ResourceGroupName = <Resource group name>
    $StorageAccountName = <Storage account name>
    $VHDPath = "Full VHD Path"
    $VHDFile = <VHD file name>
    
  2. Скопируйте виртуальный жесткий диск из источника (в данном случае из локальной системы) в учетную запись хранения, созданную на устройстве на предыдущем шаге.

    $StorageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName)[0].Value
    $blobendpoint = (Get-AzEnvironment -Name Environment Name).StorageEndpointSuffix
    $StorageAccountContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey -Endpoint $blobendpoint
    <Create the container if it does not exist>
    $containerName = "con1"
    $container = New-AzStorageContainer -Name $containerName -Context $StorageAccountContext -Permission Container
    $StorageAccountSAS = New-AzStorageAccountSASToken -Service Blob -ResourceType Container,Service,Object -Permission "acdlrw" -Context $StorageAccountContext -Protocol HttpsOnly
    $endPoint = (Get-AzStorageAccount -name $StorageAccountName -ResourceGroupName $ResourceGroupName).PrimaryEndpoints.Blob
    <Path to azcopy.exe> cp "$VHDPath\$VHDFile" "$endPoint$ContainerName$StorageAccountSAS"    
    

    Ниже представлен пример результата.

    PS C:\windows\system32> $ContainerName = "testcontainer1"
    PS C:\windows\system32> $ResourceGroupName = "myaseazrg"
    PS C:\windows\system32> $StorageAccountName = "myaseazsa"
    PS C:\windows\system32> $VHDPath = "C:\Users\alkohli\Downloads\Ubuntu1604"           
    PS C:\windows\system32> $VHDFile = "ubuntu13.vhd"
    
    PS C:\windows\system32> $StorageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName)[0].Value
    PS C:\windows\system32> $endPoint = (Get-AzStorageAccount -name $StorageAccountName -ResourceGroupName $ResourceGroupName).PrimaryEndpoints.Blob
    PS C:\windows\system32> $StorageAccountContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey -Endpoint $endpoint
    PS C:\windows\system32> $StorageAccountSAS = New-AzStorageAccountSASToken -Service Blob -ResourceType Container,Service,Object -Permission "acdlrw" -Context $StorageAccountContext -Protocol HttpsOnly
    
    PS C:\windows\system32> C:\azcopy\azcopy_windows_amd64_10.10.0\azcopy.exe cp "$VHDPath\$VHDFile" "$endPoint$ContainerName$StorageAccountSAS"
    INFO: Scanning...
    INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support
    
    Job 72a5e3dd-9210-3e43-6691-6bebd4875760 has started
    Log file is located at: C:\Users\alkohli\.azcopy\72a5e3dd-9210-3e43-6691-6bebd4875760.log
    
    INFO: azcopy.exe: A newer version 10.11.0 is available to download
    

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

Теперь вы создадите управляемый диск из загруженного виртуального жесткого диска.

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

    $DiskName = "<Managed disk name>"
    $HyperVGeneration = "<Generation of the image: V1 or V2>"
    
  2. Создайте управляемый диск на основе отправленного виртуального жесткого диска. Чтобы получить исходный URL-адрес для виртуального жесткого диска, перейдите в контейнер в учетной записи службы хранения, который содержит виртуальный жесткий диск в Обозревателе службы хранилища. Выберите виртуальный жесткий диск, щелкните правой кнопкой мыши и выберите Свойства. В диалоговом окне Свойства BLOB-объектов выберите URI.

    $StorageAccountId = (Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName).Id    
    $DiskConfig = New-AzDiskConfig -Location DBELocal -HyperVGeneration $HyperVGeneration -StorageAccountId $StorageAccountId -CreateOption Import -SourceUri "Source URL for your VHD"
    New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $DiskConfig
    

    Ниже приведен пример выходных данных.

    PS C:\WINDOWS\system32> $DiskName = "myazmd"
    PS C:\WINDOWS\system32  $HyperVGeneration = "V1"
    PS C:\WINDOWS\system32> $StorageAccountId = (Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName).Id
    PS C:\WINDOWS\system32> $DiskConfig = New-AzDiskConfig -Location DBELocal -HyperVGeneration $HyperVGeneration -StorageAccountId $StorageAccountId -CreateOption Import -SourceUri "https://myaseazsa.blob.myasegpu.wdshcsso.com/testcontainer1/ubuntu13.vhd"
    PS C:\WINDOWS\system32> New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $DiskConfig
    
    ResourceGroupName            : myaseazrg
    ManagedBy                    :
    Sku                          : Microsoft.Azure.Management.Compute.Models.DiskSku
    Zones                        :
    TimeCreated                  : 6/24/2021 12:19:56 PM
    OsType                       :
    HyperVGeneration             : V1
    CreationData                 : Microsoft.Azure.Management.Compute.Models.CreationDat
                                   a
    DiskSizeGB                   : 30
    DiskSizeBytes                : 32212254720
    UniqueId                     : 53743801-cbf2-4d2f-acb4-971d037a9395
    EncryptionSettingsCollection :
    ProvisioningState            : Succeeded
    DiskIOPSReadWrite            : 500
    DiskMBpsReadWrite            : 60
    DiskState                    : Unattached
    Encryption                   : Microsoft.Azure.Management.Compute.Models.Encryption
    Id                           : /subscriptions/.../r
                                   esourceGroups/myaseazrg/providers/Microsoft.Compute/d
                                   isks/myazmd
    Name                         : myazmd
    Type                         : Microsoft.Compute/disks
    Location                     : DBELocal
    Tags                         : {}
    
    PS C:\WINDOWS\system32>
    

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

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

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

    $DiskSize = "<Size greater than or equal to size of source managed disk>"
    $OsType = "<linux or windows>" 
    $ImageName = "<Image name>"
    
  2. Создайте образ виртуальной машины. Поддерживаются следующие типы ОС: Linux и Windows.

    $imageConfig = New-AzImageConfig -Location DBELocal -HyperVGeneration $hyperVGeneration 
    $ManagedDiskId = (Get-AzDisk -Name $DiskName -ResourceGroupName $ResourceGroupName).Id
    Set-AzImageOsDisk -Image $imageConfig -OsType $OsType -OsState 'Generalized' -DiskSizeGB $DiskSize -ManagedDiskId $ManagedDiskId 
    New-AzImage -Image $imageConfig -ImageName $ImageName -ResourceGroupName $ResourceGroupName  
    

    Ниже приведен пример выходных данных.

    PS C:\WINDOWS\system32> $OsType = "linux"
    PS C:\WINDOWS\system32> $ImageName = "myaseazlinuxvmimage"
    PS C:\WINDOWS\system32> $DiskSize = 35
    PS C:\WINDOWS\system32> $imageConfig = New-AzImageConfig -Location DBELocal
    PS C:\WINDOWS\system32> $ManagedDiskId = (Get-AzDisk -Name $DiskName -ResourceGroupName $ResourceGroupName).Id
    PS C:\WINDOWS\system32> Set-AzImageOsDisk -Image $imageConfig -OsType $OsType -OsState 'Generalized' -DiskSizeGB $DiskSize -ManagedDiskId $ManagedDiskId
    
    ResourceGroupName    :
    SourceVirtualMachine :
    StorageProfile       : Microsoft.Azure.Management.Compute.Models.ImageStorageProfile
    ProvisioningState    :
    HyperVGeneration     : V1
    Id                   :
    Name                 :
    Type                 :
    Location             : DBELocal
    Tags                 :
    
    PS C:\WINDOWS\system32> New-AzImage -Image $imageConfig -ImageName $ImageName -ResourceGroupName $ResourceGroupName
    
    ResourceGroupName    : myaseazrg
    SourceVirtualMachine :
    StorageProfile       : Microsoft.Azure.Management.Compute.Models.ImageStorageProfile
    ProvisioningState    : Succeeded
    HyperVGeneration     : V1
    Id                   : /subscriptions/.../resourceG
                           roups/myaseazrg/providers/Microsoft.Compute/images/myaseazlin
                           uxvmimage
    Name                 : myaseazlinuxvmimage
    Type                 : Microsoft.Compute/images
    Location             : dbelocal
    Tags                 : {}
    
    PS C:\WINDOWS\system32> 
    

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

Перед созданием и развертыванием виртуальной машины необходимо создать одну виртуальную сеть и связать с ней виртуальный сетевой интерфейс.

Важно!

Применяются следующие правила:

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

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

При включении вычисления на локальном пользовательском интерфейсе устройства в группе ресурсов ASERG автоматически создается виртуальная сеть с именем ASEVNET.

Для запроса существующей виртуальной сети используйте следующую команду:

$ArmVn = Get-AzVirtualNetwork -Name ASEVNET -ResourceGroupName ASERG 

Создание виртуального сетевого интерфейса

Вы создаете интерфейс виртуальной сети карта с помощью идентификатора подсети виртуальной сети.

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

    $IpConfigName = "<IP config name>"
    $NicName = "<Network interface name>"
    
  2. Создайте виртуальный сетевой интерфейс.

    $ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id 
    $Nic = New-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName -Location DBELocal -IpConfiguration $IpConfig    
    

    По умолчанию IP-адрес динамически назначается сетевому интерфейсу из сети, включенной для вычислений. Используйте, -PrivateIpAddress parameter если вы выделяете статический IP-адрес сетевому интерфейсу.

    Ниже представлен пример результата.

    PS C:\WINDOWS\system32> $IpConfigName = "myazipconfig1"
    PS C:\WINDOWS\system32> $NicName = "myaznic1"
    PS C:\WINDOWS\system32> $ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id 
    PS C:\WINDOWS\system32> $ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id
    PS C:\WINDOWS\system32> $Nic = New-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName -Location DBELocal -IpConfiguration $IpConfig
    PS C:\WINDOWS\system32> $Nic
    
    Name                        : myaznic1
    ResourceGroupName           : myaseazrg
    Location                    : dbelocal
    Id                          : /subscriptions/.../re
                                  sourceGroups/myaseazrg/providers/Microsoft.Network/net
                                  workInterfaces/myaznic1
    Etag                        : W/"0b20057b-2102-4f34-958b-656327c0fb1d"
    ResourceGuid                : e7d4131f-6f01-4492-9d4c-a8ff1af7244f
    ProvisioningState           : Succeeded
    Tags                        :
    VirtualMachine              : null
    IpConfigurations            : [
                                    {
                                      "Name": "myazipconfig1",
                                      "Etag":
                                  "W/\"0b20057b-2102-4f34-958b-656327c0fb1d\"",
                                      "Id": "/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft.
                                  Network/networkInterfaces/myaznic1/ipConfigurations/my
                                  azipconfig1",
                                      "PrivateIpAddress": "10.126.76.60",
                                      "PrivateIpAllocationMethod": "Dynamic",
                                      "Subnet": {
                                        "Delegations": [],
                                        "Id": "/subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Ne
                                  twork/virtualNetworks/ASEVNET/subnets/ASEVNETsubNet",
                                        "ServiceAssociationLinks": []
                                      },
                                      "ProvisioningState": "Succeeded",
                                      "PrivateIpAddressVersion": "IPv4",
                                      "LoadBalancerBackendAddressPools": [],
                                      "LoadBalancerInboundNatRules": [],
                                      "Primary": true,
                                      "ApplicationGatewayBackendAddressPools": [],
                                      "ApplicationSecurityGroups": []
                                    }
                                  ]
    DnsSettings                 : {
                                    "DnsServers": [],
                                    "AppliedDnsServers": [],
                                    "InternalDomainNameSuffix": "auwlfcx0dhxurjgisct43fc
                                  ywb.a--x.internal.cloudapp.net"
                                  }
    EnableIPForwarding          : False
    EnableAcceleratedNetworking : False
    NetworkSecurityGroup        : null
    Primary                     :
    MacAddress                  : 001DD84A58D1
    
    PS C:\WINDOWS\system32>
    

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

New-AzPublicIPAddress -Name <Public IP> -ResourceGroupName <ResourceGroupName> -AllocationMethod Static -Location DBELocal
$publicIP = (Get-AzPublicIPAddress -Name <Public IP> -ResourceGroupName <Resource group name>).Id
$ipConfig = New-AzNetworkInterfaceIpConfig -Name <ConfigName> -PublicIpAddressId $publicIP -SubnetId $subNetId

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

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

  1. Задайте имя пользователя и пароль для входа на виртуальную машину, которую необходимо создать.

    $pass = ConvertTo-SecureString "<Password>" -AsPlainText -Force;
    $cred = New-Object System.Management.Automation.PSCredential("<Enter username>", $pass)
    

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

  2. Задайте параметры.

    $VmName = "<VM name>"
    $ComputerName = "<VM display name>"
    $OsDiskName = "<OS disk name>"
    
  3. Создайте виртуальную машину.

    $VirtualMachine =  New-AzVMConfig -VmName $VmName -VMSize "Standard_D1_v2"
    
    $VirtualMachine =  Set-AzVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName $ComputerName -Credential $cred
    
    $VirtualMachine =  Set-AzVmOsDisk -VM $VirtualMachine -Name $OsDiskName -Caching "ReadWrite" -CreateOption "FromImage" -Linux -StorageAccountType Standard_LRS
    
    $nicID = (Get-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName).Id
    
    $VirtualMachine =  Add-AzVMNetworkInterface -Vm $VirtualMachine -Id $nicID
    
    $image = ( Get-AzImage -ResourceGroupName $ResourceGroupName -ImageName $ImageName).Id
    
    $VirtualMachine =  Set-AzVMSourceImage -VM $VirtualMachine -Id $image
    
    New-AzVM -ResourceGroupName $ResourceGroupName -Location DBELocal -VM $VirtualMachine -Verbose
    

    Ниже приведен пример выходных данных.

    PS C:\WINDOWS\system32> $pass = ConvertTo-SecureString "Password1" -AsPlainText -Force;
    PS C:\WINDOWS\system32> $cred = New-Object System.Management.Automation.PSCredential("myazuser", $pass)
    PS C:\WINDOWS\system32> $VmName = "myazvm"
    >> $ComputerName = "myazvmfriendlyname"
    >> $OsDiskName = "myazosdisk1"
    PS C:\WINDOWS\system32> $VirtualMachine =  New-AzVMConfig -VmName $VmName -VMSize "Standard_D1_v2"
    PS C:\WINDOWS\system32> $VirtualMachine =  Set-AzVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName $ComputerName -Credential $cred
    PS C:\WINDOWS\system32> $VirtualMachine =  Set-AzVmOsDisk -VM $VirtualMachine -Name $OsDiskName -Caching "ReadWrite" -CreateOption "FromImage" -Linux -StorageAccountType Standard_LRS
    PS C:\WINDOWS\system32> $nicID = (Get-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName).Id
    PS C:\WINDOWS\system32> $nicID/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft.Network/networkInterfaces/myaznic1
    PS C:\WINDOWS\system32> $VirtualMachine =  Add-AzVMNetworkInterface -VM $VirtualMachine -Id $nicID
    PS C:\WINDOWS\system32> $image = ( Get-AzImage -ResourceGroupName $ResourceGroupName -ImageName $ImageName).Id
    PS C:\WINDOWS\system32> $VirtualMachine =  Set-AzVMSourceImage -VM $VirtualMachine -Id $image
    PS C:\WINDOWS\system32> New-AzVM -ResourceGroupName $ResourceGroupName -Location DBELocal -VM $VirtualMachine -Verbose
    WARNING: Since the VM is created using premium storage or managed disk, existing
    standard storage account, myaseazsa, is used for boot diagnostics.
    VERBOSE: Performing the operation "New" on target "myazvm".
    
    RequestId IsSuccessStatusCode StatusCode ReasonPhrase
    --------- ------------------- ---------- ------------
                             True         OK OK
    
  4. Чтобы определить IP-адрес, назначенный созданной виртуальной машине, отправьте запрос в созданный виртуальный сетевой интерфейс. Найдите PrivateIPAddress и скопируйте IP-адрес для вашей виртуальной машины. Ниже приведен пример выходных данных.

    PS C:\WINDOWS\system32> $Nic
    
    Name                        : myaznic1
    ResourceGroupName           : myaseazrg
    Location                    : dbelocal
    Id                          : /subscriptions/.../re
                                  sourceGroups/myaseazrg/providers/Microsoft.Network/net
                                  workInterfaces/myaznic1
    Etag                        : W/"0b20057b-2102-4f34-958b-656327c0fb1d"
    ResourceGuid                : e7d4131f-6f01-4492-9d4c-a8ff1af7244f
    ProvisioningState           : Succeeded
    Tags                        :
    VirtualMachine              : null
    IpConfigurations            : [
                                    {
                                      "Name": "myazipconfig1",
                                      "Etag":
                                  "W/\"0b20057b-2102-4f34-958b-656327c0fb1d\"",
                                      "Id": "/subscriptions/.../resourceGroups/myaseazrg/providers/Microsoft.
                                  Network/networkInterfaces/myaznic1/ipConfigurations/my
                                  azipconfig1",
                                      "PrivateIpAddress": "10.126.76.60",
                                      "PrivateIpAllocationMethod": "Dynamic",
                                      "Subnet": {
                                        "Delegations": [],
                                        "Id": "/subscriptions/.../resourceGroups/ASERG/providers/Microsoft.Ne
                                  twork/virtualNetworks/ASEVNET/subnets/ASEVNETsubNet",
                                        "ServiceAssociationLinks": []
                                      },
                                      "ProvisioningState": "Succeeded",
                                      "PrivateIpAddressVersion": "IPv4",
                                      "LoadBalancerBackendAddressPools": [],
                                      "LoadBalancerInboundNatRules": [],
                                      "Primary": true,
                                      "ApplicationGatewayBackendAddressPools": [],
                                      "ApplicationSecurityGroups": []
                                    }
                                  ]
    DnsSettings                 : {
                                    "DnsServers": [],
                                    "AppliedDnsServers": [],
                                    "InternalDomainNameSuffix": "auwlfcx0dhxurjgisct43fc
                                  ywb.a--x.internal.cloudapp.net"
                                  }
    EnableIPForwarding          : False
    EnableAcceleratedNetworking : False
    NetworkSecurityGroup        : null
    Primary                     :
    MacAddress                  : 001DD84A58D1
    
    PS C:\WINDOWS\system32>
    

Подключение к виртуальной машине

Инструкции по подключению могут отличаться в зависимости от созданной виртуальной машины (Windows или Linux).

Подключение к виртуальной машине Linux

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

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

  1. Откройте сеанс SSH для подключения с помощью IP-адреса.

    ssh -l <username> <ip address>
    
  2. В командной строке введите пароль, который использовался при создании виртуальной машины.

    Если необходимо указать ключ SSH, выполните следующую команду.

    ssh -i c:/users/Administrator/.ssh/id_rsa Administrator@5.5.41.236

    Ниже приведен пример выходных данных при подключении к виртуальной машине.

    PS C:\WINDOWS\system32> ssh -l myazuser "10.126.76.60"
    The authenticity of host '10.126.76.60 (10.126.76.60)' can't be established.
    ECDSA key fingerprint is SHA256:V649Zbo58zAYMKreeP7M6w7Na0Yf9QPg4SM7JZVV0E4.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '10.126.76.60' (ECDSA) to the list of known hosts.
    myazuser@10.126.76.60's password:
    Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.18.0-1013-azure x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/advantage
    
     System information disabled due to load higher than 1.0
    
      Get cloud support with Ubuntu Advantage Cloud Guest:
        http://www.ubuntu.com/business/services/cloud
    
    284 packages can be updated.
    192 updates are security updates. 
    
    The programs included with the Ubuntu system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.
    
    Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
    applicable law.
    
    To run a command as administrator (user "root"), use "sudo <command>".
    See "man sudo_root" for details.
    
    myazuser@myazvmfriendlyname:~$ client_loop: send disconnect: Connection reset
    PS C:\WINDOWS\system32>
    

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

$publicIp = Get-AzPublicIpAddress -Name $PublicIp -ResourceGroupName $ResourceGroupName

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

Подключение к виртуальной машине Windows

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

Подключитесь к виртуальной машине Windows с помощью протокола удаленного рабочего стола (RDP) через IP-адрес, указанный во время создания виртуальной машины.

  1. На своем клиенте откройте RDP.

  2. Перейдите в раздел Пуски введите mstsc.

  3. В области Подключение к удаленному рабочему столу введите IP-адрес виртуальной машины и учетные данные доступа, которые использовались в файле параметров шаблона виртуальной машины. В этом случае выберите Подключиться.

    Screenshot of the Remote Desktop Connection pane for connecting via RDP to your Windows VM.

    Примечание.

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

Теперь вы вошли в виртуальную машину, запущенную на устройстве.

Управление виртуальной машиной

В следующих разделах описаны некоторые распространенные операции, которые можно выполнить на устройстве Azure Stack Edge Pro.

Отображение списка виртуальных машин, работающих на устройстве

Чтобы возвратить список всех виртуальных машин, работающих на устройстве Azure Stack Edge, выполните следующую команду:

Get-AzVM -ResourceGroupName <String> -Name <String>

Дополнительные сведения об этом командлете см. в статье о Get-AzVM.

Включение виртуальной машины

Чтобы включить виртуальную машину на устройстве, выполните следующий командлет:

Start-AzVM [-Name] <String> [-ResourceGroupName] <String>

Дополнительные сведения об этом командлете см. в статье о Start-AzVM.

Приостановка или завершение работы виртуальной машины

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

Stop-AzVM [-Name] <String> [-StayProvisioned] [-ResourceGroupName] <String>

Дополнительные сведения см. в статье о командлете Stop-AzVM.

Добавление диска данных

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

Add-AzRmVMDataDisk -VM $VirtualMachine -Name "disk1" -VhdUri "https://contoso.blob.core.windows.net/vhds/diskstandard03.vhd" -LUN 0 -Caching ReadOnly -DiskSizeinGB 1 -CreateOption Empty 
 
Update-AzVM -ResourceGroupName "<Resource Group Name string>" -VM $VirtualMachine

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

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

Remove-AzVM [-Name] <String> [-ResourceGroupName] <String>

Дополнительные сведения об этом командлете см. в статье о командлете Remove-AzVM.

Следующие шаги

Командлеты диспетчера ресурсов Azure