Flow Virtual Networking(FVN)で、Routed VPC(NoNAT 構成の VPC)を作成してみます。今回は、前回の投稿 と同様の構成を、Terraform で展開してみます。
今回の内容です。
- 今回の環境
- 今回の tf ファイル構成
- 1. tf ファイルの作成(1_vpc ディレクトリ)
- 2. tf ファイルの作成(2_overlay-vm ディレクトリ)
- 3. VPC の作成
- 4. Overlay サブネットと仮想マシンの作成
- リソースの削除
今回の環境
下記の投稿と同様の構成を、Terraform で展開してみます。
今回の tf ファイルは、「External Subnet と Routed VPC」、「Overlay サブネットと仮想マシン」の2つのディレクトリに分割して作成します。
今回の tf ファイル構成
ディレクトリには、下記のようにファイルを作成します。今回も tf ファイルを 2つのディレクトリ(1_vpc と 2_overlay-vm)に分割してあるので、Terraform の State も分割されます。
$ tree --charset=ascii ./ ./ |-- 1_vpc | |-- data_cluster_v2.tf | |-- data_route-table_v2.tf | |-- output.tf | |-- prism.auto.tfvars | |-- provider.tf | |-- route_v2.tf | |-- subnet-ext_v2.tf | |-- variable.tf | `-- vpc_v2.tf `-- 2_overlay-vm |-- cloud-init_ol-web.yml |-- modules | `-- overlay | |-- data_cluster_v2.tf | |-- data_image_v2.tf | |-- data_vpc_v2.tf | |-- output.tf | |-- provider.tf | |-- subnet-overlay_v2.tf | |-- variables.tf | `-- vm_v2.tf |-- overlay-11_vm.tf |-- prism.auto.tfvars |-- provider.tf `-- variable.tf
1. tf ファイルの作成(1_vpc ディレクトリ)
1_vpc ディレクトリには、External Subnet と VPC を作成する tf ファイルを格納します。
次のファイルは、以前の投稿 と同じ内容のものを作成します。
- provider.tf
- variable.tf
- prism.auto.tfvars
data_cluster_v2.tf
データ ソースで Nutanix クラスタを取得します。
subnet-ext_v2.tf
External Subnet として使用する VLAN サブネットを作成します。
vpc_v2.tf
VPC を作成します。
data_route-table_v2.tf
データ ソースで、VPC のルーティング テーブルを取得します。
route_v2.tf
VPC のデフォルト ルートを設定します。
output.tf
VPC の Router IP を取得します。
2. tf ファイルの作成(2_overlay-vm ディレクトリ)
2_overlay-vm ディレクトリ直下でも、次のファイルは 以前の投稿 と同じ内容のものを作成します。
- provider.tf
- variable.tf
- prism.auto.tfvars
Cloud-init スクリプトも、以前の投稿と同様のファイルを使用します。
- cloud-init_ol-web.yml
Overlay サブネットと仮想マシンは、「2_overlay-vm/modules」ディレクトリに以前の投稿で作成したモジュールを配置して使用します。
モジュールは、下記のファイルで読み込みます。Overlay サブネットと仮想マシンのパラメータも、このファイルに記載します。
overlay-11_vm.tf
モジュールを読み込んで、Overlay サブネットと仮想マシンを作成します。
3. VPC の作成
External Subnet と VPC を作成するため、1_vpc ディレクトリで terraform コマンドを実行します。
$ cd ./1_vpc/
新規フォルダで terraform コマンドを実行するので、初回のみ「teraform init」を実行します。
$ terraform init
「terraform plan」→「terraform apply」でリソースを作成します。
$ terraform plan $ terraform apply -auto-approve
Terraform の State は下記のように登録されます。
$ terraform state list data.nutanix_clusters_v2.cluster1 data.nutanix_route_tables_v2.table1 nutanix_routes_v2.route1 nutanix_subnet_v2.ext-subnet1 nutanix_vpc_v2.vpc1
4. Overlay サブネットと仮想マシンの作成
Overlay サブネットと仮想マシンを作成するため、2_vpc ディレクトリで terraform コマンドを実行します。
$ cd ../2_overlay-vm/
新規フォルダで terraform コマンドを実行するので、初回のみ「teraform init」を実行します。
$ terraform init
「terraform plan」→「terraform apply」でリソースを作成します。
$ terraform plan $ terraform apply -auto-approve
Terraform の State は下記のように登録されます。
$ terraform state list module.overlay1.data.nutanix_clusters_v2.cluster1 module.overlay1.data.nutanix_images_v2.image1 module.overlay1.data.nutanix_vpcs_v2.vpc1 module.overlay1.nutanix_subnet_v2.overlay1 module.overlay1.nutanix_virtual_machine_v2.vms[0]
リソースの削除
今回作成したリソースの削除は、2_overlay-vm ディレクトリ → 1_vpc ディレクトリの順で「terraform destroy」を実行します。
2_vpc ディレクトリに移動します。
$ cd ../2_overlay-vm/
terraform destroy で、Overlay サブネットと仮想マシンを削除します。
$ terraform destroy -auto-approve
1_ext-subnet ディレクトリに移動します。
$ cd ../1_vpc/
VPC と External Subnet を削除します。
$ terraform destroy -auto-approve
つづく。