NTNX>日記

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

Terraform で FVN の Overlay サブネットを作成してみる。Part-02:仮想マシンの作成

Terraform の Nutanix Provider v2 で、Flow Virtual Networking(FVN)の Overlay サブネットに接続された仮想マシンを作成してみます。

今回の環境

FVN の Overlay サブネットは、前回の投稿で作成してあります。

今回は、作成ずみの Overlay サブネットに、仮想マシン(vm01 と vm02)を作成してみます。

 

1. tf ファイルの作成

新規ディレクトリに、Terraform の .tf ファイル一式を作成しておきます。今回もファイル分割が多めですが、すべて 1つのファイルに記載しても動作します。

今回のファイル構成

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

$ tree --charset=ascii ./
./
|-- cloud-init_nutanix.yml
|-- data.tf
|-- prism.auto.tfvars
|-- provider.tf
|-- variable.tf
`-- vm_v2_vm01.tf

 

前回の投稿の tf ファイル

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

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

 

data.tf(データ ソース)

作成ずみリソースの情報を取得する「データ ソース」は、今回は1つのファイルにまとめて記述してみました。

データ ソースでは、下記の情報を取得しています。

  • L1~:Nutanix クラスタ:lab-nxce-10
  • L5~:Overlay サブネット:overlay-01
    • FVN の Overlay サブネットは、「nutanix_subnets_v2」または「nutanix_subnet_v2」データ ソースで取得できるので VLAN サブネットと同様に扱えます。
  • L9~:Cloud Image のディスク イメージ:OL9U5_x86_64-kvm-b253.qcow2

gist.github.com

 

vm_v2_vm01.tf

nutanix_virtual_machine_v2 リソースとして、仮想マシン(vm01)を作成します。

以前の投稿 に近い設定にしていますが、今回の Cloud-init では、スクリプトを Base64 エンコードしたものを記述しています。

  • L2:仮想マシン名は vm01 です。
  • L27:データ ソースで取得した Overlay サブネットの UUID(ext_id)を指定します。
  • L28-31:今回は、IP アドレスを静的に設定します。
  • L45:Cloud-init スクリプトを、Base64 エンコードした文字列を読み込みます。

gist.github.com

 

Cloud-init スクリプト(cloud-init_nutanix.yml)

vm_v2_vm01.tf ファイルの 45行目の指定した、Cloud-init スクリプトの内容です。以前の投稿での Guided Script 設定とは異なり、nutanix ユーザーでSSH 接続と sudo 実行が可能になります。

gist.github.com

 

2. 仮想マシンの作成(terraform の実行)

前回とは異なるディレクトリで terraform コマンドを実行するので、あらためて「terraform 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_images_v2.image1
data.nutanix_subnets_v2.overlay1
nutanix_virtual_machine_v2.vm1

 

Prism Cental でも、仮想マシン「vm01」が作成され、そのままパワーオンされたことが確認できます。

 

3. 仮想マシンの追加

下記の投稿のように、Overlay サブネットに仮想マシンを追加してみます。tf ファイルの記述方法はいくつかありますか、今回は仮想マシンのみを記述した tf ファイルを追加します。

vm_v2_vm02.tf

このファイルは、すでに作成してあった vm_v2_vm01.tf をコピーして、下記のみ変更したものです。

  • L1:nutanix_virtual_machine_v2 リソース名を vm1 → vm2
  • L2:仮想マシン名を vm01 → vm02
  • L30:IP アドレスを 10.0.1.101 → 10.0.1.102

gist.github.com

 

そして、terraform apply を実行すると、2台目の仮想マシンが作成されます。

$ terraform plan
$ terraform apply -auto-approve

 

terraform state にも、下記のように「nutanix_virtual_machine_v2.vm2」が追加されます。

$ terraform state list
data.nutanix_clusters_v2.cluster1
data.nutanix_images_v2.image1
data.nutanix_subnets_v2.overlay1
nutanix_virtual_machine_v2.vm1
nutanix_virtual_machine_v2.vm2

 

追加した仮想マシンのみを削除したい場合は、vm_v2_vm02.tf ファイルを削除して、terraform apply を実行します。

 

おまけ:リソースの削除

仮想マシンを削除するには、tf ファイル一式を配置してあるディレクトリでそのまま terraform destroy を実行します。

$ terraform destroy -auto-approve

 

つづく。

 

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