VMware Cloud Director 10.4(VCD)を Terraform で操作してみます。
今回は、vApp と仮想マシンを作成して、それと同時に、仮想マシンに外部ネットワークから接続するための DNAT ルールを作成してみます。
ネットワーキングには NSX-T を利用しているので、NAT ルールは VCD Provider の vcd_nsxt_nat_rule リソースで作成します。
前回はこちら。
今回の内容です。
1. 今回の環境
VCD 環境と、展開する vApp の構成は、前回の投稿と同様です。
VCD 環境では、一連のラボ環境構築のときに、組織 VDC ネットワークと SNAT ルールを作成してあります。
組織 VCD の Edge に SNAT ルールを設定してあり、これで、組織 VDC ネットワークから外部への通信(内 → 外 方向)が可能になっています。
そこで今回は、新規作成する仮想マシンに外部ネットワークから接続する DNAT ルール(外 → 内 方向)のみ作成します。
仮想マシンの vNIC の接続先となる、経路指定(ルーティング可能な)組織 VDC ネットワークは作成済みです。DNAT での変換先の IP アドレスは、このネットワーク セグメントのアドレスを指定します。
2. Terraform の Configuration ファイルの作成
今回は、前回と同様の構成で仮想マシンを作成して、そこに DNAT ルールを追加します。あらためて、Configuration をひととおり掲載しておきます。
variables.tf ファイル
terraform.tfvars ファイル
cred.auto.tfvars ファイル
provider.tf ファイル
network.tf ファイル
vapp_vm_customize.tf ファイル
今回は、vApp の名前を「tf-vapp-04」にしてあります。
dnat.tf ファイル
DNAT ルールの .tf ファイルは、今回新規作成したものです。組織 VDC エッジ(org-01-edge-01)は事前に作成してあります。
- DNAT ルールの名前: tf-dnat-104
- 組織 VDC エッジ: org-01-edge-01
- 変換元 IP アドレス: 192.168.31.104
- 変換先 IP アドレス: Terraform が作成した仮想マシンから取得
- firewall_match: BYPASS(今回はデモをわかりやすくするため、ファイアウォールはバイパス)
3. Terraform の実行
terraform apply コマンドを実行すると、vApp の作成、vApp への組織 VDC ネットワークの追加、仮想マシンと DNAT ルールの作成が実施されます。
$ terraform apply plan $ terraform apply -auto-approve
4. 作成された仮想マシンと DNAT ルールの様子
Terraform で作成された vApp「tf-vapp-04」には、仮想マシン「vm01」が作成されて、ルーティングされた組織 VDC ネットワークに接続されています。
スクリーンショットには表示されていませんが、この仮想マシンには、組織 VDC ネットワークの IP プールから「10.0.1.103」が設定されています。
そして、エッジの NAT ルールを確認すると、Terraform によて DNAT ルール「tf-dnat-104」が作成されています。
外部ネットワークの作業用マシンから DNAT アドレス「192.168.31.104」宛に SSH 接続でき、ログインすると vm01 には「10.0.1.103」が設定されています。
以上、VCD を Terraform で操作してみる話でした。
続きはこちら。