演習 - Azure CLI スクリプトを使用してリソースを作成する

完了

このユニットでは、引き続き、Linux 管理ツールを開発している会社の例を扱います。 目標は、Linux Virtual Machines (VM) を使用して、潜在的な顧客がソフトウェアをテストできるようにすることです。 リソース グループが既に設定されているので、次に VM を作成します。

会社では Linux の大規模なトレード ショーでブースを確保しました。 デモンストレーション領域を設定し、そこにはそれぞれ別々の Linux VM に接続された 3 台の端末を設置する計画です。 1 日の終わりに VM を削除して再作成する必要があります。そうすることで、VM は毎朝新しい状態で開始されます。 長い 1 日の後に手動で VM を作成すると、エラーが発生しやすくなります。そのため、VM の作成プロセスを自動化する Azure CLI スクリプトを記述する必要があります。

仮想マシンを作成するスクリプトを記述する

仮想マシンの作成を自動化するスクリプトを Azure Cloud Shell に記述するには、次の手順に従います。

Note

通常は、az login で資格情報を使用して Azure に対して認証しますが、Cloud Shell では既に認証されているため、この手順は不要です。

  1. Azure portal から、または多くの Azure CLI コード ブロックの右上隅にある [Cloud Shell を開く] ボタンを使って、Azure Cloud Shell を開きます。

  2. Azure サブスクリプションの設定

    az account set --subscription "my subscription name or ID"
    
  3. 任意のテキスト エディターを使って、次のスクリプトをご自身のローカル ドライブに保存します。 この例では、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. そのファイルを Cloud Shell ドライブにアップロードします。 [ファイルの管理] メニュー オプションを使うのが最も簡単な方法です。

スクリプトを実行する

  1. 次のコマンドを使用してこのスクリプトを実行します。

    #!/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. 完了するまで待ちます。 このスクリプトの完了には数分かかります。

  3. VM を確認します。 スクリプトが完了したら、リソース グループ内の VM を一覧表示して、スクリプトが正常に完了したことを確認します。

    az vm list -o table
    

    3 つの VM が表示され、それぞれ一意の名前を持ち、個別のリソース グループに配置されているはずです。

3 つの VM の作成を自動化するスクリプトが正常に作成されました。各 VM は特定のリソース グループに含まれており、トレード ショーでの毎日のデモに対応できます。 スクリプトは短くて簡単ですが、Azure portal を使用して手動で実行すると、時間がかかり、エラーが発生しやすいプロセスが大幅に高速化されます。