Ć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ą.
Ćwiczenie — tworzenie maszyny wirtualnej z systemem Linux przy użyciu interfejsu wiersza polecenia platformy Azure
Ponieważ używasz piaskownicy platformy Azure, nie musisz tworzyć grupy zasobów. Zamiast tego użyj istniejącej grupy zasobów piaskownicy [nazwa grupy zasobów piaskownicy]
Poniżej przedstawiono sposób tworzenia nowej maszyny wirtualnej platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure:
Użyj polecenia ,
az vm create
aby utworzyć maszynę wirtualną.Użyj polecenia ,
az group list
aby uzyskać nazwę grupy zasobów piaskownicy.Przypisz nazwę do maszyny wirtualnej zgodnie ze standardami nazewnictwa organizacji.
Wybierz lokalizację znajdującą się blisko Ciebie z listy dostępnych lokalizacji piaskownicy platformy Azure:
- westus2
- southcentralus
- centralus
- eastus
- westeurope
- southeastasia
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
Użyj obrazu systemu Linux:
Ubuntu2204
.Przypisz nazwę użytkownika administratora zgodnie ze standardami nazewnictwa organizacji.
#!/bin/bash # Get the single resource group name created by the sandbox. rgName=$(az group list --query "[].{Name:name}" --output tsv) echo $rgName # Create additional variables with values of your choice. 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-keys
Napiwek
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 piaskownicy 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 list
Uż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 table
Uzyskaj 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 $vmName
Uzyskaj 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 $publicIP
Nawiązywanie połączenia z maszyną wirtualną.**
#!/bin/bash az ssh vm --private-key-file \path\to\private\key \ --resource-group $rgName \ --name $vmName \ --local-user $vmAdminUserName
Wyloguj 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 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 table
Pobierz dostępne jednostki SKU dla lokalizacji:
W zależności
--location
od 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 table
Pobierz dostępne opcje zmiany rozmiaru istniejącej maszyny wirtualnej:
az vm list-vm-resize-options --resource-group $rgName --name $vmName --output table
Pokaż 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 $vmName
Wprowadź 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 $vmName
Usuwanie maszyny wirtualnej:
Po zatrzymaniu maszyny wirtualnej usuń ją, uruchamiając
az vm delete
polecenie .az vm delete --resource-group $rgName --name $vmName
Wprowadź 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.