NIC ID を取得したら、 az network nic show
を実行してその情報を取得します。 リソース グループ名は Azure リソース ID に含まれているため、ここではリソース グループは必要ありません。
az network nic show --ids $nicId
このコマンドは、VM のネットワーク インターフェイスのすべての情報を表示します。 このデータには、DNS 設定、IP 情報、セキュリティ設定、MAC アドレスが含まれます。 次のクエリは、パブリック IP アドレスとサブネット オブジェクト ID を取得する方法を示しています。
az network nic show --ids $nicId \
--query '{IP:ipConfigurations[].publicIPAddress.id, Subnet:ipConfigurations[].subnet.id}' \
-o json
{
"IP": [
"/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/publicIPAddresses/TutorialVM1PublicIP"
],
"Subnet": [
"/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/virtualNetworks/TutorialVM1VNET/subnets/TutorialVM1Subnet"
]
}
このコマンドは、抽出された値のカスタム キー ('IP' と 'Subnet') を持つ JSON オブジェクトを表示します。 このスタイルの出力はコマンド ライン ツールでは役に立たないかもしれませんが、人間の読みやすさに役立ち、カスタム スクリプトで使用できます。
コマンド ライン ツールを使用するには、コマンドを変更してカスタム JSON キーと出力を tsv
として削除します。
read
コマンドは、結果を複数の変数に読み込むことで、このスタイルの出力を処理します。 2 つの値が別々の行に表示されるため、 read
コマンド区切り記号は、改行以外の空白の既定値ではなく、空の文字列に設定する必要があります。
read -d '' ipId subnetId <<< $(az network nic show \
--ids $nicId \
--query '[ipConfigurations[].publicIPAddress.id, ipConfigurations[].subnet.id]' \
-o tsv)
Bash read
または PowerShell -split
コマンドを使用しない場合は、各変数を個別に設定できます。
$ipId = az network nic show --ids $nicId --query '[ipConfigurations[].publicIPAddress.id]' -o tsv
$subnetId = az network nic show --ids $nicId --query '[ipConfigurations[].subnet.id]' -o tsv
パブリック IP オブジェクト ID を使用してパブリック IP アドレスを検索し、それをシェル変数に格納します。 サブネット ID は、Azure CLI で複数の値を照会して格納する方法を示すために使用されました。 そのため、チュートリアルの残りの部分では必要ありません。
vmIpAddress=$(az network public-ip show --ids $ipId \
--query ipAddress \
-o tsv)
これで、VM の IP アドレスがシェル変数に格納されました。 先に進み、最初に VM に接続するときに使用した値と同じ値であることを確認します。
echo $vmIpAddress
Azure CLI