Terraform の Nutanix Provider v2 で、Flow Virtual Networking(FVN)の既存 VPC に、Overlay サブネットと仮想マシンを作成してみます。
今回の内容です。
今回の環境
下記の投稿で、VPC「vpc-01」を作成してあります。その際に Overlay サブネット「overlay-01」も作成してありますが、今回は「overlay-02」サブネットを追加します。
そして、追加した Overlay サブネットに、仮想マシン「vm03」も追加します。
今回のファイル構成
新規作成したディレクトリに、下記のようにファイルを作成します。
$ tree --charset=ascii ./ ./ |-- cloud-init_nutanix.yml |-- data.tf |-- prism.auto.tfvars |-- provider.tf |-- subnet-overlay_v2_overlay-02.tf |-- variable.tf `-- vm_v2_vm03.tf
1. tf ファイルの作成
Terraform の .tf ファイルを作成します。今回もファイルを多めに分割していますが、1つのファイルにすべて記載しても動作します。
前回の投稿の tf ファイル
以前の投稿 で作成した下記のファイルは、そのままコピーして利用します。
- provider.tf
- variable.tf
- prism.auto.tfvars
data.tf
既存 VPC(vpc-01)、Nutanix クラスタ、そして仮想マシンの仮想ディスク イメージを、データ ソースで登録します。前回とは異なり、追加の Overlay セグメントはこれから「Resource」として作成するので、ここでは記述していません。
subnet-overlay_v2_overlay-02.tf
nutanix_subnet_v2 リソースとして、Overlay サブネットを作成する tf ファイルです。
- L2:サブネットの名前は overlay-02 です。
- L3:サブネットの種類は、OVERLAY です。
- L10:ネットワーク アドレスは 10.0.2.0/24 です。VPC 内で重複しないように、overlay-01 とは異なる CIDR を指定します。
vm_v2_vm03.tf
nutanix_virtual_machine_v2 リソースとして、仮想マシンを作成します。前回の仮想マシン定義との差分は下記のようになっています。
- L2:仮想マシン名は vm03 です。
- L27:接続する Overlay サブネットの UUID(ext_id)を指定します。前回の仮想マシン定義とはことなり、データ ソース(data.nutanix_subnets_v2. ~)ではなく、リソース(resource.nutanix_subnet_v2.~、または省略して nutanix_subnet_v2.~)の ext_id を参照します。
- L20:IP アドレスを静的に設定します。このアドレスは overlay-02 サブネットのネットワーク アドレスの範囲から指定します。
2. リソースの作成
これまでと同様に、terraform init、terraform apply を実行すると、tf ファイルに定義されたリソースが作成されます。
初回のみ、terraform init を実行します。
$ terraform init
terraform apply を実行して、リソースを作成します。
$ terraform plan $ terraform apply -auto-approve
サブネットと仮想マシンが作成され、次のように terraform state が登録されます。
$ terraform state list data.nutanix_clusters_v2.cluster1 data.nutanix_images_v2.image1 data.nutanix_vpcs_v2.vpc1 nutanix_subnet_v2.overlay1 nutanix_virtual_machine_v2.vm1
つづく。