Wdrażanie maszyn wirtualnych na urządzeniu Azure Stack Edge za pomocą programu Azure PowerShell
DOTYCZY: Azure Stack Edge Pro — GPUAzure Stack Edge Pro 2Azure Stack Edge Pro R Azure Stack Edge Mini R
W tym artykule opisano sposób tworzenia maszyny wirtualnej i zarządzania nią na urządzeniu Azure Stack Edge przy użyciu programu Azure PowerShell.
Przepływ pracy wdrażania maszyny wirtualnej
Ogólny przepływ pracy wdrażania wdrożenia maszyny wirtualnej jest następujący:
- Połącz się z lokalnym usługą Azure Resource Manager urządzenia.
- Zidentyfikuj wbudowaną subskrypcję na urządzeniu.
- Przełącz obraz maszyny wirtualnej.
- Utwórz grupę zasobów w wbudowanej subskrypcji. Grupa zasobów zawiera maszynę wirtualną i wszystkie powiązane zasoby.
- Utwórz lokalne konto magazynu na urządzeniu do przechowywania wirtualnego dysku twardego używanego do tworzenia obrazu maszyny wirtualnej.
- Przekaż obraz źródłowy systemu Windows/Linux do konta magazynu, aby utworzyć dysk zarządzany.
- Użyj dysku zarządzanego, aby utworzyć obraz maszyny wirtualnej.
- Włącz obliczenia na porcie urządzenia, aby utworzyć przełącznik wirtualny.
- Spowoduje to utworzenie sieci wirtualnej przy użyciu przełącznika wirtualnego dołączonego do portu, na którym włączono obliczenia.
- Utwórz maszynę wirtualną przy użyciu wcześniej utworzonego obrazu maszyny wirtualnej, sieci wirtualnej i wirtualnych interfejsów sieciowych w celu komunikowania się w sieci wirtualnej i przypisania publicznego adresu IP w celu zdalnego uzyskiwania dostępu do maszyny wirtualnej. Opcjonalnie dołącz dyski danych, aby zapewnić więcej miejsca do magazynowania dla maszyny wirtualnej.
Wymagania wstępne
Przed wdrożeniem maszyn wirtualnych na urządzeniu Azure Stack Edge należy skonfigurować klienta tak, aby łączył się z urządzeniem za pośrednictwem usługi Azure Resource Manager za pośrednictwem programu Azure PowerShell. Aby uzyskać szczegółowe instrukcje, zobacz Nawiązywanie połączenia z usługą Azure Resource Manager na urządzeniu Azure Stack Edge.
Upewnij się, że możesz użyć poniższych kroków, aby uzyskać dostęp do urządzenia z poziomu klienta. Ta konfiguracja została już wykonana po nawiązaniu połączenia z usługą Azure Resource Manager, a teraz sprawdzasz, czy konfiguracja zakończyła się pomyślnie.
Sprawdź, czy komunikacja z usługą Azure Resource Manager działa, uruchamiając następujące polecenie:
Add-AzEnvironment -Name <Environment Name> -ARMEndpoint "https://management.<appliance name>.<DNSDomain>"
Aby wywołać interfejsy API urządzeń lokalnych w celu uwierzytelnienia, wprowadź:
login-AzAccount -EnvironmentName <Environment Name> -TenantId c0257de7-538f-415c-993a-1b87a031879d
Aby nawiązać połączenie za pośrednictwem usługi Azure Resource Manager, podaj nazwę użytkownika EdgeArmUser i hasło.
Jeśli skonfigurowano obliczenia dla platformy Kubernetes, możesz pominąć ten krok. W przeciwnym razie upewnij się, że interfejs sieciowy dla obliczeń został włączony, wykonując następujące czynności:
a. W lokalnym interfejsie użytkownika przejdź do pozycji Ustawienia obliczeniowe .
b. Wybierz interfejs sieciowy, którego chcesz użyć do utworzenia przełącznika wirtualnego. Utworzone maszyny wirtualne zostaną dołączone do przełącznika wirtualnego dołączonego do tego portu i skojarzonej sieci. Pamiętaj, aby wybrać sieć zgodną z adresem IP używanym dla maszyny wirtualnej.c. W obszarze Włącz dla obliczeń w interfejsie sieciowym wybierz pozycję Tak. Usługa Azure Stack Edge utworzy przełącznik wirtualny odpowiadający interfejsowi sieciowemu i zarządza nim. Obecnie nie wprowadzaj określonych adresów IP dla platformy Kubernetes. Włączenie obliczeń może potrwać kilka minut.
Uwaga
Jeśli tworzysz maszyny wirtualne procesora GPU, wybierz interfejs sieciowy połączony z Internetem. Dzięki temu można zainstalować rozszerzenie procesora GPU na urządzeniu.
Wykonywanie zapytań o wbudowaną subskrypcję na urządzeniu
W przypadku usługi Azure Resource Manager obsługiwana jest tylko jedna stała subskrypcja widoczna dla użytkownika. Ta subskrypcja jest unikatowa dla każdego urządzenia, a nie można zmienić nazwy subskrypcji i identyfikatora subskrypcji.
Subskrypcja zawiera wszystkie zasoby wymagane do utworzenia maszyny wirtualnej.
Ważne
Subskrypcja jest tworzona podczas włączania maszyn wirtualnych z witryny Azure Portal i działa lokalnie na urządzeniu.
Subskrypcja służy do wdrażania maszyn wirtualnych.
Aby wyświetlić listę subskrypcji, uruchom następujące polecenie:
Get-AzSubscription
Oto kilka przykładowych danych wyjściowych:
PS C:\WINDOWS\system32> Get-AzSubscription Name Id TenantId ---- -- -------- Default Provider Subscription ... ... PS C:\WINDOWS\system32>
Pobierz listę zarejestrowanych dostawców zasobów uruchomionych na urządzeniu. Lista zwykle obejmuje zasoby obliczeniowe, sieć i magazyn.
Get-AzResourceProvider
Uwaga
Dostawcy zasobów są wstępnie zarejestrowani i nie można ich modyfikować ani zmieniać.
Oto kilka przykładowych danych wyjściowych:
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>
Tworzenie grupy zasobów
Zacznij od utworzenia nowej grupy zasobów platformy Azure i użyj jej jako kontenera logicznego dla wszystkich zasobów powiązanych z maszyną wirtualną, takich jak konto magazynu, dysk, interfejs sieciowy i dysk zarządzany.
Ważne
Wszystkie zasoby są tworzone w tej samej lokalizacji co urządzenie, a lokalizacja jest ustawiona na DBELocal.
Ustaw parametry.
$ResourceGroupName = "<Resource group name>"
Utwórz grupę zasobów dla zasobów utworzonych dla maszyny wirtualnej.
New-AzResourceGroup -Name $ResourceGroupName -Location DBELocal
Oto kilka przykładowych danych wyjściowych:
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>
Tworzenie lokalnego konta magazynu
Utwórz nowe lokalne konto magazynu przy użyciu istniejącej grupy zasobów. Użyj tego lokalnego konta magazynu, aby przekazać obraz dysku wirtualnego podczas tworzenia maszyny wirtualnej.
Przed utworzeniem lokalnego konta magazynu należy skonfigurować klienta, aby nawiązać połączenie z urządzeniem za pośrednictwem usługi Azure Resource Manager za pośrednictwem programu Azure PowerShell. Aby uzyskać szczegółowe instrukcje, zobacz Nawiązywanie połączenia z usługą Azure Resource Manager na urządzeniu Azure Stack Edge.
Ustaw parametry.
$StorageAccountName = "<Storage account name>"
Utwórz nowe lokalne konto magazynu na urządzeniu.
New-AzStorageAccount -Name $StorageAccountName -ResourceGroupName $ResourceGroupName -Location DBELocal -SkuName Standard_LRS
Uwaga
Za pomocą usługi Azure Resource Manager można tworzyć tylko konta magazynu lokalnego, takie jak magazyn lokalnie nadmiarowy (standardowy lub premium). Aby utworzyć konta magazynu warstwowego, zobacz Samouczek: transfer danych za pośrednictwem kont magazynu za pomocą usługi Azure Stack Edge Pro z procesorem GPU.
Oto przykładowe dane wyjściowe:
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>
Aby uzyskać klucze dostępu dla istniejącego utworzonego lokalnego konta magazynu, podaj skojarzną nazwę grupy zasobów i nazwę lokalnego konta magazynu.
Get-AzStorageAccountKey
Oto przykładowe dane wyjściowe:
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>
Dodawanie identyfikatora URI obiektu blob do pliku hosta
Identyfikator URI obiektu blob został już dodany w pliku hosts dla klienta, którego używasz do nawiązywania połączenia z usługą Azure Blob Storage w temacie Modyfikowanie pliku hosta w celu rozpoznawania nazw punktów końcowych podczas nawiązywania połączenia z usługą Azure Resource Manager na urządzeniu Azure Stack Edge. Ten wpis został użyty do dodania identyfikatora URI obiektu blob:
<Device IP address>
<storage name>.blob.<appliance name>.<dnsdomain>
Instalowanie certyfikatów
Jeśli używasz protokołu HTTPS, musisz zainstalować odpowiednie certyfikaty na urządzeniu. W tym miejscu zainstalujesz certyfikat punktu końcowego obiektu blob. Aby uzyskać więcej informacji, zobacz Use certificates with your Azure Stack Edge Pro with GPU device (Używanie certyfikatów z urządzeniem azure Stack Edge Pro z procesorem GPU).
Przekazywanie wirtualnego dysku twardego
Skopiuj wszystkie obrazy dysków, które mają być używane do stronicowych obiektów blob na utworzonym wcześniej koncie magazynu lokalnego. Możesz użyć narzędzia takiego jak AzCopy , aby przekazać wirtualny dysk twardy (VHD) do konta magazynu.
Użyj następujących poleceń z narzędziem AzCopy 10:
Ustaw niektóre parametry, w tym odpowiednią wersję interfejsów API dla narzędzia AzCopy. W tym przykładzie użyto narzędzia 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>
Skopiuj dysk VHD ze źródła (w tym przypadku systemu lokalnego) do konta magazynu utworzonego na urządzeniu we wcześniejszym kroku.
$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"
Oto przykładowe dane wyjściowe:
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
Tworzenie dysku zarządzanego na podstawie dysku VHD
Utwórz dysk zarządzany na podstawie przekazanego dysku VHD.
Ustaw parametry.
$DiskName = "<Managed disk name>" $HyperVGeneration = "<Generation of the image: V1 or V2>"
Utwórz dysk zarządzany na podstawie przekazanego dysku VHD. Aby uzyskać źródłowy adres URL wirtualnego dysku twardego, przejdź do kontenera na koncie magazynu zawierającym wirtualny dysk twardy w Eksplorator usługi Storage. Wybierz dysk VHD, a następnie kliknij prawym przyciskiem myszy, a następnie wybierz polecenie Właściwości. W oknie dialogowym Właściwości obiektu blob wybierz identyfikator 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
Oto przykładowe dane wyjściowe:
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>
Tworzenie obrazu maszyny wirtualnej na podstawie dysku zarządzanego
Teraz utworzysz obraz maszyny wirtualnej na podstawie dysku zarządzanego.
Ustaw parametry.
$DiskSize = "<Size greater than or equal to size of source managed disk>" $OsType = "<linux or windows>" $ImageName = "<Image name>"
Utwórz obraz maszyny wirtualnej. Obsługiwane typy systemu operacyjnego to Linux i 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
Oto przykładowe dane wyjściowe.
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>
Tworzenie maszyny wirtualnej przy użyciu wcześniej utworzonych zasobów
Przed utworzeniem i wdrożeniem maszyny wirtualnej należy utworzyć jedną sieć wirtualną i skojarzyć z nią interfejs sieciowy.
Ważne
Obowiązują następujące zasady:
- Można utworzyć tylko jedną sieć wirtualną, nawet w grupach zasobów. Sieć wirtualna musi mieć dokładnie taką samą przestrzeń adresową jak sieć logiczna.
- Sieć wirtualna może mieć tylko jedną podsieć. Podsieć musi mieć dokładnie taką samą przestrzeń adresową jak sieć wirtualna.
- Podczas tworzenia wirtualnej karty sieciowej można użyć tylko statycznej metody alokacji. Użytkownik musi podać prywatny adres IP.
Wykonywanie zapytań dotyczących automatycznie utworzonej sieci wirtualnej
Po włączeniu obliczeń z lokalnego interfejsu użytkownika urządzenia sieć wirtualna o nazwie ASEVNET
jest tworzona automatycznie w ramach ASERG
grupy zasobów.
Użyj następującego polecenia, aby wysłać zapytanie do istniejącej sieci wirtualnej:
$ArmVn = Get-AzVirtualNetwork -Name ASEVNET -ResourceGroupName ASERG
Tworzenie wirtualnej karty sieciowej
Karta wirtualnego interfejsu sieciowego jest tworzona przy użyciu identyfikatora podsieci sieci wirtualnej.
Ustaw parametry.
$IpConfigName = "<IP config name>" $NicName = "<Network interface name>"
Tworzenie wirtualnego interfejsu sieciowego.
$ipConfig = New-AzNetworkInterfaceIpConfig -Name $IpConfigName -SubnetId $aRmVN.Subnets[0].Id $Nic = New-AzNetworkInterface -Name $NicName -ResourceGroupName $ResourceGroupName -Location DBELocal -IpConfiguration $IpConfig
Domyślnie adres IP jest dynamicznie przypisywany do interfejsu sieciowego z sieci włączonej na potrzeby obliczeń. Użyj elementu
-PrivateIpAddress parameter
, jeśli przydzielasz statyczny adres IP do interfejsu sieciowego.Oto przykładowe dane wyjściowe:
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>
Opcjonalnie podczas tworzenia wirtualnej karty sieciowej dla maszyny wirtualnej możesz przekazać publiczny adres IP. W tym przypadku publiczny adres IP zwraca prywatny adres 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
Tworzenie maszyny wirtualnej
Teraz możesz użyć obrazu maszyny wirtualnej, aby utworzyć maszynę wirtualną i dołączyć ją do utworzonej wcześniej sieci wirtualnej.
Ustaw nazwę użytkownika i hasło, aby zalogować się do maszyny wirtualnej, którą chcesz utworzyć.
$pass = ConvertTo-SecureString "<Password>" -AsPlainText -Force; $cred = New-Object System.Management.Automation.PSCredential("<Enter username>", $pass)
Po utworzeniu i włączeniu maszyny wirtualnej użyj poprzedniej nazwy użytkownika i hasła, aby się do niej zalogować.
Ustaw parametry.
$VmName = "<VM name>" $ComputerName = "<VM display name>" $OsDiskName = "<OS disk name>"
Utwórz maszynę wirtualną.
$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
Oto przykładowe dane wyjściowe.
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
Aby ustalić adres IP przypisany do utworzonej maszyny wirtualnej, wykonaj zapytanie dotyczące utworzonego interfejsu sieciowego. Znajdź i
PrivateIPAddress
skopiuj adres IP maszyny wirtualnej. Oto przykładowe dane wyjściowe.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>
Nawiązywanie połączenia z maszyną wirtualną
W zależności od tego, czy utworzono maszynę wirtualną z systemem Windows, czy maszynę wirtualną z systemem Linux, instrukcje dotyczące połączenia mogą być różne.
Nawiązywanie połączenia z maszyną wirtualną z systemem Linux
Aby nawiązać połączenie z maszyną wirtualną z systemem Linux, wykonaj następujące czynności:
Nawiąż połączenie z maszyną wirtualną przy użyciu prywatnego adresu IP, który został przekazany podczas tworzenia maszyny wirtualnej.
Otwórz sesję SSH, aby nawiązać połączenie z adresem IP.
ssh -l <username> <ip address>
Po wyświetleniu monitu podaj hasło użyte podczas tworzenia maszyny wirtualnej.
Jeśli musisz podać klucz SSH, użyj tego polecenia.
ssh -i c:/users/Administrator/.ssh/id_rsa Administrator@5.5.41.236
Oto przykładowe dane wyjściowe podczas nawiązywania połączenia z maszyną wirtualną:
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>
Jeśli podczas tworzenia maszyny wirtualnej użyto publicznego adresu IP, możesz użyć tego adresu IP do nawiązania połączenia z maszyną wirtualną. Aby uzyskać publiczny adres IP, uruchom następujące polecenie:
$publicIp = Get-AzPublicIpAddress -Name $PublicIp -ResourceGroupName $ResourceGroupName
W tym przypadku publiczny adres IP jest taki sam jak prywatny adres IP przekazany podczas tworzenia interfejsu sieciowego.
Nawiązywanie połączenia z maszyną wirtualną z systemem Windows
Aby nawiązać połączenie z maszyną wirtualną z systemem Windows, wykonaj następujące czynności:
Nawiąż połączenie z maszyną wirtualną z systemem Windows przy użyciu protokołu RDP (Remote Desktop Protocol) za pośrednictwem adresu IP przekazanego podczas tworzenia maszyny wirtualnej.
Na kliencie otwórz protokół RDP.
Przejdź do pozycji Start, a następnie wprowadź mstsc.
W okienku Podłączanie pulpitu zdalnego wprowadź adres IP maszyny wirtualnej i poświadczenia dostępu użyte w pliku parametrów szablonu maszyny wirtualnej. Następnie wybierz pozycję Połącz.
Uwaga
Może być konieczne zatwierdzenie połączenia z niezaufaną maszyną.
Teraz logujesz się do maszyny wirtualnej uruchomionej na urządzeniu.
Zarządzanie maszyną wirtualną
W poniższych sekcjach opisano niektóre typowe operacje, które można utworzyć na urządzeniu Azure Stack Edge Pro.
Wyświetlanie listy maszyn wirtualnych uruchomionych na urządzeniu
Aby zwrócić listę wszystkich maszyn wirtualnych uruchomionych na urządzeniu Azure Stack Edge, uruchom następujące polecenie:
Get-AzVM -ResourceGroupName <String> -Name <String>
Aby uzyskać więcej informacji na temat tego polecenia cmdlet, zobacz Get-AzVM.
Włączanie maszyny wirtualnej
Aby włączyć maszynę wirtualną uruchomioną na urządzeniu, uruchom następujące polecenie cmdlet:
Start-AzVM [-Name] <String> [-ResourceGroupName] <String>
Aby uzyskać więcej informacji na temat tego polecenia cmdlet, zobacz Start-AzVM.
Zawieszanie lub zamykanie maszyny wirtualnej
Aby zatrzymać lub zamknąć maszynę wirtualną uruchomioną na urządzeniu, uruchom następujące polecenie cmdlet:
Stop-AzVM [-Name] <String> [-StayProvisioned] [-ResourceGroupName] <String>
Aby uzyskać więcej informacji na temat tego polecenia cmdlet, zobacz Polecenie cmdlet Stop-AzVM.
Zmienianie rozmiaru maszyny wirtualnej
Aby zmienić rozmiar istniejącej maszyny wirtualnej, uruchom następujące polecenia cmdlet:
Ważne
Przed zmianą rozmiaru zatrzymaj maszynę wirtualną bez flagi -StayProvisioned
.
$vm = Get-AzVM [-Name] <String> [-ResourceGroupName] <String>
$vm.HardwareProfile.VmSize = <new size> - Example: "Standard_D3_v2"
$vm | Update-AzVM
Dodawanie dysku danych
Jeśli wymagania dotyczące obciążenia maszyny wirtualnej wzrosną, może być konieczne dodanie dysku danych. W tym celu uruchom następujące polecenie:
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
Usuwanie maszyny wirtualnej
Aby usunąć maszynę wirtualną z urządzenia, uruchom następujące polecenie cmdlet:
Remove-AzVM [-Name] <String> [-ResourceGroupName] <String>
Aby uzyskać więcej informacji na temat tego polecenia cmdlet, zobacz Polecenie cmdlet Remove-AzVm.