Azure CLI スクリプトを使用してリソースを作成する
複雑なタスクや反復的なタスクは、手動で実行すると時間がかかり、エラーが発生しやすくなる場合があります。 組織は、コストを削減してエラーを回避するためにこれらのタスクを自動化したいと考えます。
自動化は、複数の仮想マシンでソフトウェアをテストする顧客関係管理 (CRM) の例で不可欠です。 これらのマシンは、継続的に削除して再作成する必要がある場合があります。 Azure CLI スクリプトを使用して VM の作成を自動化すると、毎回手動で作成するよりもはるかに効率的で信頼性が高くなります。
VM を作成するコア操作以外に、スクリプトは他のいくつかの要件を満たす必要があります。
- 複数の VM の作成:
az vm create
を使用して、一意に名前が付けられた複数の VM を作成します。 - リソース グループ パラメーター:スクリプトでリソース グループの名前をパラメーターとして受け入れることを許可します。
このユニットでは、これらの要件を満たす Bash 環境で Azure CLI スクリプトを記述して実行する方法について説明します。
az Azure CLI Bash スクリプトとは
Azure CLI スクリプトは、コマンドと制御コンストラクトを含むテキスト ファイルです。 このスクリプトは参照コマンドを実行し、制御コンストラクトは Bash で提供されるループ、変数、パラメーター、コメントなどのプログラミング機能です。
Azure CLI Bash スクリプト ファイルには、.sh
ファイル拡張子があります。 任意のテキスト エディターを使用してこれらのファイルを作成して保存することができます。
スクリプトを作成したら、コマンド ラインからファイルの名前を渡すと実行できます。 ファイル名の前に、現在のディレクトリを表すドットとバックスラッシュを付けます。
.\myScript.sh
Bash の手法
Bash には、プログラミング言語でよく見られる機能が含まれています。 この演習で重点を置いているスクリプトでは、変数、ループ、パラメーターという 3 つの主要な機能を使用します。
変数
Azure CLI では、変数に値を割り当てると、変数が自動的に作成されます。 次に例を示します。
location="eastus"
変数に格納されている値を確認するには、$
プレフィックスとその名前を使用します。
echo $location
ループ
Bash には、until
、while
、for
などのいくつかのループ構造があります。 for
ループは、コレクション内の一定数の値に対してループを実行する必要があるシナリオに適しています。
#!/bin/bash
for i in 1 2 3
do
echo "Loop $i times"
done
パラメーター
Azure CLI スクリプトを作成するときに、スクリプトにパラメーターを追加し、スクリプトの実行時にこれらのパラメーターの値を指定できます。 次に例を示します。
.\setupEnvironment.sh parameter1 parameter2 parameter3
スクリプト内で、変数に値をキャプチャします。 この例では、パラメーターは loopCount と name です:
#!/bin/bash
loopCount=3
name="msdocs"
for i in $(seq 1 $loopCount)
do
loopName="loop $i for $name"
echo $loopName
done
出力は次のようになります。
loop 1 for msdocs
loop 2 for msdocs
loop 3 for msdocs
これらのパラメーターを入力とループとして使用して、指定されたパラメーターに基づいて一連の VM を作成できます。 この方法では、スクリプトの汎用性が維持され、同じコードの繰り返しが回避されます。
サンプル スクリプト
変数、ループ、パラメーターを使用して複数の VM を作成するサンプル スクリプトを次に示します。
#!/bin/bash
# Assign parameters to variables
vmCount=$1
adminUserPrefix=$2
shift 2
images=("$@")
# Loop
for i in $(seq 1 $vmCount)
do
let "randomIdentifier=$RANDOM*$RANDOM"
resourceGroupName="msdocs-rg-$randomIdentifier"
location="westus"
adminUserName="msdocs-$randomIdentifier"
vmName="msdocs-vm-$randomIdentifier"
vmImage=${images[$((i-1)) % ${#images[@]}]}
echo "Creating VM $vmName on $mvImage 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 \
--admin-username $adminUserName \
--name $vmName \
--image $vmImage \
--generate-ssh-keys
done
スクリプトを実行する
スクリプトを msdocs-script.sh
として保存し、Bash コマンド ラインから実行し、必要なパラメーターを指定します。
./msdocs-script.sh 3 Debian11 Debian11 Ubuntu2204
このスクリプトを使用すると、異なるリソース グループに複数の VM を効率的に作成し、反復的なタスクを自動化し、Azure 環境全体の一貫性を確保できます。 次のユニットでは、このスクリプトをビルドして追加のパラメーターを含めてから、正常に完了したかどうかを確認してみましょう。