vm.gowatana.jp

NEOにほんごVMware(仮)

VMware Cloud Director 10.4 を Ansible で操作してみる。Part-02 vApp 作成 / 削除

VMware Cloud Director 10.4(VCD)で、Ansible を使用して vApp 作成と削除を試してみます。今回は、すでに用意してある vApp テンプレートから vApp を作成します。

 

前回はこちら。

 

今回の内容です。

 

今回の環境

VCD の検証環境は、下記のように構築しています。

 

今回利用する vApp テンプレート「vapp-template-01」は、一連の投稿のうち下記のあたりで作成したものです。

 

今回の内容です。

 

1. vApp の作成

vApp テンプレートから vApp を作成して、仮想マシンはそのままパワーオンします。

 

1-1. Ansible Playbook の用意

下記のような Playbook を用意しました。

  • 作成する vApp の名前は、vapp-03
  • 作成先の VCD 組織は demo-org-01、組織 VDC は org-vdc-01
  • vApp は、catalog-03 カタログにある vapp-template-01 テンプレートから作成
  • description に「created by ansible」を記載する

gist.github.com

 

1-2. Ansible Playbook の実行

それでは、Playbook を実行します。

# ansible-playbook demo_create_vapp-03.yml

 

これで、VCD のテナント ポータルで確認すると vApp が作成、開始されるはずです。Playbook に指定したとおり、vApp の「説明」に「created by ansible」が記載されています。

 

vApp と仮想マシンが、パワーオンされた状態になります。

 

vApp テンプレートに作成されていた vApp ネットワークも利用可能です。

 

ただし、vApp テンプレートから vApp を作成しただけでは、なぜかその中の仮想マシンで「ゲスト OS のカスタマイズ」は動作しませんでした。ゲスト OS で root パスワード変更やカスタム スクリプトを実行したい場合には、まず空の vcd_vapp で vApp を作成してから、vcd_vapp_vm モジュールで仮想マシンを追加したりすることで「ゲスト OS のカスタマイズ」を作動させることができます。

 

2. vApp の削除

作成した vApp を削除してみます。

 

2-1. Ansible Playbook の用意

今回は、下記のような Playbook を用意しました。ちなみに、vApp 作成時に指定していたカタログやテンプレートは削除の場合には不要ですが、そのまま残しておいても動作します。

  • vApp 作成で使用した demo_create_vapp-03.yml の、state を "absent" に変更
  • force: true を追記

gist.github.com

 

VCD では、vApp を削除する際に、事前に停止しておく必要があります。そして、Ansible の vcd_vapp モジュールを使用する場合でも、vApp を起動たまま削除しようとするとエラーになります。

Ansible の vcd_vapp でも vApp の停止は可能ですが、vApp 削除と同時にはできないようで、Ansble の Play が分割されてしまいます。ラボ環境であれば、ただすぐに vApp を削除したいケースもあるので、今回は「force: true」を指定して強制削除しています。

 

2-2. Ansible Playbook の実行

Playbook を実行すると、自動的に vApp がその中の仮想マシンも含めて停止され、削除されます。

# ansible-playbook demo_delete_vapp-03.yml

 

テナント ポータルでも、vApp が削除される様子が確認できます。

 

つづく。