株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

HashiCorp Terraform で Nutanix AHV の仮想マシンをまじめにクローンする (ディスクのイメージ化が不要なやつ)

こんにちは、ネットワールドの海野です。

今回は HashiCorp Terraform を使って Nutanix AHV 上にある仮想マシンをクローンする方法をご紹介します。

Terraform とは Infrastructure-as-Code のためのツールで、いわゆるプログラム的なコードのファイルで運用を自動化するということが実現できます。

以前にも Nutanix DevOps Night #1 にて Terraform を使った仮想マシンの展開方法はご紹介しましたが、これは仮想マシンをいったんディスクに変換する必要があり、運用としてマッチしないシチュエーションもあったかと思います。

 

今回はこれをもっと自然に、仮想マシンのディスクイメージではなく、 Terraform を使って仮想マシンそのものをクローンする方法をご紹介してまいります。

Terraform 用のコードは以下のリポジトリから取得してください。

github.com

 

使い方のステップは、各種変数を格納するための .tfvars ファイルに必要な環境の情報を集めます。

ここでは…

  • クラスターのクレデンシャル (ユーザー名とパスワード)
  • クラスターの IP アドレスと名前
  • クローンしたい仮想マシンの名前と UUID

といった内容が必要です。

 

ではさっそくどんな感じでプロビジョニングするのかを見ていただきます。

まず、Nutanix AHV の CVM クラスターに SSH で接続し、acli から vm.list を実行します。

ここでは "WIN10-TEMPLATE" という仮想マシンをクローンしようと思いますので、 "eb2ca28c-615a-41cd-94f7-361ec5f66327" という UUID を控えておきます。

f:id:networld-blog-post:20211218164330p:plain

先ほど紹介した GitHub のリポジトリからファイルを持ってきて、各環境の情報を埋めていきます。

f:id:networld-blog-post:20211218165001p:plain

そして、いつも通り "terraform apply" することで、プロビジョニングが開始されます。

f:id:networld-blog-post:20211218165158p:plain

無事にディスクをイメージ化することなく、 Terraform で仮想マシンをクローンすることに成功しました。

f:id:networld-blog-post:20211218165519p:plain

あとがき

このブログの記事は Nutanix Advent Calendar 2021 のために書いたものです。

なんとなく私の中の印象ではこれががっぷり四つなクローンであるという気がしていますが、残念ながら Example Usage には記載がありません…。

https://registry.terraform.io/providers/nutanix/nutanix/latest/docs/resources/virtual_machine

まあそのために我々のようなエンジニアがいるんだろうなぁ、と思っています。

これからもよろしくお願いいたします。

記事担当者 : 海野 航 (うんの わたる)

ソリューションアーキテクト : 海野航
得意ジャンルは EUC で、好きなジャンルは無心でできるコーディング。