vm.gowatana.jp

NEOにほんごVMware(仮)

VMware Cloud Director 10.4 を PowerCLI で操作してみる。Part-02 vApp 仮想マシンのネットワーク変更

VMware Cloud Director 10.4(VCD)で、PowerCLI を使用して vApp 仮想マシン vNIC のネットワークを変更してみます。その前提として、組織 VDC ネットワークの vApp への追加が必要になるはずなので、あわせて紹介します。

 

前回はこちら。

 

今回の内容です。

 

今回の設定内容

今回は、vApp に含まれる仮想マシン(jbox01)に作成されている vNIC の、ネットワーク接続を変更します。

  • すでに作成してある組織 VDC ネットワーク「orgvdc-routed-nw-01」を、同名の vApp ネットワークとして vApp に追加します。
  • 仮想マシン(jbox01)の NIC 0 の接続ネットワークを、追加した vApp ネットワークに切り替えます。

 

この vApp は、前回の投稿で PowerCLI で作成したものに、仮想マシン(jbox01)を追加してあります。

 

jbox01 は、下記投稿にある手順(4-2)で作成してあります。

 

これ以降の手順の開始時点では、下記のような構成にしてあります。

 

組織 VDC ネットワークとして、2つのネットワーク(orgvdc-ext-nw-vlan-31 とorgvdc-routed-nw-01)が作成されています。

PS C:\> Get-OrgVdcNetwork -OrgVdc org-vdc-01

Name                           OrgVdc                         DefaultGateway  NetworkType
----                           ------                         --------------  -----------
orgvdc-ext-nw-vlan-31          org-vdc-01                     192.168.31.1    Direct
orgvdc-routed-nw-01            org-vdc-01                     10.0.1.1        Routed

 

組織 VDC には、vApp(vapp-02)が作成されています。

PS C:\> Get-CIVApp -OrgVdc org-vdc-01

Name                           Enabled InMaintenanceMode    Owner
----                           ------- -----------------    -----
vapp-01                        True    False                org-01-admin
vapp-02                        True    False                org-01-admin

 

vapp-02 には、2つのネットワークが作成されています。この時点は、組織 VDC ネットワークの orgvdc-routed-nw-01 は vApp にまだ追加されていません。

PS C:\> Get-CIVAppNetwork -VApp vapp-02

Name                           Gateway         Netmask         ConnectionType FirewallEnabled NatEnabled
----                           -------         -------         -------------- --------------- ----------
orgvdc-ext-nw-vlan-31          192.168.31.1    255.255.255.0   Direct         False           False
vapp-isolate-nw-01             10.0.0.1        255.255.255.0   Isolated       False           False

 

vapp-02 には、仮想マシンが 3つ作成されています。

PS C:\> Get-CIVApp -Name vapp-02 -OrgVdc org-vdc-01 | Get-CIVM

Name                           Status                      GuestOSFullName                          CpuCount MemoryGB
----                           ------                      ---------------                          -------- --------
jbox01                         PoweredOff                  VMware Photon OS (64-bit)                1        2.000
vm01                           PoweredOff                  VMware Photon OS (64-bit)                1        2.000
vm02                           PoweredOff                  VMware Photon OS (64-bit)                1        2.000

 

そのうち、jbox01 の vNIC は 2つあり、NIC 0(Primary)は orgvdc-ext-nw-vlan-31 という vApp ネットワークに接続されています。

PS C:\> Get-CIVApp -Name vapp-02 -OrgVdc org-vdc-01 | Get-CIVM -Name jbox01 | Get-CINetworkAdapter

Index Primary Connected  IPAddressAllocation IPAddress       ExternalIPAddress VM
----- ------- ---------  ------------------- ---------       ----------------- --
0     True    True       Pool                192.168.31.150                    jbox01
1     False   True       Manual              10.0.0.10                         jbox01


PS C:\> Get-CIVApp -Name vapp-02 -OrgVdc org-vdc-01 | Get-CIVM -Name jbox01 | Get-CINetworkAdapter -Primary $true

Index Primary Connected  IPAddressAllocation IPAddress       ExternalIPAddress VM
----- ------- ---------  ------------------- ---------       ----------------- --
0     True    True       Pool                192.168.31.150                    jbox01


PS C:\> Get-CIVApp -Name vapp-02 -OrgVdc org-vdc-01 | Get-CIVM -Name jbox01 | Get-CINetworkAdapter -Primary $true | select VM, Index, Primary, MACAddress, VAppNetwork, IPAddress, Connected

VM          : jbox01
Index       : 0
Primary     : True
MACAddress  : 00:50:56:01:01:55
VAppNetwork : orgvdc-ext-nw-vlan-31
IPAddress   : 192.168.31.150
Connected   : True

 

1. vApp への組織 VDC ネットワーク追加

まず、vApp に組織 VDC ネットワークを追加します。

 

組織 VDC ネットワークを vApp ネットワークとして追加するには、New-CIVAppNetwork コマンドレットで「-ParentOrgVdcNetwork」オプションを指定して実行します。

PS C:\> New-CIVAppNetwork -VApp vapp-02 -ParentOrgVdcNetwork orgvdc-routed-nw-01 -Direct                               
Name                           Gateway         Netmask         ConnectionType FirewallEnabled NatEnabled
----                           -------         -------         -------------- --------------- ----------
orgvdc-routed-nw-01            10.0.1.1        255.255.255.0   Direct         False           False

 

これで、orgvdc-routed-nw-01 が vApp ネットワークとして追加されました。

PS C:\> Get-CIVAppNetwork -VApp vapp-02

Name                           Gateway         Netmask         ConnectionType FirewallEnabled NatEnabled
----                           -------         -------         -------------- --------------- ----------
orgvdc-ext-nw-vlan-31          192.168.31.1    255.255.255.0   Direct         False           False
orgvdc-routed-nw-01            10.0.1.1        255.255.255.0   Direct         False           False
vapp-isolate-nw-01             10.0.0.1        255.255.255.0   Isolated       False           False

 

2. 仮想マシン NIC の接続ネットワーク変更

仮想マシンの NIC 0 の接続ネットワークを、vApp ネットワークとして追加した orgvdc-routed-nw-01 に変更してみます。

 

設定変更の対象となる vNIC を、Get-CINetworkAdapter で確認しておきます。この時点では、orgvdc-ext-nw-vlan-31 に接続されています。

PS C:\> Get-CIVApp -Name vapp-02 -OrgVdc org-vdc-01 | Get-CIVM -Name jbox01 | Get-CINetworkAdapter -Primary $true

Index Primary Connected  IPAddressAllocation IPAddress       ExternalIPAddress VM
----- ------- ---------  ------------------- ---------       ----------------- --
0     True    True       Pool                192.168.31.150                    jbox01


PS C:\> Get-CIVApp -Name vapp-02 -OrgVdc org-vdc-01 | Get-CIVM -Name jbox01 | Get-CINetworkAdapter -Primary $true | select VM, Index, Primary, MACAddress, VAppNetwork, IPAddress, Connected

VM          : jbox01
Index       : 0
Primary     : True
MACAddress  : 00:50:56:01:01:55
VAppNetwork : orgvdc-ext-nw-vlan-31
IPAddress   : 192.168.31.150
Connected   : True

 

NIC の接続ネットワークを、Set-CINetworkAdapter で変更します。IP アドレスの設定には、IP プールを使用します。

PS C:\> Get-CIVApp -Name vapp-02 -OrgVdc org-vdc-01 | Get-CIVM -Name jbox01 | Get-CINetworkAdapter -Primary $true | Set-CINetworkAdapter -VAppNetwork orgvdc-routed-nw-01 -IPAddressAllocationMode Pool

Index Primary Connected  IPAddressAllocation IPAddress       ExternalIPAddress VM
----- ------- ---------  ------------------- ---------       ----------------- --
0     True    True       Pool                10.0.1.100                        jbox01

 

これで、vNIC の接続ネットワークが orgvdc-routed-nw-01 に変更されました。IP プールから、10.0.1.100 が払い出されたことがわかります。

PS C:\> Get-CIVApp -Name vapp-02 -OrgVdc org-vdc-01 | Get-CIVM -Name jbox01 | Get-CINetworkAdapter -Primary $true | select VM, Index, Primary, MACAddress, VAppNetwork, IPAddress, Connected

VM          : jbox01
Index       : 0
Primary     : True
MACAddress  : 00:50:56:01:01:55
VAppNetwork : orgvdc-routed-nw-01
IPAddress   : 10.0.1.100
Connected   : True

 

IP アドレスを固定で設定したい場合は、下記のように「-IPAddressAllocationMode Manual」と「-IPAddress」を指定します。

PS C:\work\git\vcd-powercli> Get-CIVApp -Name vapp-02 -OrgVdc org-vdc-01 | Get-CIVM -Name jbox01 | Get-CINetworkAdapter -Primary $true | Set-CINetworkAdapter -VAppNetwork orgvdc-routed-nw-01 -IPAddressAllocationMode Manual -IPAddress 10.0.1.161

Index Primary Connected  IPAddressAllocation IPAddress       ExternalIPAddress VM
----- ------- ---------  ------------------- ---------       ----------------- --
0     True    True       Manual              10.0.1.161                        jbox01

 

ちなみに、組織内に同名のネットワークが存在するとエラーになることがあります。

Set-CINetworkAdapter The specified parameter 'VAppNetwork' expects a single value, but your name criteria 'orgvdc-ext-nw-vlan-31' corresponds to multiple values.

 

その場合は、下記のように vApp を指定してネットワークを取得しておき、対象となるネットワークが1つになるように工夫します。

PS C:\> $vapp_nw = Get-CIVAppNetwork -VApp vapp-02 -Name orgvdc-routed-nw-01
PS C:\> Get-CIVApp -Name vapp-02 -OrgVdc org-vdc-01 | Get-CIVM -Name jbox01 | Get-CINetworkAdapter -Primary $true | Set-CINetworkAdapter -VAppNetwork $vapp_nw -IPAddressAllocationMode Pool

 

3. vApp ネットワークの削除

vApp で不要になった vApp ネットワークは、Remove-CIVAppNetwork で削除します。使用しなくなった orgvdc-ext-nw-vlan-31 を、vApp ネットワークから削除しておきます。

PS C:\> Get-CIVAppNetwork -VApp vapp-02 -Name orgvdc-ext-nw-vlan-31 | Remove-CIVAppNetwork -Confirm:$false

 

これで、vapp-02 から orgvdc-ext-nw-vlan-31 が削除されました。

PS C:\> Get-CIVAppNetwork -VApp vapp-02

Name                           Gateway         Netmask         ConnectionType FirewallEnabled NatEnabled
----                           -------         -------         -------------- --------------- ----------
orgvdc-routed-nw-01            10.0.1.1        255.255.255.0   Direct         False           False
vapp-isolate-nw-01             10.0.0.1        255.255.255.0   Isolated       False           False

 

これは vApp から削除しただけなので、組織 VDC ネットワークとして存在したままになります。

PS C:\> Get-OrgVdcNetwork -OrgVdc org-vdc-01

Name                           OrgVdc                         DefaultGateway  NetworkType
----                           ------                         --------------  -----------
orgvdc-ext-nw-vlan-31          org-vdc-01                     192.168.31.1    Direct
orgvdc-routed-nw-01            org-vdc-01                     10.0.1.1        Routed

 

つづく。