vm.gowatana.jp

NEOにほんごVMware(仮)

VMware Cloud Director 10.4 を Terraform で操作してみる。Part-01 Terraform のインストール

VMware Cloud Director 10.4(VCD)を Terraform で操作してみます。今回は、Linux に Terraform をインストールして、VDC Provider で vApp を作成してみます。

今回の内容です。

 

1. 今回の環境

最初に、Terraform 実行先の VCD と、実行元の環境について紹介しておきます。

 

VMware Cloud Director

以前に構築した、下記の環境を利用しています。今回 Terraform で vApp を作成する VDC は作成済みです。

  • 組織: demo-org-01
  • 組織 VDC: org-vdc-01

 

Terraform の実行環境

Linux(VMware Photon OS 4.0) に Terraform をインストールして実行します。

root@lab-terraform-01 [ ~ ]# cat /etc/photon-release
VMware Photon OS 4.0
PHOTON_BUILD_NUMBER=2f5aad892

 

2. Terraform のインストール

まず、Terraform のバイナリ ファイルを解答するために unzip をインストールしておきます。

# tdnf install -y unzip

 

root ユーザのままでも作業可能ですが、今回は作業用の OS ユーザ(demo)を作成しておきます。

# useradd -m demo
# passwd demo
# su - demo

 

Terraform をダウンロードします。

$ curl -LOs https://releases.hashicorp.com/terraform/1.3.4/terraform_1.3.4_linux_amd64.zip

 

今回は、$HOME/bin にインストール(展開)します。

$ mkdir $HOME/bin/
$ unzip terraform_1.3.4_linux_amd64.zip -d $HOME/bin/

 

terraform のバイナリ ファイルを配置したディレクトリを、PATH 環境変数に追加しておきます。

$ echo 'export PATH=$HOME/bin:$PATH' >> $HOME/.bashrc

 

PATH 環境変数の設定を確認するため、作業ユーザで再ログインしておきます。

$ su - demo

 

これで、terraform コマンドが実行できるようになったはずです。

$ terraform version
Terraform v1.3.4
on linux_amd64

 

3. Terraform と VMware Cloud Director Provider の準備

Terraform から VCD を操作する Provider(VMware Cloud Director Provider)は VMware から提供されており、Terraform Registry でも公開されています。今回は最新バージョンの 3.7.0 を利用します。

 

Terraform 関連のファイルを格納する作業ディレクトリを作成しておきます。

$ mkdir vcd
$ cd vcd/

 

Terraform による定義ファイルを作成しておきます。

main.tf

  • VCD Provider(vmware/vcd)の、バージョン 3.7 を利用
  • 組織 VDC(org-vdc-01)に、空の vApp(tf-vapp-01)を作成

gist.github.com

 

terraform init で初期化します。

$ terraform init

 

下記のように、VCD Provider (vmware/vcd)がダウンロードされます。

 

4. Terraform での vApp 作成

terraform plan を実行すると、処理内容が確認できます。

$ terraform plan

 

下記のような感じで、処理内容による差分が表示されます。

 

terraform apply で、実際に処理を実行します。

$ terraform apply -auto-approve

 

下記のような感じで、vApp(tf-vapp-01)が作成されます。

 

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

ちなみに、今回はただ vApp を作成しただけなので、ネットワークや仮想マシンは含まれていません。

 

ちなみに Terraform で作成されたリソースは、terraform destroy で削除できます。

$ terraform destroy -auto-approve

 

コマンドを実行すると、下記のように vApp が削除されます。

 

つづく。