Ćwiczenie — interaktywne tworzenie zasobu platformy Azure za pomocą interfejsu wiersza polecenia platformy Azure

Ukończone

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]. Należy pamiętać o ograniczeniach lokalizacji.

Poniżej przedstawiono sposób tworzenia nowej maszyny wirtualnej platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure:

  1. 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.

  2. Poczekaj na utworzenie maszyny wirtualnej z systemem Linux:

    Proces tworzenia maszyny wirtualnej trwa kilka minut.

  3. 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
    
  4. 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.

  1. Pobierz dostępne rozmiary maszyn wirtualnych dla lokalizacji:

    az vm list-sizes --location westus --output table
    
  2. 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
    
  3. Pobierz dostępne opcje zmiany rozmiaru istniejącej maszyny wirtualnej:

    az vm list-vm-resize-options --resource-group $rgName --name $vmName --output table
    
  4. 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

  1. 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.

  2. 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
    
  3. 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.