Bereitstellen von VMs auf Ihrem Azure Stack Edge Pro-GPU-Gerät mithilfe eines Azure PowerShell-Skripts
GILT FÜR:Azure Stack Edge Pro – GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
In diesem Tutorial wird beschrieben, wie Sie eine VM auf Ihrem Azure Stack Edge Pro-Gerät mithilfe eines Azure PowerShell-Skripts erstellen und verwalten.
Voraussetzungen
Bevor Sie mit dem Erstellen und Verwalten einer VM auf Ihrem Azure Stack Edge Pro-Gerät mithilfe dieses Skripts beginnen, müssen Sie sicherstellen, dass Sie die in den folgenden Schritten aufgeführten Voraussetzungen erfüllen:
Für Azure Stack Edge Pro-Gerät über die lokale Webbenutzeroberfläche
Bevor Sie virtuelle Computer auf Ihrem Azure Stack Edge-Gerät bereitstellen können, müssen Sie den Client so konfigurieren, dass er über Azure Resource Manager über Azure PowerShell eine Verbindung mit dem Gerät herstellt. Eine ausführliche Anleitung finden Sie unter Herstellen einer Verbindung mit Azure Resource Manager auf Ihrem Azure Stack Edge-Gerät.
Stellen Sie sicher, dass Sie mit den folgenden Schritten von Ihrem Client aus auf das Gerät zugreifen können. Sie haben diese Konfiguration bereits ausgeführt, als Sie eine Verbindung mit Azure Resource Manager hergestellt haben, und jetzt überprüfen Sie, ob die Konfiguration erfolgreich war.
Vergewissern Sie sich, dass die Kommunikation mit Azure Resource Manager funktioniert, indem Sie den folgenden Befehl ausführen:
Geben Sie Folgendes ein, um die Authentifizierungs-APIs des lokalen Geräts aufzurufen:
Wenn Sie Compute für Kubernetes konfiguriert haben, können Sie diesen Schritt überspringen. Stellen Sie andernfalls sicher, dass Sie eine Netzwerkschnittstelle für Compute aktiviert haben. Gehen Sie hierzu wie folgt vor:
a. Wechseln Sie auf der lokalen Benutzeroberfläche zu den Einstellungen für Compute.
b. Wählen Sie die Netzwerkschnittstelle aus, die Sie verwenden möchten, um einen virtuellen Switch zu erstellen. Die von Ihnen erstellten virtuellen Computer werden an einen virtuellen Switch angefügt, der an diesen Port und das zugehörige Netzwerk angefügt ist. Achten Sie darauf, ein Netzwerk auszuwählen, das mit der IP-Adresse übereinstimmt, die Sie für den virtuellen Computer verwenden werden.c. Wählen Sie für die Netzwerkschnittstelle unter Für Compute aktivieren die Option Ja aus. Azure Stack Edge erstellt und verwaltet einen virtuellen Switch, der dieser Netzwerkschnittstelle entspricht. Geben Sie zu diesem Zeitpunkt keine bestimmten IP-Adressen für Kubernetes ein. Die Aktivierung von Compute kann mehrere Minuten dauern.
Hinweis
Wählen Sie beim Erstellen von GPU-VMs eine Netzwerkschnittstelle aus, die mit dem Internet verbunden ist. So können Sie die GPU-Erweiterung auf Ihrem Gerät installieren.
Für den Windows-Client
Stellen Sie sicher, dass Sie Folgendes angepasst haben:
- Der Hostdatei auf dem Client oder
- in der DNS-Serverkonfiguration
Wichtig
Es wird empfohlen, dass Sie die DNS-Serverkonfiguration für die Endpunktnamensauflösung ändern.
Starten Sie Editor als Administrator (Administratorrechte sind erforderlich, um die Datei zu speichern), und öffnen Sie anschließend die Datei hosts unter
C:\Windows\System32\Drivers\etc
.Fügen Sie die folgenden Einträge zur Datei hosts hinzu, und fügen Sie die entsprechenden Werte für Ihr Gerät ein:
<device IP> login.<appliance name>.<DNS domain> <device IP> management.<appliance name>.<DNS domain> <device IP> <storage name>.blob.<appliance name>.<DNS domain>
Für das Speicherkonto können Sie einen Namen angeben, den das Skript später verwenden soll, um ein neues Speicherkonto zu erstellen. Das Skript prüft nicht, ob das Speicherkonto vorhanden ist.
Verwenden Sie die folgende Abbildung als Referenz. Speichern Sie die Datei hosts.
Laden Sie das PowerShell-Skript herunter, das in diesem Verfahren verwendet wird.
Stellen Sie sicher, dass auf dem Windows-Client mindestens PowerShell 5.0 ausgeführt wird.
Stellen Sie sicher, dass die
Azure.Storage Module version 4.5.0
auf Ihrem System installiert ist. Sie können dieses Modul aus dem PowerShell-Katalog abrufen. Geben Sie zum Installieren dieses Modul Folgendes ein:Install-Module -Name Azure.Storage -RequiredVersion 4.5.0
Um die Version des installierten Moduls zu überprüfen, geben Sie Folgendes ein:
Get-InstalledModule -name Azure.Storage
Um Module anderer Versionen zu deinstallieren, geben Sie Folgendes ein:
Uninstall-Module -Name Azure.Storage
Laden Sie AzCopy 10 auf Ihren Windows-Client herunter. Notieren Sie sich diesen Speicherort, da Sie ihn beim Ausführen des Skripts als Parameter übergeben.
Stellen Sie sicher, dass auf dem Windows-Client mindestens TLS 1.2 ausgeführt wird.
Erstellen eines virtuellen Computers (VM)
Führen Sie PowerShell als Administrator aus.
Wechseln Sie zum Ordner, in den Sie das Skript auf Ihrem Client heruntergeladen haben.
Stellen Sie vor dem Ausführen des Skripts sicher, dass Sie noch mit der lokalen Azure Resource Manager-Instanz des Geräts verbunden sind und dass die Verbindung nicht abgelaufen ist.
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>
Verwenden Sie den folgenden Befehl, um das Skript auszuführen:
.\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>
Wenn die IP-Adresse dynamisch der VM zugeordnet werden soll, lassen Sie den Parameter
-NicPrivateIp
weg.Hier sind die Beispiele, wenn das Skript ausgeführt wird, um eine Windows-VM und eine Linux-VM zu erstellen.
Für eine Windows-VM:
Im Folgenden finden Sie eine Beispielausgabe für eine Windows-VM, die erstellt wurde.
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>
Für eine Linux-VM:
Dies ist der Beispielbefehl, der zum Erstellen einer Linux-VM verwendet wurde.
.\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
Nachdem Sie die VMs erfolgreich erstellt haben, sollten sie in der Liste der VMs im Azure-Portal angezeigt werden. Navigieren Sie zum Anzeigen der VMs im Azure-Portal in der Azure Stack Edge-Ressource für Ihr Gerät zu Edge-Dienste > Virtuelle Computer.
Wählen Sie den Namen einer VM aus, um Details dazu anzuzeigen. Beachten Sie die dynamische Zuordnung der IP-Adresse zu dieser VM.
Mit den folgenden Befehlen können Sie die vom Skript erstellten Ressourcen bereinigen:
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