Ćwiczenie — tworzenie zasobów przy użyciu skryptu interfejsu wiersza polecenia platformy Azure

Ukończone

W tej lekcji będziesz kontynuować pracę z przykładem firmy, która opracowuje narzędzia administracyjne systemu Linux. Celem jest użycie maszyn wirtualnych z systemem Linux w celu umożliwienia potencjalnym klientom testowania oprogramowania. Po skonfigurowaniu grupy zasobów nadszedł czas, aby utworzyć maszyny wirtualne.

Twoja firma zabezpieczyła stoisko na dużych targach linux. Planujesz skonfigurować obszar demonstracyjny z trzema terminalami, z których każdy jest połączony z oddzielną maszyną wirtualną z systemem Linux. Należy usunąć maszyny wirtualne i utworzyć je ponownie na końcu każdego dnia, aby codziennie zaczynały się od nowa. Ręczne tworzenie maszyn wirtualnych po długim dniu jest podatne na błędy, dlatego należy napisać skrypt interfejsu wiersza polecenia platformy Azure w celu zautomatyzowania procesu tworzenia maszyny wirtualnej.

Pisanie skryptu w celu utworzenia maszyn wirtualnych

Wykonaj następujące kroki, aby napisać skrypt w usłudze Azure Cloud Shell, który automatyzuje tworzenie maszyn wirtualnych.

Uwaga

Zazwyczaj uwierzytelnia się na platformie Azure przy użyciu poświadczeń za pomocą usługi , ale w usłudze az loginCloud Shell jest już uwierzytelniony, więc ten krok jest niepotrzebny.

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

  2. Ustawianie swojej subskrypcji platformy Azure

    az account set --subscription "my subscription name or ID"
    
  3. Korzystając z wybranego edytora tekstów, zapisz następujący skrypt na dysku lokalnym. W tym przykładzie plik ma nazwę msdocs-script-expanded.sh.

    #!/bin/bash
    
    # Assign parameters to variables
    vmCount=$1
    resourceGroupPrefix=$2
    location=$3
    vmNamePrefix=$4
    adminUserPrefix=$5
    shift 5
    images=("$@")
    
    # Loop 
    for i in $(seq 1 $vmCount)
    do
      let "randomIdentifier=$RANDOM*$RANDOM"
      resourceGroupName=$resourceGroupPrefix-$randomIdentifier
      location=westus
      adminUserName=$adminUserPrefix-$randomIdentifier
      vmName=$vmNamePrefix-$randomIdentifier
      vmImage=${images[$((i-1)) % ${#images[@]}]}
    
      echo "Creating VM $vmName on $vmImage with admin $adminUserName in resource group $resourceGroupName"
    
      # create the resource group
      az group create --name $resourceGroupName --location $location
    
      # create the VM
      az vm create \
          --resource-group $resourceGroupName \
          --location $location \
          --name $vmName \
          --generate-ssh-keys \
          --admin-username $adminUserName \
          --image $vmImage
    
    done
    
    
  4. Przekaż plik na dysk usługi Cloud Shell. Najprostszym sposobem jest użycie opcji menu Zarządzaj plikami .

Uruchamianie skryptu

  1. Wykonaj skrypt przy użyciu następującego polecenia:

    #!/bin/bash
    # make your file executable
    chmod +x msdocs-script-expanded.sh
    
    # remove Windows line continuation characters
    sed -i -e 's/\r$//' msdocs-script-expanded.sh
    
    # Run the script
    ./msdocs-script-expanded.sh 3 msdocs-rg eastus2 msdocsvm msdocsadmin Debian11 Debian11 Ubuntu2204  
    
  2. Poczekaj na ukończenie. Wykonanie skryptu może potrwać kilka minut.

  3. Sprawdź maszyny wirtualne. Po zakończeniu działania skryptu sprawdź, czy został on ukończony pomyślnie, wyświetlając listę maszyn wirtualnych w grupie zasobów:

    az vm list -o table
    

    Powinny zostać wyświetlone trzy maszyny wirtualne, z których każda ma unikatową nazwę i w oddzielnej grupie zasobów.

Pomyślnie utworzono skrypt, który automatyzuje tworzenie trzech maszyn wirtualnych, z których każda znajduje się w określonej grupie zasobów, zapewniając, że są one gotowe do codziennych pokazów na targach. Chociaż skrypt jest krótki i prosty, znacznie przyspiesza proces, który w przeciwnym razie byłby czasochłonny i podatny na błędy w przypadku ręcznego wykonania za pośrednictwem witryny Azure Portal.