vm.gowatana.jp

NEOにほんごVMware(仮)

VCF 5.2 の Aria Automation で Cloud-init を利用してみる。

Aria Automation の Assembler テンプレートで、Cloud-init を利用してみます。

今回の内容です。

 

今回の環境

VCF 5.2.1 の Management Domain に、Aria Automation を展開してあります。

 

Assembler では、テンプレート展開先のプロジェクトとして「demo-pj-01」を作成してあります。

 

そして、下記のように NSX オーバーレイ セグメントに接続された仮想マシンを展開できるように準備してあります。

 

1. 仮想マシン イメージ(OVF テンプレート)の作成

vSphere Client 側で、ゲスト OS に Cloud-init をインストールしてある仮想マシンを用意しておきます。

今回は、Oracle Linux 9.5 を利用しています。

[root@localhost ~]# cat /etc/oracle-release
Oracle Linux Server release 9.5

 

Oracle Linux 9.5 は、下記から ISO イメージ ファイルをダウンロードして、仮想マシンに「Minimal Install」でインストールしてあります。

 

ゲスト OS には、cloud-init をインストールしておきます。

[root@localhost ~]# dnf install cloud-init -y

 

インストール直後の cloud-init のステータスは、「not run」になっています。

[root@localhost ~]# cloud-init status
status: not run

 

仮想マシンをシャットダウンして、そのまま(起動せずに)コンテンツ ライブラリに登録します。

[root@localhost ~]# init 0

 

仮想マシンの CD/DVD ドライブは、デバイス モードで「パススルー CD-ROM」を選択しておきます。


仮想マシンを、oracle-linux-9 という名前の OVF テンプレートとして、コンテンツ ライブラリにクローンしておきます。

 

コンテンツ ライブラリに登録された OVF テンプレートの CD/DVD Drive は、「CD/リモート パススルー」になっています。

 

vSphere Client 側で作成した OVF テンプレートは、Assembler 側で検出されるまで、少し時間がかかります。(クラウド アカウントでイメージの同期を実施すれば即時検出もできます)

 

2. イメージ マッピングの作成

Assembler の「インフラストラクチャ」→「構成」→「イメージ マッピング」→「新規」にて、コンテンツ ライブラリに登録した oracle-linux-9 イメージを参照するイメージ マッピングを作成しておきます。イメージ マッピングは、OVF テンプレートと同名にしてあります。

  • イメージ マッピング:oracle-linux-9

 

イメージとして、コンテンツ ライブラリの OVF テンプレートを選択してあります。

 

3. Assembler でのテンプレート作成

これまで作成したテンプレートをベースに YAML ファイルを作成して、Assembler にアップロードして新規テンプレートを作成します。

 

3-1. YAML ファイルの用意

今回は、下記の YAML ファイルを作成しました。

 

vm-template-05.yaml

  • L19:oracle-linux-9 イメージ マッピングを指定。
  • L23:ゲスト OS のカスタマイズを有効化する。
  • L24~L40:Cloud-init のスクリプトを記載。
  • L28, L33:demo / VMware1! アカウントを作成。
  • L34:demo ユーザーの初回ログイン時にパスワードを変更させる。
  • L35~L40:Cloud-init の作用をわかりやすくするため /etc/motd ファイルを作成。

gist.github.com

 

ちなみに Assembler でのリモート アクセス用ユーザーの構成には remoteAccess というプロパティが用意されているのですが、うまく動作させられなかったので、今回は Cloud-init でユーザーを作成しています。

 

3-2. テンプレートの作成とリリース

Assembler の「デザイン」タブ→「Templates」→「新規作成元」→「アップロード」を開きます。

 

テンプレートの情報を入力して、「アップロード」をクリックします。

  • 名前:vm-template-05
  • プロジェクト:demo-pj-01
  • ファイルのアップロード:vm-template-05.yaml

 

作成された「vm-template-05」テンプレートを開きます。

 

「テスト」をクリックして、成功することを確認します。

 

「バージョン」をクリックします。

 

カタログに公開するための情報を入力して、「作成」をクリックします。

  • バージョン:1 ※自動入力
  • このバージョンをカタログへのリリース:ON

 

カタログにテンプレートがリリースされたので、「閉じる」をクリックします。

 

4. テンプレートの展開

Service Broker の「使用」タブ →「カタログ」を開き、テンプレートの「申請」をクリックします。

  • テンプレート:vm-template-05

 

展開名を入力して、「送信」をクリックします。

  • 送信名:test-deploy-05

 

少し待ってから「展開」を開き、「test-deploy-05」の前にあるマークをクリックすると、展開された仮想マシンに設定された IP アドレスが確認できます。

  • アドレス:10.0.20.34

 

vSphere Client でも、仮想マシンに IP アドレスが設定されたことが確認できます。

 

ルーティングされている作業マシンから、demo ユーザーで SSH すると、Cloud-init スクリプトで指定したパスワード(VMware1!)でログインできます。

初回ログイン時には、パスワード変更が強制されます。また、Cloud-init により /etc/motd が作成され、ログイン時にメッセージが表示されています。

 

つづく。