Ćwiczenie — tworzenie zasobów platformy Azure za pomocą programu Azure PowerShell przy użyciu skryptu
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-AzAccount
Cloud Shell jest już uwierzytelniony, więc ten krok jest niepotrzebny.
Przejdź do folderu macierzystego:
Set-Location -Path $HOME
Utwórz nowy plik skryptu programu PowerShell:
New-Item -Name ConferenceDailyReset.ps1 -ItemType File
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.
Zdefiniuj parametr dla nazwy grupy zasobów:
Dodaj następujący wiersz do skryptu:
param ( [string]$ResourceGroupName )
Monituj o poświadczenia administratora maszyny wirtualnej:
$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
Utwórz pętlę do wykonania trzy razy:
$vms = 'web','app','sql' foreach ($vm in $vms) { $vm }
W pętli zwróć nazwę każdej maszyny wirtualnej:
Write-Output "Creating VM: $vm"
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
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
Wykonaj skrypt przy użyciu następującego polecenia:
./ConferenceDailyReset.ps1 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Poczekaj na ukończenie. Wykonanie skryptu może potrwać kilka minut.
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.