vm.gowatana.jp

NEOにほんごVMware(仮)

VCFA 9.0 の All Apps 組織でブループリントを作成してみる。Part-01:ブループリントの作成(仮想マシン)

VCF Automation(VCFA)9.0 の All Apps 組織で、ブループリントを作成してみます。今回は、仮想マシンを展開するブループリントを作成しています。

 

前回はこちら。

 

今回の内容です。

 

今回の環境

VCFA の環境は、下記の一連の投稿で構築したものを利用します。

 

仮想マシン展開の準備は、下記の投稿を前提としています。

 

1. ブループリントの作成

VCFA の組織ポータルにログインして、「ビルドと展開」→「コンテンツ ハブ」→「ブループリント デザイン」を開き、「新規作成」→「空白のキャンバス」を開きます。

 

ブループリント(Template)のパラメータを入力して、「作成」をクリックします。

  • 名前:vm-bp-01
  • プロジェクト:default-project

 

ブループリントのキャンバスを開いた状態になります。

 

画面左側から、コンポーネントをドラッグ&ドロップします。

まず、「Supervisor Namespace」を置きます。これは、vSphere 名前空間に相当します。

コンポーネントを配置すると、画面右側にある YAML が自動的に更新されます。

 

そして、Supervisor Namespace の上に、「Secret」をドラッグ&ドロップします。

 

Secret のとなりに、「Virtual Machine」をドラッグ&ドロップします。

 

Virtual Machine の下に、「Virtual Machine Service」をドラッグ&ドロップします。これは、仮想マシン ロード バランサに相当します。

 

この時点で、ブループリントの YAML は下記のようになります。

gist.github.com

 

そして、ここからブループリントを下記のように編集します。リソースごとに編集内容を説明しますが、実際のところ、YAML 全体を貼り付けても構いません。

gist.github.com

 

先頭の「inputs」では、ブループリント展開時に入力できる変数を定義します。

  • L3-L5:今回は、vSphere 名前空間の名前を入力できるようにしました。デフォルト値は、この環境に作成ずみの名前空間(org-01-ns-01-96glh)にしてあります。

input については、下記のあたりが参考になります。

 

vSphere 名前空間については、名前を inputs から取得するように編集しました。

  • L10:name: ${input.vsphere_ns_name}

 

Secret リソースでは、ゲスト OS(Linux)に設定するログイン ユーザーのパスワードを格納します。

  • L20:Secret の名前をわかりやすいものに変更
  • L21-L22:data: {} を、stringData: に変更
  • L22:「demo」ユーザーのパスワード ハッシュを指定。パスワードは VMware1!

パスワード ハッシュは 以前の投稿 で仮想マシンを展開した際に生成された YAML のものを流用しました。これは、openssl passwd コマンドなどでも生成できます。ちなみに、アルゴリズムは弱めの MD5(-1 オプション)です。

gowatana@vcf9-work-01 [ ~ ]$ openssl passwd -1 'VMware1!'
$1$m7zPIHnL$YMBkiJP9P0lIDfb8Nkgig1

 

仮想マシンでは、以前の投稿 で仮想マシンを展開した際に生成された YAML をもとに、Cloud-init の User-Data を指定しています。

  • L31:名前をわかりやすいものに変更
  • L32-L33:仮想マシン ロード バランサを割り当てるためのラベルを追記
  • L35:仮想マシン クラスを指定
  • L36:OS イメージの名前を指定
  • L38:ストレージ クラスを指定
  • L39-L51:Cloud-init の設定を追記
  • L46:ログイン ユーザーの名前は「demo」
  • L48:Secret の名前は、L20 と揃える

 

仮想マシン ロード バランサの設定も、以前の投稿 を参考にしています。

  • L64:わかりやすい名前に変更
  • L66:NSX LB を使用するため「LoadBalancer」を指定
  • L67-L71:SSH 接続のための仮想 サーバを設定する
  • L72-L73:仮想マシン(L32-L33)と対応させる

 

これで、コンポーネント アイコンのエラー(赤色)がなくなります。

 

2. ブループリントのテスト

画面左下にある、「テスト」をクリックします。

 

imputs として定義した vsphere_ns_name には、デフォルト値として指定した vSphere 名前空間が入力されています。そのまま、「テスト」をクリックします。

 

「成功」になったことを確認して、「×」をクリックして閉じます。エラーになった場合は、YAML の内容を確認して、成功するまでテストを実行します。

 

3. ブループリントの展開

「テスト」ボタンによるテストは、実際にブループリントを展開した際に発生する問題には対応していません。そこで、ドラフト状態のブループリントを実際に展開しておきます。

画面右下にある、「展開」をクリックします。

 

展開名(ブループリントから展開するインスタンスの名前)を入力して、「次へ」をクリックします。

  • 展開名:bp-test-01
  • Template のバージョン:現在のドラフト ※デフォルトのまま

 

inputs(vsphere_ns_name)はそのまま、「展開」をクリックします。

 

インスタンスの展開が開始されます。

 

しばらく待ち、コンポーネント(Secret、仮想マシン、仮想マシン ロード バランサ)の展開が完了すると、「Create 成功」と表示されます。

 

4. 展開されたインスタンスの確認

ブループリントからインスタンスとして展開された、仮想マシンと仮想マシン ロード バランサの情報を確認し、ゲスト OS にログインしてみます。

 

4-1. 仮想マシンの確認

展開されたインスタンス「bp-test-01」の画面で、仮想マシン(Virtual_Machine_1)をクリックすると、画面右側に仮想マシン名(一般 → 名前)などが表示されます。

 

画面を下にスクロールすると、ゲスト OS に設定された IP アドレスなどが表示されます。

  • 今回の IP アドレス/サブネット マスク:172.30.0.5/27

 

仮想マシンの、「アクション」→「Connect to Web console」を開きます。

 

VCFA の Web コンソールが開くので、Cloud-init で指定したデモ ユーザーでログインします。そして、ゲスト OS の IP アドレスが、VCFA 組織ポータルで表示されていたものと一致することを確認しておきます。

  • ユーザー:demo
  • パスワード:VMware1!

IP アドレス確認は、Photon OS の一般ユーザーに ip コマンドの PATH が通っていないためフルパスで「/sbin/ip addr show」と実行しています。

 

4-2. 仮想マシン ロード バランサの確認

VCFA 組織ポータルに戻り、仮想マシン ロード バランサに払い出された IP アドレスを確認します。

「Virtual_Machine_Service_1」をクリックすると、画面右側にロード バランサによる IP アドレスが表示されます。

  • Status → Load Balancer → Ingress → IP:192.168.78.10

 

ロード バランサの IP アドレスにルーティングされているマシンから SSH 接続すると、展開された仮想マシンにログインできるはずです。

PS C:\> ssh demo@192.168.78.10
The authenticity of host '192.168.78.10 (192.168.78.10)' can't be established.
ED25519 key fingerprint is SHA256:USTjm7KCseTJ/n97flBKg/huTn41Ys+Hk6mYRZDc6eU.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.78.10' (ED25519) to the list of known hosts.
(demo@192.168.78.10) Password:
 18:56:12 up 11 min,  1 user,  load average: 0.07, 0.02, 0.00
tdnf update info not available yet!
demo@vm-1-41c7137b01 [ ~ ]$

 

仮想マシン自体の IP アドレスは、さきほど確認した「172.30.0.5/27」になっています。

demo@vm-1-41c7137b01 [ ~ ]$ /sbin/ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 04:50:56:00:5c:00 brd ff:ff:ff:ff:ff:ff
    altname eno1
    altname enp2s1
    altname ens33
    inet 172.30.0.5/27 brd 172.30.0.31 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::650:56ff:fe00:5c00/64 scope link
       valid_lft forever preferred_lft forever
demo@vm-1-41c7137b01 [ ~ ]$

 

4-3. インスタンス一覧画面での確認

インスタンスごとの画面は、画面左下の「閉じる」ボタンをクリックして閉じます。

 

「インスタンス」→「カタログ」タブには、ブループリントから展開されたインスタンスである「bp-test-01」が表示されています。

今回は、カタログではなく、ブループリント デザイン画面から展開したので、「カタログ アイテム」が空欄になっています。

 

「仮想マシン」タブには、インスタンスに含まれる仮想マシンが表示されています。

 

5. インスタンスの削除

ブループリントの展開を確認できたら、インスタンスを削除しておきます。

「ビルドと展開」タブ →「インスタンス」→「カタログ」タブを開き、削除対象インスタンスの先頭にあるボタンをクリックします。

  • 名前:bp-test-01

 

「Delete」をクリックします。

 

確認画面が表示されるので、「送信」をクリックします。

 

インスタンスの削除が開始されます。

 

少し待つと、インスタンスが削除されます。

 

つづく。