HiRoLabブログ

HiRoのゆるふわIT備忘録

はじめてのTerraformでVMwareの自動化にチャレンジしてみた

目次

はじめに

普段は自動化にAnsibleを使っているのですが
Teraformにも挑戦してみようと思い
先ずはvSphere周りの自動化にチャレンジしてみます

今回はTerraformを使ってVMを自動構築するとこに挑戦

対象者

  • VMwareと自動化に興味がある人

  • TerraformでVMwareの自動化に挑戦しようと考えているひと

Terraformを使った自動化の流れ

1 Terraformのインストール
※構築済みのVM(Ubuntu)にTeraformをインストールします

2 テンプレートファイルの作成
※拡張子は「*.tf」

3 実行

Terraformのインストール

Ubuntuでのインストール方法はこちらになります

wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list

sudo apt update && sudo apt install terraform

インストールにはこちらのドキュメントを参考に developer.hashicorp.com

テンプレートの準備

インストールも終わったことなので
VMの自動構築に取り掛かりましょう

先ずはテンプレートの作成から

テンプレートの作成は次のドキュメントを参考に

registry.terraform.io

作成したテンプレートファイルはこちら

  • provider.tf

  • main.tf

先ずはprovider.tfから

ドキュメントにあるproviderのコードをコピペ ※画像参照

registry.terraform.io

provider "vsphere"にvCenterの情報を追記します
追記するパラメーターについてはドキュメントのExample Usageを参考にするのが良い

ここで注意が必要なのは次の設定を省かないこと

allow_unverified_ssl = true

無視してしまうとデフォルトがfalseの為、次のようなエラーが出ます

provider.tfの作成と注意点はここまでです

次はmain.tfを作成します

main.tfはこちらのドキュメントを参考に画像のようなテンプレートファイルを作成します registry.terraform.io

特にここで注意が必要なのは下記を指定していることです

wait_for_guest_net_timeout = 0

このパラメーターを指定しないと次のようなタイムアウトが発生します

実行

terraform init
terraform plan
terraform apply

terraform apply実行後に次のメッセージが表示されるので「yes」と入力

「Apply complete」と表示されたのでvCenterにてVMの確認
Ubuntuのインストールウィザードの画面になっているので問題なさそうだ

作成したVMを削除するにはdestroyコマンドを使用
terraform -hでコマンドの説明を確認したところ、前に作ったインフラ環境を壊すということなので
今回の場合だとVMの削除になる

terraform destroy

destroyもapplyと同様に「yes」を入力

「Destroy complete」と出たのでvCenterでVMが削除されたか確認

おわりに

とりあえずVM1台だけ構築できることはできた
次は複数のVMの構築やCSVからパラメーターを読み込ませたりしてみようと思う