Ćwiczenie — tworzenie zasobu platformy Azure za pomocą skryptów w programie Azure PowerShell
Przypomnij sobie nasz oryginalny scenariusz: tworzenie maszyn wirtualnych w celu przetestowania oprogramowania CRM. Po udostępnieniu nowej kompilacji chcemy uruchomić nową maszynę wirtualną, aby przetestować środowisko pełnej instalacji za pomocą czystego obrazu. Po zakończeniu chcemy usunąć maszynę wirtualną.
Wypróbujmy polecenia, aby utworzyć maszynę wirtualną.
Tworzenie maszyny wirtualnej z systemem Linux przy użyciu programu Azure PowerShell
Ponieważ używamy piaskownicy platformy Azure, nie musisz tworzyć grupy zasobów. Zamiast tego użyj
Utwórzmy nową maszynę wirtualną platformy Azure przy użyciu programu PowerShell.
Użyj polecenia cmdlet
New-AzVm
, aby utworzyć maszynę wirtualną.Użyj grupy zasobów [nazwa grupy zasobów piaskownicy]. Nazwij maszynę wirtualną. Zazwyczaj chcesz użyć czegoś znaczącego, który identyfikuje cele maszyny wirtualnej, lokalizacji i (jeśli istnieje więcej niż jeden) numer wystąpienia. Używamy polecenia "testvm-eus-01" dla maszyny wirtualnej testowej w regionie Wschodnie stany USA, wystąpienie 1. Wprowadź własną nazwę na podstawie miejsca, w którym umieszczasz maszynę wirtualną.
Wybierz lokalizację znajdującą się blisko Ciebie z poniższej listy, która jest dostępna w piaskownicy platformy Azure. Pamiętaj, aby zmienić wartość w poniższym przykładowym poleceniu, jeśli używasz funkcji kopiowania i wklejania.
- westus2
- southcentralus
- centralus
- eastus
- westeurope
- southeastasia
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
Użyj polecenia "Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest" dla obrazu. Ten obraz to Ubuntu Linux.
Użyj polecenia cmdlet
Get-Credential
i przekaż wyniki do parametruCredential
.Ważne
Zobacz Często zadawane pytania dotyczące maszyny wirtualnej z systemem Linux, aby uzyskać informacje o ograniczeniach nazwy użytkownika i hasła. 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 małe litery
- Mają wielkie litery
- Musi zawierać cyfrę
- Musi zawierać znak specjalny (zgodność wyrażenia regularnego [\W_])
-OpenPorts
Dodaj parametr i przekaż wartość "22" jako port. Ten port umożliwia połączenie SSH z maszyną.Utwórz nazwę publicznego adresu IP. Ta nazwa służy do tworzenia i znajdowania statycznego adresu IP w celu zalogowania się na maszynie.
New-AzVm -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name "testvm-eus-01" -Credential (Get-Credential) -Location "eastus" -Image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest -OpenPorts 22 -PublicIpAddressName "testvm-eus-01"
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).
Utwórz nazwę użytkownika i hasło, a następnie naciśnij klawisz Enter. Program PowerShell rozpoczyna tworzenie maszyny wirtualnej.
Tworzenie maszyny wirtualnej trwa kilka minut. Gdy wszystko będzie gotowe, możesz wysłać do niego zapytanie i przypisać obiekt maszyny wirtualnej do zmiennej (
$vm
).$vm = (Get-AzVM -Name "testvm-eus-01" -ResourceGroupName <rgn>[sandbox resource group name]</rgn>)
Wykonaj zapytanie o wartość, aby zrzucić informacje o maszynie wirtualnej.
$vm
Powinny zostać wyświetlone dane wyjściowe podobne do następujących:
ResourceGroupName : <rgn>[sandbox resource group name]</rgn> Id : /subscriptions/00000000-0000-0000-0000-000000000000/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}
Możesz uzyskać dostęp do złożonych obiektów za pomocą notacji kropkowej (
.
). Aby na przykład wyświetlić właściwości obiektu skojarzonegoVMSize
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
Można nawet przekazać obiekt maszyny wirtualnej do innych poleceń cmdlet. Na przykład uruchomienie następującego polecenia pokazuje wszystkie dostępne rozmiary maszyny wirtualnej:
$vm | Get-AzVMSize
Teraz uruchom następujące polecenie, aby uzyskać publiczny adres IP:
az vm list-ip-addresses -n testvm-eus-01 -g <rgn>[sandbox resource group name]</rgn>
Za pomocą adresu IP możesz połączyć się z maszyną wirtualną przy użyciu protokołu SSH. Jeśli na przykład użyto nazwy użytkownika
bob
, a adres IP to205.22.16.5
, uruchomienie tego polecenia spowoduje nawiązanie połączenia z maszyną z systemem Linux:ssh bob@205.22.16.5
Wyloguj się, wprowadzając polecenie
exit
.
Usuwanie maszyny wirtualnej
Aby wypróbować więcej poleceń, usuńmy maszynę wirtualną. Najpierw musimy go zamknąć (wprowadź Y , jeśli zostanie wyświetlony monit o kontynuowanie):
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
Po zatrzymaniu maszyny wirtualnej usuń maszynę wirtualną, uruchamiając Remove-AzVM
polecenie cmdlet (wprowadź Y , jeśli zostanie wyświetlony monit o kontynuowanie):
Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
Uruchom to polecenie, aby wyświetlić listę wszystkich zasobów w grupie zasobów:
Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Format-Table
Powinno zostać wyświetlonych kilka zasobów (dysków, sieci wirtualnych itd.), które nadal istnieją.
Microsoft.Compute/disks
Microsoft.Network/networkInterfaces
Microsoft.Network/networkSecurityGroups
Microsoft.Network/publicIPAddresses
Microsoft.Network/virtualNetworks
Polecenie Remove-AzVM
po prostu usuwa maszynę wirtualną. Nie usuwa żadnych innych zasobów. W tym momencie prawdopodobnie usuniemy samą grupę zasobów i zrobimy z nią. Przejdźmy jednak przez kolejne etapy ćwiczenia, aby ręcznie wyczyścić zasoby. Polecenia powinny być zgodne z pewnym wzorcem.
Usuń interfejs sieciowy:
$vm | Remove-AzNetworkInterface –Force
Usuń dyski zarządzanego systemu operacyjnego:
Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDisk -Force
Następnie usuń sieć wirtualną:
Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetwork -Force
Usuń sieciowa grupa zabezpieczeń:
Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroup -Force
Na koniec usuń publiczny adres IP:
Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName | Remove-AzPublicIpAddress -Force
Powinniśmy przechwycić wszystkie utworzone zasoby. Sprawdź grupę zasobów, aby mieć pewność. Wykonaliśmy tutaj wiele poleceń ręcznych, ale lepszym rozwiązaniem byłoby napisanie skryptu. Następnie możemy ponownie użyć tej logiki później, aby utworzyć lub usunąć maszynę wirtualną. Przyjrzyjmy się wykonywaniu skryptów przy użyciu programu PowerShell.