先日の Nutanix DevOps Night #1 で、AHV で Terraform を利用する方法が紹介されていました。
当日のセッションでは、Terraform を Windows から利用していたので、Linux(CentOS 7)で手軽に実行環境を用意する方法を紹介してみようと思います。
今回の内容です。
事前準備
- AHV の Nutanix クラスタを用意します。Prism Central あり / なし(Prism Element のみ)どちらでも大丈夫です。
- Prism で、イメージ サービスに、Cloud-init がインストールされている CentOS-7-x86_64-GenericCloud-2009.qcow2 イメージを登録しておきます。イメージ ファイルのダウンロード URL は下記。
https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-2009.qcow2 - Prism で、IPAM を有効にしたネットワークを作成しておきます。
Terraform インストールでインターネット接続するので、IPAM の DHCP 設定では、デフォルトゲートウェイや DNS サーバ設定も必要です。
ゲスト OS カスタム スクリプトの用意
AHV で VM 作成時に読み込ませる、ゲスト OS のカスタム スクリプト(Cloud-init の User Data)を用意します。
今回は、次のようなスクリプトを用意します。
- nutanix という OS ユーザを作成。(初期パスワードは nutanix/4u)
- Terraform v0.14.9 をインストール。
- terraform は bash のタブ補完機能を有効化。
(terraform -install-autocomplete 相当)
VM の作成
Prism にて、「仮想マシン」メニューの「仮想マシンを作成」を開き、次のようにパラメータを入力して、下に画面をスクロールしていきます。
- Name: 仮想マシンの名前
- vCPU: vCPU 数。「1」でも OK。
- Memory: メモリ容量(GB)。例では「2」ですが、1GB でも動作します。
「Add New Disk」で、イメージサービスに登録しておいたディスク イメージを追加します。
「イメージサービスからクローン」を選択し、ディスク イメージを選択してから「Add」で追加します。
「Add New NIC」で、vNIC を追加します。
事前に作成していた、IPAM 有効のネットワークを選択して、「追加」をクリックします。これで、ゲスト OS では DHCP にてネットワーク設定されるはずです。
「Custom Script」のチェックをオンにして、「Type Or Paste Script」に、用意しておいたスクリプトを貼り付けて、「Save」をクリックします。
VM の起動 ~ Terraform のインストール確認
VM が作成されると、この時点で IPAM により IP アドレスが採番されています。(例では 192.168.11.131)
この VM を選択して、「Power on」します。
Cloud-init によるインストール処理が完了するのを、数分ほど待ちます。
そして SSH で VM に接続して、nutanix ユーザ(パスワードは nutanix/4u)でログインします。
$ ssh nutanix@192.168.11.131
Terraform は自動的にインストールされます。「terraform ve(TAB キー)」などで bash の補完機能が利用できることも確認できるはずです。
[nutanix@tf-vm-01 ~]$ terraform version Terraform v0.14.9
CVM の acli を利用する方法
ちなみに、Prism での GUI からではなく、CVM の acli でコマンドラインから同様の VM を作成する方法については、こちら(カスタム スクリプトの Gist のコメント欄)をどうぞ。
以上。