vm.gowatana.jp

NEOにほんごVMware(仮)

VMware Cloud Director 10.4 を PowerCLI で操作してみる。Part-05 vApp クローン スクリプトの例

これまで紹介した VMware Cloud Director 10.4(VCD)の PowerCLI 操作をくみあわせて、vApp をクローンするスクリプトの例を紹介します。

 

VCD 環境は、前回までのものを引き続き利用しています。

 

1. コンフィグ ファイルの用意

今回は、vApp テンプレートをクローン展開する際のパラメータを、別ファイルとして作成しておきます。

config_test-vapp-01.ps1

gist.github.com

 

2. vApp クローン スクリプト

vApp テンプレートをクローンして、いくつか追加設定をするスクリプトです。これまで紹介した PowerCLI での操作を利用しています。

 

01_clone_vcd_vapp.ps1

  • L73: vApp テンプレートから vApp をクローン作成
  • L81: 組織 VDC ネットワークを、vApp ネットワークとして追加
  • L86: 特定の仮想マシン(踏み台として用意した jbox01)の NIC の接続ネットワークを変更して、MAC アドレスを再生成
  • L91: 仮想マシンが接続されていない vApp ネットワークを削除
  • L103: 仮想マシンのストレージ ポリシーを変更
  • L116: vApp を開始(すべての仮想マシンをパワーオン)
  • L127: vApp のリース期限を設定

gist.github.com

 

3. vApp 削除スクリプト

vApp クローンで使用したコンフィグ ファイルをもとに、vApp を削除するスクリプトも用意しておきます。

02_delete_vcd_vapp.ps1

gist.github.com

 

4. スクリプトを実行した様子

Connect-CIServer で、VCD のエンドポイントに接続しておきます。

PS C:\> Connect-CIServer -Server lab-vcd-31.vcd.go-lab.jp -Org demo-org-01 -User org-01-admin -Password VMware1!

 

01_clone_vcd_vapp.ps1 を実行すると、下記のように vApp を展開できます。

PS C:> .\01_clone_vcd_vapp.ps1 .\config_test-vapp-01.ps1
Clone vApp:test-vapp-01-011
Add vApp Network: vApp=>test-vapp-01-011 Network=>orgvdc-routed-nw-01
Connect vApp Network: VM=>test-vapp-01-011/jbox01 Network=>orgvdc-routed-nw-01
Remove vApp Network: vApp=>test-vapp-01-011 vAppNetwork=>orgvdc-ext-nw-vlan-31
Set Storage Policy: vApp=>test-vapp-01-011 VM=>jbox01 Policy=>sp-local-vmfs-2
Set Storage Policy: vApp=>test-vapp-01-011 VM=>vm01 Policy=>sp-local-vmfs-2
Set Storage Policy: vApp=>test-vapp-01-011 VM=>vm02 Policy=>sp-local-vmfs-2
Clone vApp:test-vapp-01-012
Add vApp Network: vApp=>test-vapp-01-012 Network=>orgvdc-routed-nw-01
Connect vApp Network: VM=>test-vapp-01-012/jbox01 Network=>orgvdc-routed-nw-01
Remove vApp Network: vApp=>test-vapp-01-012 vAppNetwork=>orgvdc-ext-nw-vlan-31
Set Storage Policy: vApp=>test-vapp-01-012 VM=>jbox01 Policy=>sp-local-vmfs-2
Set Storage Policy: vApp=>test-vapp-01-012 VM=>vm01 Policy=>sp-local-vmfs-2
Set Storage Policy: vApp=>test-vapp-01-012 VM=>vm02 Policy=>sp-local-vmfs-2
List Jumpbox-VM IP Address:

vApp             VM     MACAddress        VAppNetwork         IPAddress
----             --     ----------        -----------         ---------
test-vapp-01-011 jbox01 00:50:56:01:01:89 orgvdc-routed-nw-01 10.0.1.100
test-vapp-01-012 jbox01 00:50:56:01:01:8a orgvdc-routed-nw-01 10.0.1.101


Start vApp:test-vapp-01-011
Start vApp:test-vapp-01-012
Set vApp Lease:test-vapp-01-011
Set vApp Lease:test-vapp-01-012
List vApp Lease:

vApp             RuntimeLease DeploymentLeaseExpiration StorageLease StorageLeaseExpiration
----             ------------ ------------------------- ------------ ----------------------
test-vapp-01-011 10:00:00     2023/05/01 0:49:24        01:00:00
test-vapp-01-012 10:00:00     2023/05/01 0:49:27        01:00:00

 

テナント ポータルで、vApp が作成されたことが確認できます。

 

vApp に含まれている「jbox01」という踏み台 仮想マシンは、NIC 0 がコンフィグ ファイルで指定したネットワークに接続されています。

 

そして、02_delete_vcd_vapp.ps1 で削除できます。

PS C:\> .\02_delete_vcd_vapp.ps1 .\config_test-vapp-01.ps1
Stop vApp: test-vapp-01-011
Delete vApp: test-vapp-01-011
Stop vApp: test-vapp-01-012
Delete vApp: test-vapp-01-012

 

PowerCLI は、vSphere の操作と同様に、対話的に操作する場合は利用しやすいと思います。しかし新たに VCD を自動化するとなると、コードの形式が定まっているぶん、Terraform を利用したほうがメンテナンスしやすいかなと思います。

以上、VCD を PowerCLI で操作してみる話でした。