NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Flow Virtual Networking の Routed VPC を構成してみる。Part-02:Routed VPC 環境の作成(Terraform)

Flow Virtual Networking(FVN)で、Routed VPC(NoNAT 構成の VPC)を作成してみます。今回は、前回の投稿 と同様の構成を、Terraform で展開してみます。 

今回の内容です。

今回の環境

下記の投稿と同様の構成を、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 クラスタを取得します。

gist.github.com

 

subnet-ext_v2.tf

External Subnet として使用する VLAN サブネットを作成します。

gist.github.com

 

vpc_v2.tf

VPC を作成します。

gist.github.com

 

data_route-table_v2.tf

データ ソースで、VPC のルーティング テーブルを取得します。

gist.github.com

 

route_v2.tf

VPC のデフォルト ルートを設定します。

gist.github.com

 

output.tf

VPC の Router IP を取得します。

gist.github.com

 

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 サブネットと仮想マシンを作成します。

gist.github.com

 

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

 

つづく。

 

©2024 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。