Ćwiczenie — interaktywne tworzenie zasobu platformy Azure za pomocą programu Azure PowerShell

Ukończone

W oryginalnym scenariuszu należy utworzyć maszyny wirtualne, aby przetestować oprogramowanie do zarządzania relacjami z klientami (CRM). Gdy jest dostępna nowa kompilacja, chcesz uruchomić nową maszynę wirtualną, aby przetestować całe środowisko instalacji na podstawie czystego obrazu. Po zakończeniu testowania możesz usunąć maszynę wirtualną.

Wypróbujmy polecenia, aby utworzyć maszynę wirtualną.

Tworzenie maszyny wirtualnej z systemem Linux przy użyciu programu Azure PowerShell

Ponieważ używasz piaskownicy platformy Azure, nie musisz tworzyć grupy zasobów. Zamiast tego użyj istniejącej grupy zasobów piaskownicy [nazwa grupy zasobów piaskownicy]. Należy pamiętać o ograniczeniach lokalizacji.

Oto jak utworzyć nową maszynę wirtualną platformy Azure przy użyciu programu Azure PowerShell:

  1. New-AzVM Użyj polecenia cmdlet , aby utworzyć maszynę wirtualną.

    • Określ grupę zasobów piaskownicy: [nazwa grupy zasobów piaskownicy].

    • Nadaj maszynie wirtualnej nazwę zgodnie ze standardami nazewnictwa organizacji.

    • Wybierz lokalizację znajdującą się blisko Ciebie z listy dostępnych lokalizacji piaskownicy platformy Azure.

      • westus2
      • southcentralus
      • centralus
      • eastus
      • westeurope
      • southeastasia
      • japaneast
      • brazilsouth
      • australiasoutheast
      • centralindia
    • Użyj obrazu systemu Ubuntu Linux: Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest.

    • Get-Credential Użyj polecenia cmdlet , aby ustawić poświadczenia administratora maszyny wirtualnej.

    • Dodaj parametr OpenPorts z portem 22 dostępu SSH.

    • Utwórz nazwę publicznego adresu IP dla logowania SSH.

    $azVmParams = @{
        ResourceGroupName   = '<rgn>[sandbox resource group name]</rgn>'
        Name                = 'testvm-eus-01'
        Credential          = (Get-Credential)
        Location            = 'eastus'
        Image               = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts           = 22
        PublicIpAddressName = 'testvm-eus-01'
    }
    New-AzVm @azVmParams
    

    Napiwek

    Do kopiowania poleceń do schowka możesz używać przycisku Kopiuj. Aby wkleić, kliknij prawym przyciskiem myszy nowy wiersz w terminalu usługi Cloud Shell i wybierz polecenie Wklej lub użyj skrótu klawiaturowego Shift+Insert (⌘+V w systemie macOS).

  2. Wprowadź poświadczenia:

    Po wyświetleniu monitu wprowadź nazwę użytkownika i hasło, postępując zgodnie z wytycznymi: hasła muszą mieć długość od 12 do 123 znaków i spełniać trzy z następujących czterech wymagań dotyczących złożoności: małe litery, wielkie litery, cyfry i znaki specjalne (dopasowanie wyrażenia regularnego [\W_]). Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące maszyny wirtualnej z systemem Linux.

  3. Poczekaj na utworzenie maszyny wirtualnej:

    Proces tworzenia maszyny wirtualnej trwa kilka minut.

  4. Wykonaj zapytanie dotyczące maszyny wirtualnej:

    Po zakończeniu wykonaj zapytanie dotyczące maszyny wirtualnej i przypisz obiekt maszyny wirtualnej do zmiennej ($vm).

    $vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    
  5. Wyświetl informacje o maszynie wirtualnej:

    Aby wyświetlić informacje o maszynie wirtualnej, wyświetl zawartość zmiennej.

    $vm
    

    Przykładowe wyjście:

    ResourceGroupName : <rgn>[sandbox resource group name]</rgn>
    Id                : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rgn>[sandbox resource group name]</rgn>/providers/Microsoft.Compute/virtualMachines/testvm-eus-01
    VmId              : 00000000-0000-0000-0000-000000000000
    Name              : testvm-eus-01
    Type              : Microsoft.Compute/virtualMachines
    Location          : eastus
    Tags              : {}
    HardwareProfile   : {VmSize}
    NetworkProfile    : {NetworkInterfaces}
    OSProfile         : {ComputerName, AdminUsername, LinuxConfiguration, Secrets}
    ProvisioningState : Succeeded
    StorageProfile    : {ImageReference, OsDisk, DataDisks}
    ...
    
  6. Sprawdź właściwości maszyny wirtualnej:

    Obiekty złożone można sprawdzić za pomocą operatora dostępu do składowych (.). Aby na przykład wyświetlić właściwości obiektu skojarzonego VMSize z sekcją HardwareProfile , uruchom następujące polecenie:

    $vm.HardwareProfile
    

    Aby uzyskać informacje na jednym z dysków, uruchom następujące polecenie:

    $vm.StorageProfile.OsDisk
    
  7. Pobierz dostępne rozmiary maszyn wirtualnych:

    Przekaż obiekt maszyny wirtualnej do innych poleceń cmdlet, aby uzyskać dostępne rozmiary:

    $vm | Get-AzVMSize
    
  8. Uzyskaj publiczny adres IP:

    Pobierz publiczny adres IP, aby nawiązać połączenie z maszyną wirtualną i zapisać go w zmiennej.

    $ip = Get-AzPublicIpAddress -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name testvm-eus-01
    
  9. Nawiąż połączenie z maszyną wirtualną:

    Nawiąż połączenie z maszyną wirtualną przy użyciu protokołu SSH przy użyciu adresu IP ze zmiennej . Jeśli na przykład nazwa użytkownika to bob, użyj następującego polecenia:

    ssh bob@$($ip.IpAddress)
    

    Wyloguj się, wpisując wyjście.

Usuwanie maszyny wirtualnej

Aby wypróbować więcej poleceń, usuńmy maszynę wirtualną. Wykonaj te kroki:

  1. Zamknij maszynę wirtualną:

    Uruchom następujące polecenie:

    Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    Wprowadź wartość Y i naciśnij Enter po wyświetleniu monitu o kontynuowanie.

  2. Usuwanie maszyny wirtualnej:

    Po zatrzymaniu maszyny wirtualnej usuń ją, uruchamiając Remove-AzVM polecenie cmdlet .

    Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    Wprowadź wartość Y i naciśnij Enter po wyświetleniu monitu o kontynuowanie.

  3. Wyświetl listę wszystkich zasobów w grupie zasobów:

    Get-AzResource Użyj polecenia cmdlet , aby wyświetlić listę wszystkich zasobów w grupie zasobów. Wyniki są przesyłane potokami w celu Select-Object zwrócenia określonych właściwości:

    Get-AzResource -ResourceGroupName $vm.ResourceGroupName | 
        Select-Object -Property Name, ResourceType, ResourceGroupName
    

    Powinien zostać wyświetlonych kilka zasobów, w tym dysków, sieci wirtualnych itp., które nadal istnieją:

    Name                    ResourceType                            ResourceGroupName
    ----                    ------------                            -----------------
    cloudshell              Microsoft.Storage/storageAccounts       <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/virtualNetworks       <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/publicIPAddresses     <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/networkSecurityGroups <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01           Microsoft.Network/networkInterfaces     <rgn>[sandbox resource group name]</rgn>
    testvm-eus-01_OsDisk_1  Microsoft.Compute/disks                 <rgn>[sandbox resource group name]</rgn>
    

    Polecenie Remove-AzVM usuwa tylko maszynę wirtualną. Nie usuwa żadnych innych zasobów. Aby ręcznie je wyczyścić, wykonaj następujące kroki:

  4. Usuń interfejs sieciowy:

    Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name |
        Remove-AzNetworkInterface
    

    Wprowadź wartość Y i naciśnij Enter po wyświetleniu monitu o kontynuowanie.

  5. Usuń sieciowa grupa zabezpieczeń:

    Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzNetworkSecurityGroup
    

    Wprowadź wartość Y i naciśnij Enter po wyświetleniu monitu o kontynuowanie.

  6. Usuń publiczny adres IP:

    Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzPublicIpAddress
    

    Wprowadź wartość Y i naciśnij Enter po wyświetleniu monitu o kontynuowanie.

  7. Usuń sieć wirtualną:

    Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzVirtualNetwork
    

    Wprowadź wartość Y i naciśnij Enter po wyświetleniu monitu o kontynuowanie.

  8. Usuń dyski zarządzanego systemu operacyjnego:

    Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name |
        Remove-AzDisk
    

    Wprowadź wartość Y i naciśnij Enter po wyświetleniu monitu o kontynuowanie.

  9. Sprawdź, czy wszystkie zasoby zostały usunięte:

    Sprawdź grupę zasobów, aby upewnić się, że wszystkie zasoby zostały usunięte:

    Get-AzResource -ResourceGroupName $vm.ResourceGroupName | 
        Select-Object -Property Name, ResourceType, ResourceGroupName
    

Podczas wykonywania tych poleceń interaktywnie lepszym rozwiązaniem jest napisanie skryptu programu PowerShell. Skrypty umożliwiają ponowne użycie logiki do tworzenia lub usuwania maszyny wirtualnej w przyszłości

Następnie przyjrzyjmy się automatyzowaniu tych zadań przy użyciu skryptu programu PowerShell.