Ćwiczenie — tworzenie zasobów platformy Azure za pomocą programu Azure PowerShell przy użyciu skryptu

Ukończone

W tej lekcji będziesz kontynuować pracę z przykładem firmy, która opracowuje narzędzia administracyjne systemu Linux. Celem jest użycie maszyn wirtualnych z systemem Linux w celu umożliwienia potencjalnym klientom testowania oprogramowania. Po skonfigurowaniu grupy zasobów nadszedł czas, aby utworzyć maszyny wirtualne.

Twoja firma zabezpieczyła stoisko na dużych targach linux. Planujesz skonfigurować obszar demonstracyjny z trzema terminalami, z których każdy jest połączony z oddzielną maszyną wirtualną z systemem Linux. Należy usunąć maszyny wirtualne i utworzyć je ponownie na końcu każdego dnia, aby codziennie zaczynały się od nowa. Ręczne tworzenie maszyn wirtualnych po długim dniu jest podatne na błędy, dlatego należy napisać skrypt programu PowerShell w celu zautomatyzowania procesu tworzenia maszyny wirtualnej.

Pisanie skryptu w celu utworzenia maszyn wirtualnych

Wykonaj następujące kroki, aby napisać skrypt w usłudze Azure Cloud Shell, który automatyzuje tworzenie maszyn wirtualnych.

Uwaga

Zazwyczaj uwierzytelnia się na platformie Azure przy użyciu poświadczeń za pomocą usługi , ale w usłudze Connect-AzAccountCloud Shell jest już uwierzytelniony, więc ten krok jest niepotrzebny.

  1. Przejdź do folderu macierzystego:

    Set-Location -Path $HOME
    
  2. Utwórz nowy plik skryptu programu PowerShell:

    New-Item -Name ConferenceDailyReset.ps1 -ItemType File
    
  3. Otwórz zintegrowany edytor programu Visual Studio Code (VS Code):

    code ./ConferenceDailyReset.ps1
    

    Napiwek

    Zintegrowany edytor usługi Cloud Shell obsługuje również programy vim, nano i emacs, jeśli wolisz używać jednego z tych edytorów.

  4. Zdefiniuj parametr dla nazwy grupy zasobów:

    Dodaj następujący wiersz do skryptu:

    param (
        [string]$ResourceGroupName
    )
    
  5. Monituj o poświadczenia administratora maszyny wirtualnej:

    $adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
    
  6. Utwórz pętlę do wykonania trzy razy:

    $vms = 'web','app','sql'
    foreach ($vm in $vms) {
        $vm
    }
    
  7. W pętli zwróć nazwę każdej maszyny wirtualnej:

    Write-Output "Creating VM: $vm"
    
  8. Utwórz maszynę wirtualną przy użyciu zmiennej $vm :

    $azVmParams = @{
        ResourceGroupName = $ResourceGroupName
        Name              = $vm
        Credential        = $adminCredential
        Image             = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts         = 22
    }
    New-AzVm @azVmParams
    
  9. Zapisz plik:

    Aby zapisać skrypt, użyj menu kontekstowego wielokropka (...) w prawym górnym rogu edytora lub skrótu klawiaturowego Ctrl + S .

Ukończony skrypt

Ukończony skrypt powinien wyglądać podobnie do następującego przykładu:

param (
    [string]$ResourceGroupName
)

$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'

$vms = 'web','app','sql'

foreach ($vm in $vms) {

    Write-Output "Creating VM: $vm"

    $azVmParams = @{
        ResourceGroupName = $ResourceGroupName
        Name              = $vm
        Credential        = $adminCredential
        Image             = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts         = 22
    }
    New-AzVm @azVmParams
}

Po potwierdzeniu, że skrypt wygląda jak kod w poprzednim przykładzie, zamknij edytor przy użyciu menu kontekstowego wielokropka (...) w prawym górnym rogu edytora lub skrótu klawiaturowego Ctrl + Q .

Uruchamianie skryptu

  1. Wykonaj skrypt przy użyciu następującego polecenia:

    ./ConferenceDailyReset.ps1 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    
  2. Poczekaj na ukończenie. Wykonanie skryptu może potrwać kilka minut.

  3. Sprawdź maszyny wirtualne. Po zakończeniu działania skryptu sprawdź, czy został on ukończony pomyślnie, wyświetlając listę maszyn wirtualnych w grupie zasobów:

    Get-AzVM -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    

    Powinny tam być widoczne trzy maszyny wirtualne — każda z unikatową nazwą.

Pomyślnie utworzono skrypt, który automatyzuje tworzenie trzech maszyn wirtualnych, z których każda znajduje się w określonej grupie zasobów, zapewniając, że są one gotowe do codziennych pokazów na targach. Chociaż skrypt jest krótki i prosty, znacznie przyspiesza proces, który w przeciwnym razie byłby czasochłonny i podatny na błędy w przypadku ręcznego wykonania za pośrednictwem witryny Azure Portal.