Tworzenie zasobów platformy Azure za pomocą programu Azure PowerShell przy użyciu skryptu
Złożone lub powtarzające się zadania mogą być czasochłonne i podatne na błędy podczas ręcznego wykonywania. Organizacje wolą automatyzować te zadania, aby zmniejszyć koszty i uniknąć błędów.
Automatyzacja jest niezbędna w przykładzie zarządzania relacjami z klientami (CRM), w którym testujesz oprogramowanie na wielu maszynach wirtualnych z systemem Linux, które muszą być stale usuwane i tworzone ponownie. Używanie skryptu programu PowerShell do automatyzowania tworzenia maszyn wirtualnych jest znacznie bardziej wydajne i niezawodne niż ręczne tworzenie ich za każdym razem.
Poza podstawową operacją tworzenia maszyny wirtualnej skrypt musi spełniać kilka innych wymagań:
- Tworzenie wielu maszyn wirtualnych: użyj polecenia
New-AzVM
, aby utworzyć wiele unikatowych nazwanych maszyn wirtualnych. - Parametr grupy zasobów: zezwól skryptowi na akceptowanie nazwy grupy zasobów jako parametru.
W tej lekcji dowiesz się, jak napisać i wykonać skrypt programu PowerShell spełniający te wymagania.
Co to jest skrypt programu PowerShell?
Skrypt programu PowerShell jest plikiem tekstowym zawierającym polecenia i konstrukcje kontrolne. Polecenia są wywołaniami poleceń cmdlet, a konstrukcje sterujące to funkcje programowania, takie jak pętle, zmienne, parametry, komentarze itp. dostarczone przez program PowerShell.
Pliki skryptów programu PowerShell mają .ps1
rozszerzenie pliku. Te pliki można tworzyć i zapisywać przy użyciu dowolnego edytora tekstów.
Napiwek
Jeśli piszesz skrypty programu PowerShell, rozważ użycie programu Visual Studio Code (VS Code), który jest bezpłatny i obsługiwany w systemach Windows, Linux i macOS. Rozszerzenie programu PowerShell dla programu VS Code oferuje funkcje, takie jak wyróżnianie składni i lista dostępnych poleceń cmdlet.
Poniższy zrzut ekranu to przykład programu VS Code z przykładowym skryptem umożliwiającym nawiązanie połączenia z platformą Azure i utworzenie maszyny wirtualnej:
Po utworzeniu skryptu można go wykonać z poziomu wiersza polecenia programu PowerShell, przekazując nazwę pliku poprzedzoną kropką dla bieżącego katalogu i ukośnikiem odwrotnym:
.\myScript.ps1
Techniki programu PowerShell
Program PowerShell zawiera funkcje często spotykane w językach programowania. Zmienne można definiować, używać gałęzi i pętli, przechwytywać parametry wiersza polecenia, zapisywać funkcje, dodawać komentarze i nie tylko. W przypadku skryptu, na którym koncentrujesz się, potrzebne są trzy kluczowe funkcje: zmienne, pętle i parametry.
Zmienne
W programie PowerShell zmienne są deklarowane przy użyciu znaku dolara ($
) i przypisanych wartości przy użyciu operatora równości (=
). Na przykład:
$location = 'eastus'
Aby określić wartość przechowywaną w zmiennej, użyj prefiksu $
i jego nazwy:
$location
Zmienne mogą przechowywać obiekty. Na przykład poniższa definicja ustawia zmienną $adminCredential
na obiekt zwracany przez Get-Credential
polecenie cmdlet:
$adminCredential = Get-Credential
Pętle
Program PowerShell ma kilka struktur pętli, w tym For
, Foreach
, Do-Until
, Do-While
i While
. Pętla Foreach
jest dobrym wyborem w scenariuszach, w których należy wykonać pętlę na zestawie wartości w kolekcji.
$items = 'web','app','sql'
foreach ($item in $items) {
$item
}
Parametry
Podczas tworzenia skryptu programu PowerShell można dodać parametry do skryptu, a następnie określić wartości tych parametrów podczas wykonywania skryptu. Na przykład:
.\setupEnvironment.ps1 -Name 'web','app','sql' -Location eastus
Wewnątrz skryptu przechwyć wartości w zmiennych. W tym przykładzie parametry to Nazwa i Lokalizacja:
param (
[string[]]$Name,
[string]$Location
)
Możesz użyć tych parametrów jako danych wejściowych i pętli, aby utworzyć zestaw maszyn wirtualnych na podstawie podanych parametrów. Takie podejście utrzymuje ogólny skrypt i unika powtarzania tego samego kodu.
Łączenie technik
Kombinacja funkcji języka programu PowerShell i poleceń cmdlet programu Azure PowerShell udostępnia wszystkie narzędzia potrzebne do automatyzacji zadań platformy Azure. W przykładzie CRM można utworzyć wiele maszyn wirtualnych z systemem Linux przy użyciu skryptu sparametryzowanego i pętli w celu usprawnienia procesu. Ten skrypt umożliwia wykonanie złożonej operacji w jednym kroku.
Przykładowy skrypt
Oto przykładowy skrypt, który demonstruje używanie zmiennych, pętli i parametrów do tworzenia wielu maszyn wirtualnych:
param (
[string[]]$Name = 'web','app','sql',
[string]$ResourceGroupName,
[string]$Location = 'eastus'
)
$adminCredential = Get-Credential
foreach ($vm in $Name) {
$azVmParams = @{
ResourceGroupName = $ResourceGroupName
Name = $vm
Credential = $adminCredential
Location = $Location
Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
OpenPorts = 22
PublicIpAddressName = $vm
}
New-AzVM @azVmParams
}
Wykonywanie skryptu
Zapisz skrypt jako CreateVMs.ps1
i uruchom go z wiersza polecenia programu PowerShell, podając wymagane parametry:
.\CreateVMs.ps1 -ResourceGroupName <resource-group-name>
Za pomocą tego skryptu można wydajnie tworzyć wiele maszyn wirtualnych w różnych grupach zasobów, automatyzując powtarzające się zadania i zapewniając spójność w środowisku platformy Azure.