Cvičení – vytvoření prostředků pomocí skriptu Azure CLI

Dokončeno

V této lekci budete pokračovat příkladem společnosti, která vyvíjí nástroje pro správu Linuxu. Cílem je použít virtuální počítače s Linuxem, které umožní potenciálním zákazníkům otestovat váš software. Když už je skupina prostředků nastavená, je čas vytvořit virtuální počítače.

Vaše společnost zajistila stánky ve velké linuxové obchodní show. Plánujete nastavit ukázkovou oblast se třemi terminály, z nichž každý je připojený k samostatnému virtuálnímu počítači s Linuxem. Virtuální počítače musíte odstranit a znovu je vytvořit na konci každého dne, aby se každé ráno začaly znovu aktualizovat. Ruční vytváření virtuálních počítačů po dlouhém dni je náchylné k chybám, takže potřebujete napsat skript Azure CLI pro automatizaci procesu vytváření virtuálních počítačů.

Poznámka:

Toto cvičení je volitelné. Pokud chcete absolvovat toto cvičení, budete muset před zahájením vytvořit předplatné Azure. Pokud nemáte účet Azure nebo ho v tuto chvíli nechcete vytvořit, můžete si přečíst pokyny, abyste porozuměli zobrazeným informacím.

Vytvoření skriptu pro vytvoření virtuálních počítačů

Pomocí těchto kroků napište skript v Azure Cloud Shellu, který automatizuje vytváření virtuálních počítačů.

Poznámka:

Obvykle byste se v Azure ověřili pomocí svých přihlašovacích údajů az login, ale v Cloud Shellu jste už ověřeni, takže tento krok není nutný.

  1. Otevřete Azure Cloud Shell prostřednictvím webu Azure Portal nebo pomocí tlačítka Open Cloud Shell umístěné v pravém horním rohu mnoha bloků kódu Azure CLI.

  2. Nastavení předplatného Azure

    az account set --subscription "my subscription name or ID"
    
  3. Pomocí libovolného textového editoru uložte následující skript na místní disk. V tomto příkladu má soubor název 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. Nahrajte soubor na jednotku Cloud Shellu. Nejjednodušší způsob je použít možnost nabídky Spravovat soubory .

Spuštění skriptu

  1. Spusťte skript pomocí následujícího příkazu:

    #!/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. Počkejte na dokončení. Provedení tohoto skriptu trvá několik minut.

  3. Ověřte virtuální počítače. Jakmile se skript dokončí, ověřte jeho úspěšné dokončení výpisem virtuálních počítačů ve skupině prostředků:

    az vm list -o table
    

    Měli byste vidět tři virtuální počítače, každý s jedinečným názvem a v samostatné skupině prostředků.

Úspěšně jste vytvořili skript, který automatizuje vytváření tří virtuálních počítačů, z nichž každý je v konkrétní skupině prostředků a zajišťuje, že jsou připravené na denní ukázky na veletrhu. I když je skript krátký a jednoduchý, výrazně zrychluje proces, který by jinak byl časově náročný a náchylný k chybám, pokud by se provedl ručně prostřednictvím webu Azure Portal.