こんにちは、ネットワールドの海野です。
今回は HashiCorp Terraform を使って Nutanix AHV 上にある仮想マシンをクローンする方法をご紹介します。
Terraform とは Infrastructure-as-Code のためのツールで、いわゆるプログラム的なコードのファイルで運用を自動化するということが実現できます。
以前にも Nutanix DevOps Night #1 にて Terraform を使った仮想マシンの展開方法はご紹介しましたが、これは仮想マシンをいったんディスクに変換する必要があり、運用としてマッチしないシチュエーションもあったかと思います。
今回はこれをもっと自然に、仮想マシンのディスクイメージではなく、 Terraform を使って仮想マシンそのものをクローンする方法をご紹介してまいります。
Terraform 用のコードは以下のリポジトリから取得してください。
使い方のステップは、各種変数を格納するための .tfvars ファイルに必要な環境の情報を集めます。
ここでは…
- クラスターのクレデンシャル (ユーザー名とパスワード)
- クラスターの IP アドレスと名前
- クローンしたい仮想マシンの名前と UUID
といった内容が必要です。
ではさっそくどんな感じでプロビジョニングするのかを見ていただきます。
まず、Nutanix AHV の CVM クラスターに SSH で接続し、acli から vm.list を実行します。
ここでは "WIN10-TEMPLATE" という仮想マシンをクローンしようと思いますので、 "eb2ca28c-615a-41cd-94f7-361ec5f66327" という UUID を控えておきます。
先ほど紹介した GitHub のリポジトリからファイルを持ってきて、各環境の情報を埋めていきます。
そして、いつも通り "terraform apply" することで、プロビジョニングが開始されます。
無事にディスクをイメージ化することなく、 Terraform で仮想マシンをクローンすることに成功しました。
あとがき
このブログの記事は Nutanix Advent Calendar 2021 のために書いたものです。
なんとなく私の中の印象ではこれががっぷり四つなクローンであるという気がしていますが、残念ながら Example Usage には記載がありません…。
https://registry.terraform.io/providers/nutanix/nutanix/latest/docs/resources/virtual_machine
まあそのために我々のようなエンジニアがいるんだろうなぁ、と思っています。
これからもよろしくお願いいたします。
記事担当者 : 海野 航 (うんの わたる)
得意ジャンルは EUC で、好きなジャンルは無心でできるコーディング。