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 クラスタを取得します。
subnet-ext_v2.tf
External Subnet として使用する VLAN サブネットは、NAT を有効(is_nat_enabled = true)にしたものを作成します。
vpc_v2.tf
VPC には、External Subnet として VLAN サブネットを接続します。
data_route-table_v2.tf
VPC のデフォルト ルートを設定するために、データ ソースで VPC のルーティング テーブルを取得します。
route_v2.tf
VPC のルーティング テーブルに、デフォルト ルート(0.0.0.0/0)を設定します。ネクスト ホップには、External Subnet の VLAN サブネットを指定しています。
subnet-overlay_v2.tf
Overlay サブネットを作成します。
data_image_v2.tf
データ ソースで、仮想マシンに接続する Cloud Image のディスク イメージを取得します。
vm_v2_web-01.tf
仮想マシンを作成します。今回も、Cloud-init スクリプトを読み込みます。
floating-ip_v2.tf
Floating IP アドレスを作成して、仮想マシンに割り当てます。
cloud-init_ol-web.yml
Cloud-init スクリプトでは、nutanix ユーザー(パスワードは nutanix/4u)を作成して、Web サーバー(ポート番号は 8080)を起動します。このファイルは、前回の投稿と同じものです。
output.tf
Output として、仮想マシンの IP アドレスと、Floating IP アドレスを出力します。
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
つづく。