Развертывание виртуальных машин на устройстве Azure Stack Edge с помощью Azure PowerShell
ОБЛАСТЬ ПРИМЕНЕНИЯ: Azure Stack Edge Pro — GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
В этой статье описан процесс создания виртуальных машин и управления ими на устройстве Azure Stack Edge с помощью Azure PowerShell.
Рабочий процесс развертывания виртуальной машины
Общее описание рабочего процесса развертывания виртуальной машины включает следующие действия.
- Подключитесь к локальной версии Azure Resource Manager на своем устройстве.
- Определите встроенную подписку на устройстве.
- Используйте собственный образ виртуальной машины.
- Создайте группу ресурсов во встроенной подписке. Группа ресурсов содержит виртуальную машину и все связанные ресурсы.
- Создайте локальную учетную запись хранения на устройстве для хранения виртуального жесткого диска, используемого для создания образа виртуальной машины.
- Передайте исходный образ Windows или Linux в учетную запись хранения, чтобы создать управляемый диск.
- Используйте этот управляемый диск для создания образа виртуальной машины.
- Включите вычисления на порту устройства, чтобы создать виртуальный коммутатор.
- При этом будет создана виртуальная сеть, использующая виртуальный коммутатор, подключенный к порту, на котором вы включили вычисления.
- Создайте виртуальную машину, используя созданные ранее образ виртуальной машины, виртуальную сеть и виртуальные сетевые интерфейсы для обмена данными в виртуальной сети, затем назначьте общедоступный IP-адрес для удаленного доступа к этой виртуальной машине. При необходимости добавьте в нее диски данных, чтобы обеспечить больше места для хранения данных виртуальной машины.
Необходимые компоненты
Перед развертыванием виртуальных машин на устройстве Azure Stack Edge необходимо настроить клиент для подключения к устройству через Azure Resource Manager в Azure PowerShell. Подробные инструкции см. в статье Подключение к Azure Resource Manager на устройстве Azure Stack Edge.
Обеспечьте возможность выполнения следующих действий для доступа к устройству из клиента. Вы уже выполнили эту настройку при подключении к Azure Resource Manager, и теперь уверены, что конфигурация прошла успешно.
Убедитесь, что коммуникация с Azure Resource Manager функционирует, выполнив следующую команду.
Чтобы вызвать для проверки подлинности локальные API-интерфейсы устройств, введите следующее.
Если вы настроили вычисление для Kubernetes, этот шаг можно пропустить. В противном случае убедитесь, что вы включили сетевой интерфейс для вычислений, выполнив следующие действия.
a. В локальном пользовательском интерфейсе выберите параметры Вычислений.
b. Выберите сетевой интерфейс, который будет использоваться для создания виртуального коммутатора. Создаваемые виртуальные машины будут подключены к виртуальному коммутатору, подключенному к этому порту и связанной сети. Не забудьте выбрать сеть, соответствующую IP-адресу, который будет использоваться для виртуальной машины.c. В разделе Включить для вычислений на сетевом интерфейсе выберите Да. Azure Stack Edge создаст виртуальный коммутатор, соответствующий этому сетевому интерфейсу, и будет управлять им. Не вводите в настоящее время определенные IP-адреса для Kubernetes. Включение службы вычислений может занять несколько минут.
Примечание.
Если вы создаете виртуальные машины GPU, выберите сетевой интерфейс, подключенный к Интернету. Это позволит установить расширение GPU на устройстве.
Запрос встроенной подписки на устройстве
Для Azure Resource Manager поддерживается только одна фиксированная подписка, которая является видимой для пользователя. Эта подписка уникальна для каждого устройства. Ее имя и идентификатор нельзя изменить.
Подписка содержит все ресурсы, необходимые для создания виртуальной машины.
Внимание
Подписка создается при включении виртуальных машин на портале Azure. Она размещается локально на устройстве.
Подписка используется для развертывания виртуальных машин.
Чтобы отобразить подписку, выполните указанную ниже команду.
Get-AzSubscription
Вот пример выходных данных этой команды:
PS C:\WINDOWS\system32> Get-AzSubscription Name Id TenantId ---- -- -------- Default Provider Subscription ... ... PS C:\WINDOWS\system32>
Получите список зарегистрированных поставщиков ресурсов, которые выполняются на устройстве. В список обычно входят вычисления, сеть и хранилище.
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.
Задайте некоторые параметры.
$ResourceGroupName = "<Resource group name>"
Создайте группу ресурсов для ресурсов, создаваемых для виртуальной машины.
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.
Задайте некоторые параметры.
$StorageAccountName = "<Storage account name>"
Создайте новую локальную учетную запись хранения на устройстве.
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:
Задайте некоторые параметры, включая соответствующую версию 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>
Скопируйте виртуальный жесткий диск из источника (в данном случае из локальной системы) в учетную запись хранения, созданную на устройстве на предыдущем шаге.
$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
Создайте управляемый диск из загруженного виртуального жесткого диска.
Задайте некоторые параметры.
$DiskName = "<Managed disk name>" $HyperVGeneration = "<Generation of the image: V1 or V2>"
Создайте управляемый диск на основе отправленного виртуального жесткого диска. Чтобы получить исходный 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>
Создание образа виртуальной машины на основе управляемого диска
Теперь необходимо создать образ виртуальной машины на основе управляемого диска.
Задайте некоторые параметры.
$DiskSize = "<Size greater than or equal to size of source managed disk>" $OsType = "<linux or windows>" $ImageName = "<Image name>"
Создайте образ виртуальной машины. Поддерживаются следующие типы ОС: 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
Создание виртуального сетевого интерфейса
Вы создаете карту интерфейса виртуальной сети с помощью идентификатора подсети виртуальной сети.
Задайте некоторые параметры.
$IpConfigName = "<IP config name>" $NicName = "<Network interface name>"
Создайте виртуальный сетевой интерфейс.
$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
создание виртуальной машины;
Теперь вы можете использовать образ виртуальной машины, чтобы создать виртуальную машину и подключить ее к созданной ранее виртуальной сети.
Задайте имя пользователя и пароль для входа на виртуальную машину, которую необходимо создать.
$pass = ConvertTo-SecureString "<Password>" -AsPlainText -Force; $cred = New-Object System.Management.Automation.PSCredential("<Enter username>", $pass)
После создания и включения виртуальной машины используйте предыдущее имя пользователя и пароль для входа в нее.
Задайте параметры.
$VmName = "<VM name>" $ComputerName = "<VM display name>" $OsDiskName = "<OS disk name>"
Создайте виртуальную машину.
$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
Чтобы определить 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-адреса, переданного во время создания виртуальной машины.
Откройте сеанс SSH для подключения с помощью IP-адреса.
ssh -l <username> <ip address>
В командной строке введите пароль, который использовался при создании виртуальной машины.
Если необходимо указать ключ 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-адрес, указанный во время создания виртуальной машины.
На своем клиенте откройте RDP.
Перейдите в раздел Пуски введите mstsc.
В области Подключение к удаленному рабочему столу введите IP-адрес виртуальной машины и учетные данные доступа, которые использовались в файле параметров шаблона виртуальной машины. В этом случае выберите Подключиться.
Примечание.
Возможно, нужно будет утвердить подключение к ненадежному компьютеру.
Теперь вы вошли в виртуальную машину, запущенную на устройстве.
Управление виртуальной машиной
В следующих разделах описаны некоторые распространенные операции, которые можно выполнить на устройстве 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.
Изменение размера виртуальной машины
Чтобы изменить размер существующей виртуальной машины, выполните следующие командлеты:
Внимание
Перед изменением размера остановите виртуальную машину без флага -StayProvisioned
.
$vm = Get-AzVM [-Name] <String> [-ResourceGroupName] <String>
$vm.HardwareProfile.VmSize = <new size> - Example: "Standard_D3_v2"
$vm | Update-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.