Azure VMの状態、IPアドレス、ディスク設定をPowerShell使って取得
仮想マシン(Virtual Machine)のネットワークインターフェースやディスク(Managed Disks)設定をAzure PowerShell使って取得してみました。
-
- Get-AzVMを使った仮想マシン(Azure VM)の設定取得
- Get-AzNetworkInterfaceを使ったネットワークインターフェース設定取得
- Get-AzDiskを使ったディスクディスク(Managed Disks)設定取得
- 仮想マシン(Azure VM)の設定をAzure PowerShellで纏めて取得
仮想マシン(Virtual Machine)のプライベートIPアドレスやマネージドディスク(Managed Disks)のサイズやストレージの種類を取得しています。
PowerShellを使って仮想マシン(Azure VM)の設定を取得
仮想マシン(Azure VM)の情報を取得する場合はGet-AzVMを使う
仮想マシン(Azure VM)の情報取得する為にはGet-AzVMコマンドを使います。
リソースグループやリージョン(場所)が表示されます。
-statusオプションを使うと状態(起動中や割り当て解除などのステータス)を確認出来ます。
PS C:\> Get-AzVM ResourceGroupName Name Location VmSize OsType NIC ProvisioningState Zone PS C:\> Get-AzVM -status ResourceGroupName Name Location VmSize OsType NIC Provisioning Zone PowerState MaintenanceAllowed |
※Format-List(fl)等を利用すると各仮想マシン(Azure VM)の情報が表示されます。
Get-AzVMコマンドはリソースグループや仮想マシン(Azure VM)名を指定して実行出来ます。
PS C:\> Get-AzVM -ResourceGroupName test-rg-01 -name test-vm-01 ResourceGroupName : test-rg-01 |
-statusを指定すると仮想マシン(Azure VM)のステータス情報が取得出来ます。
PS C:\>Get-AzVM -ResourceGroupName test-rg-01 -name test-vm-01 -status ResourceGroupName : test-rg-01 |
※コマンドレット実行結果は抜粋です。
Get-AzVMコマンドレットの詳細についてはこちらに纏めています。
仮想マシン(Azure VM)のステータスの確認から起動停止については纏めています。
Azure CLIでのコマンドも纏めています。
—広告—
仮想マシンのIP取得にはGet-AzNetworkInterfaceを使う
Get-AzVMコマンドレットの結果を見てもプライベート IP アドレスは確認出来ません。
NetworkProfileを確認してもネットワークインターフェースのidしか確認出来ません。
PS C:\>Get-AzVM -ResourceGroupName test-rg-01 -name test-vm-01 | Format-Custom -Property NetworkProfile class PSVirtualMachine NetworkApiVersion = |
※実行結果の抜粋です。
仮想マシン(Azure VM)のプライベート IP アドレスはネットワークインターフェースのリソースで設定されています。
ネットワークインターフェースの詳細情報を取得する為にはGet-AzNetworkInterfaceを使います。
ネットワークインターフェースのリソース名やリソースIDを使用して確認する事が出来ます。
実行結果から接続されている仮想マシン(Azure VM)を特定する事も出来ます。
PS C:\>Get-AzNetworkInterface -ResourceId /subscriptions/サブスクリプションID/resourceGroups/test-rg-01/providers/Microsoft.Network/networkInterfaces/test-vm-XXXXX |fl IpConfigurationsText : [ |
※仮想ネットワーク名(サブネット名)なども確認出来ます。
Get-AzVMの結果からネットワークインターフェースのリソースIDを取得して表示する事も出来ます。
関連付けされている仮想マシン(Azure VM)のリソースIDはGet-AzNetworkInterface実行結果のVirtualMachineの項目でも確認出来ます。
#仮想マシン名から確認する場合はこのようなコマンドレットで実行出来ます。 PS C:\>$vm = Get-AzVM -ResourceGroupName test-rg-01 -name test-vm-01 同じ実行結果 #関連付けされている仮想マシン(Azure VM)のリソースIDの確認方法 |
※ネットワークインターフェースを複数設定している場合は修正が必要です。
マネージドディスクの情報取得にはGet-AzDiskを使う
Get-AzVMコマンドの結果を見てもディスクの詳細情報は確認出来ません。
StorageProfile内を確認するとDiskSizeGBという項目はありますが値が取得出来ていません。
PS C:\>Get-AzVM -ResourceGroupName test-rg-01 -name test-vm-01 | Format-Custom -Property StorageProfile OsDisk = |
※実行結果の抜粋です。例はOSディスクの場合です。
仮想マシン(Azure VM)のディスク(Managed Disks)は仮想マシン(Azure VM)と別リソースです。
ディスク(Managed Disks)の詳細情報を取得する為にはGet-AzDiskを使います。
先ほど確認したリソースIDを使用して確認してみます。(コマンド実行結果は抜粋です。)
実行結果から接続されている仮想マシン(Azure VM)を特定する事も出来ます。
PS C:\>Get-AzDisk -name test-vm-01_OsDisk_1_XXXXX ResourceGroupName : test-rg-01 |
※実行結果の抜粋です。例はOSディスクの場合です。
Get-AzVMの結果からディスク(Managed Disks)のリソース名を取得して表示する事も出来ます。
#仮想マシン名から確認する場合はこのようなコマンドレットで実行出来ます。 PS C:\>$vm = Get-AzVM -ResourceGroupName test-rg-01 -name test-vm-01 同じ実行結果 |
※OSディスクの場合です。データディスクのDataDisks.nameとなります。
※ディスク(Managed Disks)が複数存在する場合は$vm.StorageProfile.DataDisks[1].nameと指定するとディスク単位で取得出来ます。
—広告—
仮想マシン(Azure VM)の状態、ディスク、ネットワークインターフェース設定をPowerShellで纏めて取得
取得対象の仮想マシン(Azure VM)情報
指定した仮想マシン(Azure VM)の状態、ディスク(Managed Disks)、ネットワークインターフェースに関する情報を纏めて取得します。
-
- 取得情報
- 仮想マシン名
- 仮想マシンの状態(実行中や割り当て解除)
- 仮想マシンのサイズ
- ディスク名
- ディスクサイズ
- ストレージの種類(ディスク)
- ネットワークインターフェース名
- プライベートIPアドレス
- プライベートIPアドレスの割り当て(静的IP、動的IP)
- 取得情報
$VmNameに仮想マシン名として"test-vm-01″$ResourceGroupNameにリソースグループ名として"test-rg-01″を指定しています。
Get-AzVMで仮想マシンのサイズや状態を取得
Get-AzVMで仮想マシン名やサイズを取得しています。
Get-AzVM -StatusでVMの稼働状況を取得しています。
Select-Objectでそれぞれの実行結果を組み合わせて結果を表示しています。
$VmName = “test-vm-01" $vm = Get-AzVM -ResourceGroupName $ResourceGroupName -name $VmName Get-AzVm -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name -Status ` |
実行結果です。
Name Status VMSize |
Get-AzNetworkInterfaceでプライベートIPアドレスや割り当てを取得
Get-AzNetworkInterfaceではすべてのネットワークインターフェースの情報を取得します。
Where { $_.VirtualMachine.id -contains $VM.id}として仮想マシン(Azure VM)のリソースIDを含むネットワークインターフェースのみを抽出しています。
$VmName = “test-vm-01" $vm = Get-AzVM -ResourceGroupName $ResourceGroupName -name $VmName Get-AzNetworkInterface ` |
実行結果です。
NWInterFaceNmae PrivateIP PrivateIpAllocation |
Get-AzDiskでサイズやストレージの種類を取得
Get-AzNetworkInterfaceではすべてのディスク(Managed Disks)の情報を取得します。
Where { $_.ManagedBy -contains $VM.id }として仮想マシン(Azure VM)のリソースIDを含むディスク(Managed Disks)のみを抽出しています。
$VmName = “test-vm-01" $vm = Get-AzVM -ResourceGroupName $ResourceGroupName -name $VmName
Get-AzDisk -ResourceGroupName $vm.ResourceGroupName`
| Where { $_.ManagedBy -contains $VM.id }`
| Select-Object @{n="DiskNmae"; e={$_.Name}},DiskSizeGB,@{n="Tier"; e={$_.sku.Name}}
|
実行結果です。
DiskNmae DiskSizeGB Tier |
仮想マシン(Azure VM)を指定して纏めて取得
仮想マシン(Azure VM)名とリソースグループを指定して設定を纏めて取得します。
Get-AzVM、Get-AzNetworkInterface、Get-AzDiskを組み合わせて取得しています。
$VmName = “test-vm-01" $vm = Get-AzVM -ResourceGroupName $ResourceGroupName -name $VmName
$GetVMInfo = Get-AzVM -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name -Status `
| select-Object Name,@{n="Status"; e={$_.Statuses[1].Code}},@{n="VMSize"; e={$vm.HardwareProfile.VmSize}}
$GetNwInfo = Get-AzNetworkInterface `
| Where { $_.VirtualMachine.id -contains $VM.id}`
| Select-Object @{n="NWInterFaceNmae"; e={$_.Name}},`
@{n="PrivateIP"; e={$_.IpConfigurations.PrivateIpAddress}},`
@{n="PrivateIpAllocation"; e={$_.IpConfigurations.PrivateIpAllocationMethod}}
$GetDiskInfo = Get-AzDisk -ResourceGroupName $vm.ResourceGroupName`
| Where { $_.ManagedBy -contains $VM.id }`
| Select-Object @{n="DiskNmae"; e={$_.Name}},DiskSizeGB,@{n="Tier"; e={$_.sku.Name}}
Write-Output $GetVMInfo,$GetDiskInfo,$GetNwInfo |fl
|
取得結果
PowerShellを実行して仮想マシン(Azure VM)の纏めて取得した結果です。
複数設定したディスク(Managed Disks)の設定も取得出来ています。
Name : test-vm-01 DiskNmae : test-vm-01-datadisk DiskNmae : test-vm-01_OsDisk_1_XXXXX NWInterFaceNmae : test-vm-XXXXX |
最後に
仮想マシン(Azure VM)の設定を取得するAzure PowerShellについて確認してみました。
Get-AzVM、Get-AzNetworkInterface、Get-AzDiskを利用して取得出来る事が分かりました。
ネットワークインターフェースやディスク(Managed Disks)の設定には関連付けされている仮想マシン(Azure VM)のリソースIDが含まれている項目が含まれています。
リソースIDを使って仮想マシン(Azure VM)に関連したネットワークインターフェースやディスク(Managed Disks)の設定を抽出する事が出来ました。
今後も引き続き色々試してみたいと思います。
Get-AzVMを使った仮想マシンの起動停止やステータス情報(電源状態)の確認についてはこちらで纏めてます。
併せて見て頂けますと有難いです。
仮想マシン(Azure VM)の削除と一緒にネットワークインターフェースやディスクをPowerShellを使って削除する方法はこちらに纏めています。