NTNX>日記

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

Terraform で FVN の NAT VPC を構成してみる。Part-04:VPC と仮想マシンの作成(tf ファイル分割)

Terraform の Nutanix Provider v2 で、NAT での外部接続が可能な VPC と仮想マシンの作成、Floating IP アドレスの割り当てをまとめて実施してみます。今回は、前回 と同じ構成を、Terraform の構成ファイルを分割してみます。

今回の内容です。

今回の環境

前回の投稿では、あえて Terraform の tf ファイルを、1つ(main.tf)にまとめてみました。

今回は、同様の構成で tf ファイルを分割してみます。


1. tf ファイルの作成

新規ディレクトリを作成して、下記のファイル一式を作成します。

今回のファイル構成

ディレクトリには、下記のようにファイルを作成します。

$ tree --charset=ascii ./
./
|-- cloud-init_ol-web.yml
|-- data_route-table_v2.tf
|-- data_cluster_v2.tf
|-- data_image_v2.tf
|-- floating-ip_v2.tf
|-- output.tf
|-- prism.auto.tfvars
|-- provider.tf
|-- route_v2.tf
|-- subnet-ext_v2.tf
|-- subnet-overlay_v2.tf
|-- variable.tf
|-- vm_v2_web-01.tf
`-- vpc_v2.tf

 

以前の投稿の tf ファイル

以前の投稿 で作成したファイル一式も、そのままの内容で作成します。

  • provider.tf
  • variable.tf
  • prism.auto.tfvars

 

data_cluster_v2.tf

データ セットで、Nutanix クラスタを取得します。

gist.github.com

 

subnet-ext_v2.tf

External Subnet として使用する VLAN サブネットは、NAT を有効(is_nat_enabled = true)にしたものを作成します。

gist.github.com

 

vpc_v2.tf

VPC には、External Subnet として VLAN サブネットを接続します。

gist.github.com

 

data_route-table_v2.tf

VPC のデフォルト ルートを設定するために、データ ソースで VPC のルーティング テーブルを取得します。

gist.github.com

 

route_v2.tf

VPC のルーティング テーブルに、デフォルト ルート(0.0.0.0/0)を設定します。ネクスト ホップには、External Subnet の VLAN サブネットを指定しています。

gist.github.com

 

subnet-overlay_v2.tf

Overlay サブネットを作成します。

gist.github.com

 

data_image_v2.tf

データ ソースで、仮想マシンに接続する Cloud Image のディスク イメージを取得します。

gist.github.com

 

vm_v2_web-01.tf

仮想マシンを作成します。今回も、Cloud-init スクリプトを読み込みます。

gist.github.com

 

floating-ip_v2.tf

Floating IP アドレスを作成して、仮想マシンに割り当てます。

gist.github.com

 

cloud-init_ol-web.yml

Cloud-init スクリプトでは、nutanix ユーザー(パスワードは nutanix/4u)を作成して、Web サーバー(ポート番号は 8080)を起動します。このファイルは、前回の投稿と同じものです。

gist.github.com

 

output.tf

Output として、仮想マシンの IP アドレスと、Floating IP アドレスを出力します。 

gist.github.com

 

2. terraform コマンドの実行

新規フォルダで terraform コマンドを実行するので、あらためて「teraform init」を実行します。

$ terraform init

「terraform plan」→「terraform apply」でリソースを作成します。

$ terraform plan
$ terraform apply -auto-approve

Output は、あとからでも下記のように確認できます。

$ terraform output
vm_fip = "192.168.21.26"
vm_ip = "10.0.11.11"

リソースを削除するには、「terraform destroy」を実行します。

$ terraform destroy -auto-approve

 

つづく。

 

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