演習 - Azure CLI を使用して対話形式で Azure リソースを作成する
元のシナリオでは、顧客関係管理 (CRM) ソフトウェアをテストするために仮想マシン (VM) を作成する必要があります。 新しいビルドを使用できるようになったら、新しい VM を起動して、クリーン イメージからインストール エクスペリエンス全体をテストする必要があります。 テストが完了したら、VM を削除できます。
VM を作成するコマンドを試してみましょう。
演習 - Azure CLI を使用して Linux VM を作成する
Azure サンドボックスを使用しているので、リソース グループを作成する必要はありません。 代わりに、既存のサンドボックス リソース グループ
Azure CLI を使用して新しい Azure VM を作成する方法を次に示します。
VM を作成するには、
az vm create
コマンドを使用します。サンドボックス リソース グループの名前を取得するには、
az group list
コマンドを使用します。組織の命名標準に従って VM に名前を割り当てます。
使用可能な Azure サンドボックスの場所の一覧から、近くの場所を選択する:
- westus2
- southcentralus
- centralus
- eastus
- westeurope
- southeastasia
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
Linux イメージ
Ubuntu2204
を使用します。組織の命名標準に従って管理者のユーザー名を割り当てます。
#!/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
ヒント
コピー ボタンを使用するだけで、すべての行連結文字が削除されることに気付きましたか? この動作は仕様によるものです。 Azure CLI は、異なる行連結文字の多数の環境で実行できるため、コピー ボタンによってこれらが削除されます。 書式設定されたスクリプトをコピーしたい場合は、マウスを使用してコード ブロックの内容を選択してコピーします。
Azure Cloud Shell に貼り付けるには、Cloud Shell ターミナル内で新しい行を右クリックして [貼り付け] を選択するか、Shift + Insert キーボード ショートカット (macOS では ⌘ + V) を使用します。
スクリプトが正しくコピーされておらず、サンドボックス ターミナルが追加入力を待機している場合は、Ctrl + Z を使用してプロンプトに戻り、もう一度やり直してください。
Linux VM が作成されるまで待機する:
VM の作成プロセスが完了するまでに数分かかります。
VM に関する情報を取得する
完了すると、Azure CLI は VM に関する情報を JSON 形式で返します。 VM に関する特定の情報を取得するには、
az vm list
とaz vm show
のコマンドを使用します。 次に例をいくつか示します。これらのスクリプトの一部では、前の手順で格納した変数名と値を使用します。
テーブル形式ですべての VM の一覧を取得します。
az vm list --output table
JSON 形式で 1 つの VM に関する情報を取得します。
この出力の一部は、新しい VM の作成後に表示されます。 ただし、スクリプトで参照する入れ子になったプロパティ名を見つけるときは、より多くの情報が返される方が便利です。 プロパティ名は大文字と小文字が区別されます。
az vm show --resource-group $rgName --name $vmName
VM プロパティに関する情報を取得します。
# 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"
VM のプロパティを変数に格納します。
Azure CLI では、いくつかの出力の種類を使用できます。 既定値は JSON ですが、変数に値を格納する場合は、
--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
VM に接続します。**
#!/bin/bash az ssh vm --private-key-file \path\to\private\key \ --resource-group $rgName \ --name $vmName \ --local-user $vmAdminUserName
「exit」と入力してサインアウトします。
その他の VM オプションの詳細を確認する
コマンド ラインで Azure リソースを操作する場合、Azure portal を使用していないため、プロパティ オプションの選択リストが提供されません。 たとえば、使用可能な場所や VM サイズの一覧です。 Azure CLI の多くのコマンド グループで、この情報を提供する複数のコマンドがあります。 次に VM の例をいくつか示します。
ヒント
Azure CLI の --output table
形式では、使用可能な情報が 100% 返されるわけではありませんが、多くの場合、大量のコマンド結果が読みやすくなります。 特に関心のある情報を指定するには、--query
パラメーターを使用します。
その場所で使用可能な VM サイズを取得する:
az vm list-sizes --location westus --output table
その場所で使用可能な SKU を取得する:
選択した
--location
によっては、Azure CLI から SKU の完全な一覧が返されるまでに 1、2 分かかる場合があります。# 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
既存の VM で使用可能なサイズ変更オプションを取得する:
az vm list-vm-resize-options --resource-group $rgName --name $vmName --output table
リソース グループにあるすべての VM の詳細を表示します。**
ローカル環境での作業を選択し、お使いのサブスクリプションに複数の VM がある場合は、フィルター条件を満たす VM のクエリを実行します。
#!/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
VM を停止または削除する
VM をシャットダウンします。
VM は引き続き課金されますが、実行中の VM を電源オフ (停止) できます。
az vm stop --resource-group $rgName --name $vmName
「Y」と入力し、続行を求められたら Enter キーを押します。
VM の割り当てを解除する:
停止した VM が課金されないようにするために、割り当てを解除することができます。 割り当てを解除された VM には、今後割り当てられないリソースが含まれます (料金は発生しなくなります)。 VM の状態が [停止済み] から [停止済み (割り当て解除)] に変わるまで待ちます。
az vm deallocate --resource-group $rgName --name $vmName
VM を削除する:
VM が停止したら、
az vm delete
コマンドを実行して削除します。az vm delete --resource-group $rgName --name $vmName
「Y」と入力し、続行を求められたら Enter キーを押します。
これらのコマンドを対話形式で実行した場合は、Azure CLI スクリプトを記述することをお勧めします。 スクリプトを使用すると、将来 VM を作成または削除するためにロジックを再利用できます。
次のユニットでは、Azure CLI スクリプトを使用してこれらのタスクを自動化しましょう。