VMware Cloud Director 10.4(VCD)で、PowerCLI を使用して vApp テンプレートから vApp を作成してみます。
今回の内容です。
今回の環境
下記の一連の投稿で作成したラボを利用します。
そのなかで、今回利用する vApp テンプレートは下記のように作成してあります。
PowerCLI は、13.1 を使用します。VCD を操作するモジュール(VMware.VimAutomation.Cloud)は、デフォルトで PowerCLI に含まれています。
PS C:\> Get-Module -ListAvailable -Name VMware.PowerCLI | select Version Version ------- 13.1.0.21624340 PS C:\> Get-Module -ListAvailable -Name VMware.VimAutomation.Cloud | select Version Version ------- 13.1.0.21611174
VCD ラボ環境のイメージでは、下記の赤枠のあたりを vApp テンプレートから作成します。
ただし今回の vApp テンプレートは下記の図とは異なり、次のような構成です。
- 仮想マシンが 2つだけ含まれる。(vm01、vm02)
- vApp ネットワークは 1つのみ。
1. VCD への接続
PowerCLI の Connect-CIServer コマンドレットで VCD に接続します。VCD のエンドポイント アドレスは、テナント ポータルと同じアドレスです。
- VCD のエンドポイント アドレス: lab-vcd-31.vcd.go-lab.jp
- 組織: demo-org-01
- 組織のユーザ: org-01-admin
PS C:\> Connect-CIServer -Server lab-vcd-31.vcd.go-lab.jp -Org demo-org-01 -User org-01-admin -Password VMware1! Name User Org ---- ---- --- lab-vcd-31.vcd.go-lab.jp org-01-admin demo-org-01
ちなみに VCD 関連の PowerCLI コマンドレットのうち、vSphere などで利用するものと名前が重複しそうなものには 、Noun(名詞)部分に CI という文字列が付与されています。
2. 操作対象の確認
まずは、vApp テンプレートを確認します。すでに作成されている vApp テンプレートのうち、vapp-template-01 を利用します。
PS C:\> Get-CIVAppTemplate Name Status Owner StorageUsedGB ---- ------ ----- ------------- vapp-template-01 PoweredOff org-01-admin 32.000 vapp-template-esxi-01 PoweredOff org-01-admin 196.000 PS C:\> Get-CIVAppTemplate -Name vapp-template-01 Name Status Owner StorageUsedGB ---- ------ ----- ------------- vapp-template-01 PoweredOff org-01-admin 32.000
組織 VDC を確認します。このうち、org-vdc-01 に vApp テンプレートを展開してみます。
PS C:\> Get-OrgVdc Name Enabled CpuUsedGHz MemoryUsedGB StorageUsedGB AllocationModel ---- ------- ---------- ------------ ------------- --------------- org-vdc-01 True 0.00 0.000 1822.374 PayAsYouGo org-vdc-02 True 0.00 0.000 428.000 PayAsYouGo org-vdc-03 True 0.00 0.000 214.000 PayAsYouGo
3. vApp テンプレートの展開
それでは、vApp テンプレートから vApp を作成します。
PS C:\> Get-CIVAppTemplate -Name vapp-template-01 | New-CIVApp -Name vapp-01 Name Enabled InMaintenanceMode Owner ---- ------- ----------------- ----- vapp-01 True False org-01-admin
これで、vApp が停止(PowerOff)の状態で作成されました。
PS C:\> Get-CIVApp -Name vapp-01 | select * Href : https://lab-vcd-31.vcd.go-lab.jp/api/vApp/vapp-5d857b88-6228-485b-b472-4f42c02e7b96 ExtensionData : VMware.VimAutomation.Cloud.Views.VApp Enabled : True Status : PoweredOff SizeGB : 32 CpuCount : MemoryAllocationMB : 4096 MemoryAllocationGB : 4 InMaintenanceMode : False Owner : org-01-admin Org : demo-org-01 Shared : False StorageLease : 30.00:00:00 RuntimeLease : 7.00:00:00 Description : Id : urn:vcloud:vapp:5d857b88-6228-485b-b472-4f42c02e7b96 Name : vapp-01 Uid : /CIServer=org-01-admin:demo-org-01@lab-vcd-31.vcd.go-lab.jp:443/CIVApp=urn:vcloud:vapp:5d857b88-6228-485b-b472-4f42c02 e7b96/
VCD のテナント ポータルでも、vApp が作成されたことがわかります。
この vApp には、2つの仮想マシンが含まれています。
PS C:\work\git\vcd-powercli> Get-CIVApp -Name vapp-01 | Get-CIVM Name Status GuestOSFullName CpuCount MemoryGB ---- ------ --------------- -------- -------- vm01 PoweredOff VMware Photon OS (64-bit) 1 2.000 vm02 PoweredOff VMware Photon OS (64-bit) 1 2.000
テンプレートに含まれていた vApp ネットワークも作成されています。
PS C:\> Get-orgvdc org-vdc-01 | Get-CIVApp -Name vapp-01 | Get-CIVAppNetwork Name Gateway Netmask ConnectionType FirewallEnabled NatEnabled ---- ------- ------- -------------- --------------- ---------- vapp-isolate-nw-01 10.0.0.1 255.255.255.0 Isolated False False
仮想マシンの vNIC が、それぞれ vApp ネットワークに接続されていることが確認できます。
PS C:\> Get-orgvdc org-vdc-01 | Get-CIVApp -Name vapp-01 | Get-CIVM | Get-CINetworkAdapter | select VM, Index, MACAddress, VAppNetwork, Connected, IPAddressAllocationMode, IPAddress | ft -AutoSize VM Index MACAddress VAppNetwork Connected IPAddressAllocationMode IPAddress -- ----- ---------- ----------- --------- ----------------------- --------- vm01 0 00:50:56:01:01:52 vapp-isolate-nw-01 True Manual 10.0.0.11 vm02 0 00:50:56:01:01:51 vapp-isolate-nw-01 True Manual 10.0.0.12
VCD のテナントポータルでも、仮想マシンが vApp ネットワークに接続されている様子がわかります。
Start-CIVApp で vApp を起動すると、vApp に含まれる仮想マシンも一緒に起動されます。
PS C:\> Get-orgvdc org-vdc-01 | Get-CIVApp -Name vapp-01 | Start-CIVApp Name Enabled InMaintenanceMode Owner ---- ------- ----------------- ----- vapp-01 True False org-01-admin PS C:\> Get-orgvdc org-vdc-01 | Get-CIVApp -Name vapp-01 | Get-CIVM Name Status GuestOSFullName CpuCount MemoryGB ---- ------ --------------- -------- -------- vm01 PoweredOn VMware Photon OS (64-bit) 1 2.000 vm02 PoweredOn VMware Photon OS (64-bit) 1 2.000
4. vApp の削除
vApp を削除する場合は、まず、vApp(と含まれる仮想マシン)を停止しておきます。
PS C:\> Get-orgvdc org-vdc-01 | Get-CIVApp -Name vapp-01 | Stop-CIVApp -Confirm:$false
そのうえで、vApp を削除します。
PS C:\> Get-orgvdc org-vdc-01 | Get-CIVApp -Name vapp-01 | Remove-CIVApp -Confirm:$false
つづく・・・