NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix CE / AHV に Terraform のインストールされた VM を作成してみる。(cloud-init 編)

先日の Nutanix DevOps Night #1 で、AHV で Terraform を利用する方法が紹介されていました。

nutanix.connpass.com

当日のセッションでは、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 相当)

gist.github.com

VM の作成

Prism にて、「仮想マシン」メニューの「仮想マシンを作成」を開き、次のようにパラメータを入力して、下に画面をスクロールしていきます。

  • Name: 仮想マシンの名前
  • vCPU: vCPU 数。「1」でも OK。
  • Memory: メモリ容量(GB)。例では「2」ですが、1GB でも動作します。

f:id:gowatana:20210328234836p:plain

「Add New Disk」で、イメージサービスに登録しておいたディスク イメージを追加します。

f:id:gowatana:20210328235249p:plain

「イメージサービスからクローン」を選択し、ディスク イメージを選択してから「Add」で追加します。

f:id:gowatana:20210328235338p:plain

「Add New NIC」で、vNIC を追加します。

f:id:gowatana:20210328235525p:plain

事前に作成していた、IPAM 有効のネットワークを選択して、「追加」をクリックします。これで、ゲスト OS では DHCP にてネットワーク設定されるはずです。

f:id:gowatana:20210328235624p:plain

「Custom Script」のチェックをオンにして、「Type Or Paste Script」に、用意しておいたスクリプトを貼り付けて、「Save」をクリックします。

f:id:gowatana:20210328235950p:plain

VM の起動 ~ Terraform のインストール確認

VM が作成されると、この時点で IPAM により IP アドレスが採番されています。(例では 192.168.11.131)

この VM を選択して、「Power on」します。

f:id:gowatana:20210329000111p:plain

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 のコメント欄)をどうぞ。

以上。

©2020 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。