Ćwiczenie — interaktywne tworzenie zasobu platformy Azure za pomocą interfejsu wiersza polecenia platformy Azure
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ą.
Uwaga / Notatka
To ćwiczenie jest opcjonalne. Jeśli chcesz wykonać to ćwiczenie, przed rozpoczęciem musisz utworzyć subskrypcję platformy Azure. Jeśli nie masz konta platformy Azure lub nie chcesz go tworzyć w tej chwili, możesz zapoznać się z instrukcjami, aby zrozumieć prezentowane informacje.
Uwaga / Notatka
Aby wykonać kroki opisane w tym ćwiczeniu, musisz użyć grupy zasobów. Możesz użyć utworzonej już grupy zasobów lub utworzyć nową grupę zasobów specjalnie na potrzeby tego ćwiczenia. Jeśli zdecydujesz się utworzyć nową grupę zasobów, ułatwi to wyczyszczenie wszelkich zasobów utworzonych podczas wykonywania ćwiczenia. Jeśli nie masz istniejącej grupy zasobów lub chcesz utworzyć nową specjalnie dla tego ćwiczenia, możesz wykonać kroki opisane w temacie Używanie witryny Azure Portal i usługi Azure Resource Manager do zarządzania grupami zasobów w celu utworzenia grupy zasobów przy użyciu witryny Azure Portal lub wykonaj kroki opisane w temacie Zarządzanie grupami zasobów platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure , aby utworzyć grupę zasobów przy użyciu interfejsu wiersza polecenia platformy Azure.
Ćwiczenie — tworzenie maszyny wirtualnej z systemem Linux przy użyciu interfejsu wiersza polecenia platformy Azure
Poniżej przedstawiono sposób tworzenia nowej maszyny wirtualnej platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure:
Otwórz usługę Azure Cloud Shell za pośrednictwem witryny Azure Portal lub za pomocą przycisku Otwórz usługę Cloud Shell znajdującego się w prawym górnym rogu wielu bloków kodu interfejsu wiersza polecenia platformy Azure.
Użyj polecenia ,
az vm createaby utworzyć maszynę wirtualną.- Określ nazwę grupy zasobów. Zastąp myResourceGroupName w poniższym przykładzie nazwą istniejącej grupy zasobów lub nazwą grupy zasobów utworzonej na potrzeby tego ćwiczenia.
- Przypisz nazwę do maszyny wirtualnej zgodnie ze standardami nazewnictwa organizacji.
- Wybierz lokalizację znajdującą się blisko Ciebie z listy dostępnych lokalizacji platformy Azure.
- Użyj obrazu systemu Linux:
Ubuntu2204. - Przypisz nazwę użytkownika administratora zgodnie ze standardami nazewnictwa organizacji.
#!/bin/bash # Create variables with values of your choice. rgName="myResourceGroupName" vmName="msdocs-vm-01" vmLocation="westus" vmImage="Ubuntu2204" vmAdminUserName="myAzureUserName" # Create the VM az vm create \ --resource-group $rgName \ --name $vmName \ --location $vmLocation \ --image $vmImage \ --public-ip-sku Standard \ --admin-username $vmAdminUserName \ --generate-ssh-keysNapiwek
Czy po prostu użyto przycisku Kopiuj i zauważ, że wszystkie znaki kontynuacji wiersza zostały usunięte? Wynika to z ustawienia fabrycznego. Ponieważ interfejs wiersza polecenia platformy Azure można uruchamiać w wielu środowiskach z różnymi znakami kontynuacji wiersza, przycisk kopiowania je usuwa. Jeśli wolisz skopiować sformatowany skrypt, użyj myszy, aby wybrać i skopiować zawartość bloku kodu.
Aby wkleić usługę Azure Cloud Shell, 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).
Jeśli skrypt nie skopiował poprawnie, a terminal usługi Cloud Shell czeka na dodanie danych wejściowych, użyj CTRL + Z , aby powrócić do monitu i spróbuj ponownie.
Poczekaj na utworzenie maszyny wirtualnej z systemem Linux:
Proces tworzenia maszyny wirtualnej trwa kilka minut.
Uzyskiwanie informacji o maszynie wirtualnej
Po zakończeniu interfejs wiersza polecenia platformy Azure zwraca informacje o maszynie wirtualnej w formacie JSON.
az vm listUżyj poleceń iaz vm show, aby uzyskać szczegółowe informacje o maszynie wirtualnej. Oto kilka przykładów:Kilka z tych skryptów używa nazw zmiennych i wartości przechowywanych w poprzednich krokach.
Pobierz listę wszystkich maszyn wirtualnych w formacie tabeli.
az vm list --output tableUzyskaj informacje o pojedynczej maszynie wirtualnej w formacie JSON.
Niektóre z tych danych wyjściowych są wyświetlane po utworzeniu nowej maszyny wirtualnej. Warto jednak zwrócić więcej informacji podczas określania zagnieżdżonych nazw właściwości w celu odwołania się do skryptu. W nazwach właściwości jest rozróżniana wielkość liter.
az vm show --resource-group $rgName --name $vmNameUzyskaj informacje o właściwościach maszyny wirtualnej.
# Get the time the VM was created az vm show --resource-group $rgName --name $vmName --query "timeCreated" # Get the OS disk storage account type az vm show --resource-group $rgName --name $vmName --query "storageProfile.osDisk.managedDisk.storageAccountType"Przechowywanie właściwości maszyny wirtualnej w zmiennej.
Interfejs wiersza polecenia platformy Azure ma kilka dostępnych typów danych wyjściowych. Format JSON jest domyślny, ale podczas przechowywania wartości w zmiennych usuń dodatkowe formatowanie za pomocą polecenia
--output tsv.#!/bin/bash # Store the VM id vmID=$(az vm show --resource-group $rgName --name $vmName --query id --output tsv) echo $vmID # Store the public IP address publicIP=$(az vm list-ip-addresses \ --resource-group $rgName \ --name $vmName \ --query "[].virtualMachine.network.publicIpAddresses[0].ipAddress" --output tsv) echo $publicIPNawiąż połączenie z maszyną wirtualną.
#!/bin/bash az ssh vm --private-key-file \path\to\private\key \ --resource-group $rgName \ --name $vmName \ --local-user $vmAdminUserNameWyloguj się, wpisując wyjście.
Dowiedz się więcej o opcjach maszyn wirtualnych
Podczas pracy z zasobami platformy Azure w wierszu polecenia nie używasz witryny Azure Portal, która często udostępnia listę opcji wyboru właściwości. Na przykład lista dostępnych lokalizacji i rozmiarów maszyn wirtualnych. Interfejs wiersza polecenia platformy Azure zawiera kilka poleceń w wielu grupach poleceń, które udostępniają te informacje. Oto kilka przykładów maszyn wirtualnych:
Napiwek
Format interfejsu wiersza polecenia --output table platformy Azure nie zwraca 100% dostępnych informacji, ale często ułatwia odczytywanie dużych wyników poleceń. Użyj parametru --query , aby określić informacje, w których najbardziej cię interesujesz.
Pobierz dostępne rozmiary maszyn wirtualnych dla lokalizacji:
az vm list-sizes --location westus --output tablePobierz dostępne jednostki SKU dla lokalizacji:
W zależności
--locationod wybranej opcji może upłynąć minuta lub dwie, aby interfejs wiersza polecenia platformy Azure zwrócił pełną listę jednostek SKU.# virtual machines az vm list-skus --location westus --resource-type virtualMachines --output table # disks az vm list-skus --location westus --resource-type disks --output tablePobierz dostępne opcje zmiany rozmiaru istniejącej maszyny wirtualnej:
az vm list-vm-resize-options --resource-group $rgName --name $vmName --output tablePokaż szczegóły wszystkich maszyn wirtualnych w grupie zasobów.
Jeśli wybrano pracę w środowisku lokalnym i masz wiele maszyn wirtualnych w subskrypcji, wykonaj zapytanie o maszyny wirtualne spełniające kryteria filtrowania.
#!/bin/bash # details of all VMs in a specified resource group az vm show --show-details --ids $(az vm list --resource-group $rgName --query "[].id" -o tsv) # list of all VMs created in the last 7 days createDate=$(date +%F -d "-7days") az vm list --resource-group $rgName \ --query "[?timeCreated >='$createDate'].{Name:name, admin:osProfile.adminUsername, DiskSize:storageProfile.osDisk.diskSizeGb}" \ --output table # list all VMs whose disks are of a certain type # first get a list of the disk types or organization is using az vm list --resource-group $rgName --query "[].{Name:name, osDiskSize:storageProfile.osDisk.diskSizeGb, managedDiskTypes:storageProfile.osDisk.managedDisk.storageAccountType}" --output table diskType="Premium_LRS" az vm list --resource-group $rgName \ --query "[?storageProfile.osDisk.managedDisk.storageAccountType =='$diskType'].{Name:name, admin:osProfile.adminUsername, osDiskSize:storageProfile.osDisk.diskSizeGb, CreatedOn:timeCreated, vmID:id}" \ --output table
Zatrzymywanie lub usuwanie maszyny wirtualnej
Zamknij maszynę wirtualną:
Możesz wyłączyć (zatrzymać) uruchomioną maszynę wirtualną, mimo że opłata za maszynę wirtualną będzie nadal naliczana.
az vm stop --resource-group $rgName --name $vmNameWprowadź wartość Y i naciśnij Enter po wyświetleniu monitu o kontynuowanie.
Cofanie przydziału maszyny wirtualnej:
Aby uniknąć naliczania opłat za zatrzymaną maszynę wirtualną, możesz cofnąć jej przydział. Cofanie przydziału maszyn wirtualnych zawiera zasoby, które nie są już przydzielone (opłaty nie są już naliczane). Stan maszyny wirtualnej zmienia się z "Zatrzymano" na "Zatrzymano (cofnięto przydział)".
az vm deallocate --resource-group $rgName --name $vmNameUsuwanie maszyny wirtualnej:
Po zatrzymaniu maszyny wirtualnej usuń ją, uruchamiając
az vm deletepolecenie .az vm delete --resource-group $rgName --name $vmNameWprowadź wartość Y i naciśnij Enter po wyświetleniu monitu o kontynuowanie.
Podczas wykonywania tych poleceń interaktywnie lepszym rozwiązaniem jest napisanie skryptu interfejsu wiersza polecenia platformy Azure. Skrypty umożliwiają ponowne użycie logiki do tworzenia lub usuwania maszyny wirtualnej w przyszłości.
W następnej lekcji zautomatyzujmy te zadania przy użyciu skryptu interfejsu wiersza polecenia platformy Azure.