Terraform で、Nutanix Provider v2 のデータ ソースを使用して Nutanix クラスタの情報を取得してみます。今回は、接続確認として Nutainx クラスタの UUID(ext_id)を取得してみます。
Nutanix Provider v2 からは、Nutanix v4 API に対応しています。そこで、あえて v4 API を使用するデータ ソース(nutanix_clusters_v2)を使用してみます。
今回の環境
Terraform は、Linux マシンから実行します。今回は Oracle Linux 9 を使用しています。
$ cat /etc/oracle-release Oracle Linux Server release 9.5
あらかじめ、unzip をインストールしておきます。これは、root ユーザーもしくは sudo で実行します。
# dnf install unzip -y
1. Terraform のインストール
Terraform のバイナリをダウンロードします。
$ curl -OL https://releases.hashicorp.com/terraform/1.11.4/terraform_1.11.4_linux_amd64.zip
.zip ファイルから、terraform コマンドを抽出します。
$ unzip terraform_1.11.4_linux_amd64.zip terraform Archive: terraform_1.11.4_linux_amd64.zip inflating: terraform
terraform コマンドは、PATH が通っているディレクトリに配置します。Oracle Linux ではデフォルトで $HOME/bin が $PATH に含まれています。
$ mkdir $HOME/bin $ mv terraform $HOME/bin/
terraform コマンドが実行可能になりました。
$ terraform version Terraform v1.11.4 on linux_amd64
2. tf ファイルの準備
Terraform の .tf ファイルを作成しておきます。今回は複数のファイルに分割していますが、すべてを1つのファイルに記述しても動作します。
今回のファイル構成
ディレクトリには、下記のようにファイルを作成します。ちなみに tree コマンドは、「dnf install tree」で事前にインストールしてあります。
$ tree --charset=ascii ./ ./ |-- cluster_v2.tf |-- prism.auto.tfvars |-- provider.tf `-- variable.tf
provider.tf
Nutanix Provider のバージョンや、Prism Central への接続情報などを記述します。
実行時の警告を抑止するため、Foundation と NDB の接続情報(のダミー)も記述しています。
variable.tf
変数の定義を記述しています。
prism.auto.tfvars
Prism Central に接続するユーザー、パスワード、アドレスを記述します。Nutanix v4 API を利用するので、Prism Central への接続(Prism Element ではなく)が必須です。
cluster_v2.tf
Nutanix Provider のリソースやデータ ソースのうち、Nutanix v3 API を使用するものは「~_v2」という名前になっています。ちなみに、従来の v3 API を使用するリソースとデータ ソースも、まだ併用可能です。
ここでは、nutanix_clusters_v2 データ ソースを使用して、Nutanix クラスタ(今回のクラスタ名は lab-nxce-10)の UUID(ext_id)を出力します。
3. terraform の初期化
.tf ファイルを配置してあるディレクトリで「terraform init」を実行して、Terraform を初期化します。これにより Nutanix Provider が自動的にダウンロード インストールされます。
$ terraform init
実際に実行すると、下記のようになります。
4. terraform の実行
.tf ファイルを配置してあるディレクトリで「terraform plan」を実行すると、事前確認できます。今回は Nutanix クラスタの設定を変更するつもりはないので、この時点で ext_id を取得できることが確認できています。
$ terraform plan
実際に実行すると、下記のようになります。
「terraform apply」を実行すると、.tf ファイルの内容を実機反映できます。今回は設定変更がない .tf ファイルを作成したので、「cluster_ext_id」という Output に Nutanix クラスタの UUID が取得されるだけです。
$ terraform apply -auto-approve
実際に実行すると、下記のようになります。
これ以降は、下記のように Nutanix クラスタの状態(State)が取得されたことが確認できます。
$ terraform state list data.nutanix_clusters_v2.cluster1
下記のようにコマンドを実行すると、詳細な情報が出力されます。(ここでは省略)
$ terraform state show data.nutanix_clusters_v2.cluster1
Output は、下記のように確認できます。
$ terraform output cluster_ext_id = "00063386-4ad9-c5a4-4b34-005056812e2d"
つづく。