Развертывание виртуальных машин на устройстве GPU Azure Stack Edge Pro с использованием сценария Azure PowerShell
ОБЛАСТЬ ПРИМЕНЕНИЯ: Azure Stack Edge Pro — GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
В этом руководстве описан процесс создания виртуальной машины и управления ею на устройстве Azure Stack Edge Pro с использованием сценария Azure PowerShell.
Необходимые компоненты
Прежде чем приступать к созданию виртуальной машины и управлению ею на устройстве Azure Stack Edge Pro с использованием сценария, необходимо выполнить следующие предварительные требования.
Для устройства Azure Stack Edge Pro с использованием локального пользовательского веб-интерфейса
Перед развертыванием виртуальных машин на устройстве 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 на устройстве.
Для клиента Windows
Убедитесь в том, что вы изменили:
- файл узла на клиенте; ИЛИ
- конфигурацию DNS-сервера.
Внимание
Рекомендуется изменить конфигурацию DNS-сервера для разрешения имен конечных точек.
Откройте Блокнот от имени администратора (для сохранения файла требуются привилегии администратора), а затем откройте файл hosts, расположенный в
C:\Windows\System32\Drivers\etc
.Добавьте следующие записи в файл hosts, указав соответствующие значения для вашего устройства:
<device IP> login.<appliance name>.<DNS domain> <device IP> management.<appliance name>.<DNS domain> <device IP> <storage name>.blob.<appliance name>.<DNS domain>
Для учетной записи хранения можно указать имя, которое сценарий будет использовать в дальнейшем для создания новой учетной записи хранения. Сценарий не проверяет, существует ли учетная запись хранения.
Для справки используйте следующее изображение. Сохраните файл hosts.
Загрузите сценарий PowerShell, использованный в этой процедуре.
Убедитесь в том, что клиент Windows выполняет PowerShell 5.0 или более позднюю версию.
Убедитесь в установке
Azure.Storage Module version 4.5.0
на вашей системе. Этот модуль можно получить из коллекции PowerShell. Чтобы установить этот модуль, введите:Install-Module -Name Azure.Storage -RequiredVersion 4.5.0
Чтобы проверить версию установленного модуля, введите:
Get-InstalledModule -name Azure.Storage
Чтобы удалить модули других версий введите:
Uninstall-Module -Name Azure.Storage
Загрузите AzCopy 10 на клиента Windows. Запишите это расположение, так как оно будет передано в качестве параметра при выполнении сценария.
Убедитесь в том, что на клиенте Windows выполняется TLS 1.2 или более поздней версии.
создание виртуальной машины;
Запустите PowerShell с правами администратора.
Перейдите в папку, в которую на клиенте был загружен сценарий.
Перед запуском сценария убедитесь в том, что вы подключены к локальному Azure Resource Manager устройства и срок действия подключения не истек.
PS C:\windows\system32> login-AzureRMAccount -EnvironmentName aztest1 -TenantId c0257de7-538f-415c-993a-1b87a031879d Account SubscriptionName TenantId Environment ------- ---------------- -------- ----------- EdgeArmUser@localhost Default Provider Subscription c0257de7-538f-415c-993a-1b87a031879d aztest1 PS C:\windows\system32> cd C:\Users\v2 PS C:\Users\v2>
Выполните следующую команду, чтобы запустить скрипт.
.\ArmPowershellClient.ps1 -NicPrivateIp <Private IP> -VHDPath <Path> -VHDFile <VHD File, with extension> -StorageAccountName <Name> -OS <Windows/Linux> -VMSize <Supported VM Size> -VMUserName <Username to be used to sign in to VM> -VMPassword <Password for the VM> --AzCopy10Path <Absolute Path>
Если вы хотите, чтобы IP-адрес был динамически выделен виртуальной машине, пропустите параметр
-NicPrivateIp
.Ниже приведены примеры выполнения сценария для создания виртуальной машины Windows и виртуальной машины Linux.
Для виртуальной машины Windows
Ниже приведен пример выходных данных для созданной виртуальной машины Windows.
PS C:\Users\v2> .\ArmPowershellClient.ps1 -VHDPath \\asefs\Logs\vmvhd -VHDFile WindowsServer2016Datacenter.vhd -StorageAccountName myasesatest -OS Windows -VMSize Standard_D1_v2 -VMUserName Administrator -VMPassword Password1 -AzCopy10Path C:\Users\AzCopy10\AzCopy.exe New-AzureRmResourceGroup -Name rg201221071831 -Location DBELocal -Force Successfully created Resource Group:rg201221071831 Successfully created Resource Group:StorAccRG Get-AzureRmStorageAccount -Name myasesatest -ResourceGroupName StorAccRG -ErrorAction SilentlyContinue New-AzureRmStorageAccount -Name myasesatest -ResourceGroupName StorAccRG -SkuName Standard_LRS -Location DBELocal Created New Storage Account Get-AzureRmStorageAccount -name myasesatest -resourcegroupname StorageAccountName ResourceGroupName Location SkuName Kind AccessTier CreationTime ProvisioningState EnableHttpsTrafficOnly ------------------ ----------------- -------- ------- ---- ---------- ------------ ----------------- ---------------------- myasesatest StorAccRG DBELocal StandardLRS Storage 12/22/2020 3:18:38 AM Succeeded False myasesatest StorAccRG DBELocal StandardLRS Storage 12/22/2020 3:18:38 AM Succeeded False Uploading Vhd to Storage Account New-AzureStorageContext -StorageAccountName myasesatest -StorageAccountKey hyibjhbVlOROgTlU1nQJIlxrg94eGDhF+RIQ71Z7UVZIxoOPMlHP274NUhZtA1hMxGBcpk2BVApiFasFPEhY/A== -Endpoint https://myasesatest.blob.myasegpuvm.wdshcsso.com/ New-AzureStorageAccountSASToken -Service Blob,File,Queue,Table -ResourceType Container,Service,Object -Permission SAS Token : ?sv=2017-07-29&sig=TXaGbjum9tFFaJnu3SFmDuslJuqNiNQwvuHfpPJMYN0%3D&spr=https&se=2020-12-22T04%3A18%3A43Z&srt=sco&ss=bfqt&sp=racwdl C:\Users\AzCopy10\AzCopy.exe make https://myasesatest.blob.myasegpuvm.wdshcsso.com/vmimages?sv=2017-07-29&sig=TXaGbjum9tFFaJnu3SFmDuslJuqNiNQwvuHfpPJMYN0%3D&spr=https&se=2020-12-22T04%3A18%3A43Z&srt=sco&ss=bfqt&sp=racwdl Successfully created the resource. AzCopy cp \\asefs\Logs\vmvhd\WindowsServer2016Datacenter.vhd https://myasesatest.blob.myasegpuvm.wdshcsso.com/vmimages?sv=2017-07-29&sig=TXaGbjum9tFFaJnu3SFmDuslJuqNiNQwvuHfpPJMYN0%3D&spr=https&se=2020-12-22T04%3A18%3A43Z&srt=sco&ss=bfqt&sp=racwdl INFO: Scanning... Job b6f54665-93c4-2f47-4770-5f3b7b0de2dc has started Log file is located at: C:\Users\Administrator\.azcopy\b6f54665-93c4-2f47-4770-5f3b7b0de2dc.log INFO: AzCopy.exe: A newer version 10.8.0 is available to download 99.9 %, 0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total, (Disk may be limiting speed) Job b6f54665-93c4-2f47-4770-5f3b7b0de2dc summary Elapsed Time (Minutes): 12.7717 Total Number Of Transfers: 1 Number of Transfers Completed: 1 Number of Transfers Failed: 0 Number of Transfers Skipped: 0 TotalBytesTransferred: 13958644224 Final Job Status: Completed VHD Upload Done Creating a new managed disk = New-AzureRmDiskConfig -Location DBELocal -CreateOption Import -SourceUri Microsoft.Azure.Commands.Compute.Automation.Models.PSDisk New-AzureRmDisk -ResourceGroupName rg201221071831 -DiskName ld201221071831 -Disk ResourceGroupName : rg201221071831 ManagedBy : Sku : Microsoft.Azure.Management.Compute.Models.DiskSku Zones : TimeCreated : 12/21/2020 7:31:35 PM OsType : CreationData : Microsoft.Azure.Management.Compute.Models.CreationData DiskSizeGB : 13 EncryptionSettings : ProvisioningState : Succeeded Id : /subscriptions/947b3cfd-7a1b-4a90-7cc5-e52caf221332/resourceGroups/rg201221071831/providers/Microsoft.Compute/disks/ld201221071831 Name : ld201221071831 Type : Microsoft.Compute/disks Location : DBELocal Tags : {} Created a new managed disk Creating a new Image out of managed disk ResourceGroupName : SourceVirtualMachine : StorageProfile : Microsoft.Azure.Management.Compute.Models.ImageStorageProfile ProvisioningState : Id : Name : Type : Location : DBELocal Tags : New-AzureRmImage -Image Microsoft.Azure.Commands.Compute.Automation.Models.PSImage -ImageName ig201221071831 -ResourceGroupName rg201221071831 -HyperVGeneration V1 ResourceGroupName : rg201221071831 SourceVirtualMachine : StorageProfile : Microsoft.Azure.Management.Compute.Models.ImageStorageProfile ProvisioningState : Succeeded Id : /subscriptions/947b3cfd-7a1b-4a90-7cc5-e52caf221332/resourceGroups/rg201221071831/providers/Microsoft.Compute/images/ig201221071831 Name : ig201221071831 Type : Microsoft.Compute/images Location : dbelocal Tags : {} Created a new Image Using Vnet /subscriptions/947b3cfd-7a1b-4a90-7cc5-e52caf221332/resourceGroups/ASERG/providers/Microsoft.Network/virtualNetworks/ASEVNET Creating a new Newtork Interface WARNING: The output object type of this cmdlet will be modified in a future release. VirtualMachine : IpConfigurations : {ip201221071831} DnsSettings : Microsoft.Azure.Commands.Network.Models.PSNetworkInterfaceDnsSettings MacAddress : 001DD87D7216 Primary : EnableAcceleratedNetworking : False EnableIPForwarding : False NetworkSecurityGroup : ProvisioningState : Succeeded VirtualMachineText : null IpConfigurationsText : [ { "Name": "ip201221071831", "Etag": "W/\"27785dd5-d12a-4d73-9495-ffad7847261a\"", "Id": "/subscriptions/947b3cfd-7a1b-4a90-7cc5-e52caf221332/resourceGroups/rg201221071831/providers/Microsoft.Network/networkInterfaces/nic201221071831/ipConfigurations/ip201221071831", "PrivateIpAddress": "10.57.51.61", "PrivateIpAllocationMethod": "Dynamic", "Subnet": { "Id": "/subscriptions/947b3cfd-7a1b-4a90-7cc5-e52caf221332/resourceGroups/ASERG/providers/Microsoft.Network/virtualNetworks/ASEVNET/subnets/ASEVNETsubNet", "ResourceNavigationLinks": [], "ServiceEndpoints": [] }, "ProvisioningState": "Succeeded", "PrivateIpAddressVersion": "IPv4", "LoadBalancerBackendAddressPools": [], "LoadBalancerInboundNatRules": [], "Primary": true, "ApplicationGatewayBackendAddressPools": [], "ApplicationSecurityGroups": [] } ] DnsSettingsText : { "DnsServers": [], "AppliedDnsServers": [], "InternalDomainNameSuffix": "qgotb4hjdh4efnhn0vz5adtb3f.a--x.internal.cloudapp.net" } NetworkSecurityGroupText : null ResourceGroupName : rg201221071831 Location : dbelocal ResourceGuid : e6327ab9-0855-4f04-9b36-17bbf31b5bd8 Type : Microsoft.Network/networkInterfaces Tag : TagsTable : Name : nic201221071831 Etag : W/"27785dd5-d12a-4d73-9495-ffad7847261a" Id : /subscriptions/947b3cfd-7a1b-4a90-7cc5-e52caf221332/resourceGroups/rg201221071831/providers/Microsoft.Network/networkInterfaces/nic201221071831 Created Network Interface Creating a new VM New-AzureRmVMConfig -VMName VM201221071831 -VMSize Standard_D1_v2 Set-AzureRmVMOperatingSystem -VM Microsoft.Azure.Commands.Compute.Models.PSVirtualMachine -Windows -ComputerName COM201221071831 -Credential System.Management.Automation.PSCredential Microsoft.Azure.Commands.Compute.Models.PSVirtualMachine = Set-AzureRmVMOSDisk -VM Microsoft.Azure.Commands.Compute.Models.PSVirtualMachine -Name osld201221071831 -Caching ReadWrite -CreateOption FromImage -Windows -StorageAccountType StandardLRS Add-AzureRmVMNetworkInterface -VM Microsoft.Azure.Commands.Compute.Models.PSVirtualMachine -Id /subscriptions/947b3cfd-7a1b-4a90-7cc5-e52caf221332/resourceGroups/rg201221071831/providers/Microsoft.Network/networkInterfaces/nic201221071831.Id Set-AzureRmVMSourceImage -VM Microsoft.Azure.Commands.Compute.Models.PSVirtualMachine -Id /subscriptions/947b3cfd-7a1b-4a90-7cc5-e52caf221332/resourceGroups/rg201221071831/providers/Microsoft.Compute/images/ig201221071831 New-AzureRmVM -ResourceGroupName rg201221071831 -Location DBELocal -VM Microsoft.Azure.Commands.Compute.Models.PSVirtualMachine -Verbose WARNING: Since the VM is created using premium storage or managed disk, existing standard storage account, myasesa1, is used for boot diagnostics. VERBOSE: Performing the operation "New" on target "VM201221071831". Ticks : 1533424841 Days : 0 Hours : 0 Milliseconds : 342 Minutes : 2 Seconds : 33 TotalDays : 0.00177479726967593 TotalHours : 0.0425951344722222 TotalMilliseconds : 153342.4841 TotalMinutes : 2.55570806833333 TotalSeconds : 153.3424841 RequestId : IsSuccessStatusCode : True StatusCode : OK ReasonPhrase : OK PS C:\Users\v2>
Для виртуальной машины Linux
Ниже приведен пример команды, которая использовалась для создания виртуальной машины Linux.
.\ArmPowershellClient.ps1 -VHDPath \\asefs\Logs\vmvhd -VHDFile ubuntu13.vhd -StorageAccountName myasesatest -OS Linux -VMSize Standard_D1_v2 -VMUserName Administrator -VMPassword Password1 -AzCopy10Path C:\Users\AzCopy10\AzCopy.exe New-AzureRmResourceGroup -Name rg201221075546 -Location DBELocal -Force
После успешного создания виртуальных машин, они должны отображаться в списке виртуальных машин на портале Azure. Чтобы просмотреть виртуальные машины, в ресурсе Azure Stack Edge для устройства в портал Azure перейдите к виртуальным машинам пограничных служб>.
Чтобы просмотреть сведения о виртуальной машине, выберите имя виртуальной машины. Обратите внимание на динамическое выделение IP-адреса для этой виртуальной машины.
Чтобы очистить созданные сценарием ресурсы, используйте следующие команды:
Get-AzureRmVM | Remove-AzureRmVM -Force Get-AzureRmNetworkInterface | Remove-AzureRmNetworkInterface -Force Get-AzureRmImage | Remove-AzureRmImage -Force Get-AzureRmDisk | Remove-AzureRmDisk -Force Get-AzureRmStorageAccount | Remove-AzureRmStorageAccount -Force
Следующие шаги
Развертывание виртуальных машин с использованием командлетов Azure PowerShell