NTNX>日記

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

ESXi で Nested Nutanix CE VM を作成してみる。(PowerCLI 版)

Nested Nutanix CE むけの仮想マシンを作成する、PowerCLI スクリプトを作成してみました。

下記の投稿で作成した仮想マシンを ESXi ホスト上に作成でき、パワーオンすると Nutanix CE のインストール(これは手作業で)を開始できます。

今回の内容です。

作成する仮想マシンのイメージ

今回作成する、Nutanix CE をインストールする仮想マシンマシンは、下記のイメージ図の赤枠部分にあたります。Nutanix CE のインストールについては、仮想マシン作成したあとに、手動で作業することになります。

今回の環境

PowerCLI は、13.1 を使用します。

PS C:\> Get-Module -Name VMware.PowerCLI -ListAvailable | select Version

Version
-------
13.1.0.21624340

vCenter Server 7.0 U3、ESXi は 7.0 U3 / 7.0 U1 を利用しています。

PS C:\> $global:DefaultVIServer | select Name,Version

Name                  Version
----                  -------
infra-vc-01.go-lab.jp 7.0.3


PS C:\> Get-VMHost | Group Version | select Count, Name

Count Name
----- ----
    6 7.0.3
    1 7.0.1

PowerCLI スクリプトの内容

下記のスクリプトを作成しました。

  • 以前のブログ で紹介した仮想マシン設定をします。
  • 何度も Nutanix CE 仮想マシンを作成するような vShphere 環境には vCenter Server があると思うので、PowerCLI での ESXi 直接続は考慮していません。
  • 設定値を省略すると、さりげなくデフォルト値(14行目 ~ 24行目 あたり)が設定されます。
  • 複数ノード Nutanix クラスタを構成できるように、disk.EnableUUID を有効化します。

gist.github.com

設定ファイルの例

仮想マシンの作成先や設定値は、別ファイルとして作成しておきます。

例1: vm_config.ps1

  • 仮想マシンの設定と、作成先の vSphere 環境について変数を定義しておきます。
  • ポートグループ($pg_name)には、無差別モードと偽装転送を承諾してあるものを指定します。
  • データストアに Nutanix CE の ISO イメージ ファイルをアップロードしておき、$iso_path_name にパスを指定します。
  • 環境差異を減らすため、仮想マシンのハードウェア バージョンはあえて少し古めの vmx-14(ESXi 6.7)にしてあります。

gist.github.com

例2: vm_config_rp-04-lab-nested.ps1

  • DRS 有効の vSphere クラスタに作成する場合は、ESXi ホスト($esxi_name)の代わりにリソース プール名($rp_name)を指定できます。
  • このあとに手作業で実施する Nutanix CE インストール中に仮想マシンが vMotion されないように、DRS の自動化レベルを PartiallyAutomated(一部自動化)にします。

gist.github.com

スクリプト実行前の環境準備

仮想マシン作成先の vCenter Server 側で、事前にインベントリ オブジェクトを作成しておく必要があります。

  • データセンタ
  • 仮想マシン フォルダ
  • クラスタ
  • ESXi ホストの登録
  • リソース プール(任意)
  • ポートグループ(無差別モード、偽装転送 の承諾が必要)
  • データストア
  • Nutanix CE インストーラの ISO イメージ ファイルのアップロード

スクリプトの実行例

PowerCLI で、vCenter Server に接続しておきます。

PS C:\> Connect-VIServer infra-vc-01.go-lab.jp -Force

設定ファイルを指定してスクリプトを実行すると、仮想マシンが作成されます。

PS C:\> .\create_nutanix_ce_vm.ps1 .\vm_config.ps1
Load Config: .\vm_config_infra-esxi-07.ps1
Check Datacenter: infra-dc-01
Check VM Folder: lab_nx_1-node-ahv
Check VM existence: lab-ntnx-ce-vm-02
Check Cluster: infra-cluster-02
Check Datastore: ds-vmfs-infra-esxi-07-B
Check Portgroup: Nested-Trunk-Network
Create VM: lab-ntnx-ce-vm-02 to ESXi: infra-esxi-07.go-lab.jp
Set Portgroup: Nested-Trunk-Network
Set disk.EnableUUID
Set NestedHVEnabled
Add VMDK
Set ISO Image file: [ds-vmfs-infra-esxi-07-B] /iso/phoenix-ce2.0-fraser-6.5.2-stable-fnd-5.3.4-x86_64.iso

$iso_path_name が指定されていない場合は、CD ドライブへの ISO イメージ ファイルの接続はスキップされます。

PS C:\> .\create_nutanix_ce_vm.ps1 .\vm_config_rp-04-lab-nested.ps1
Load Config: .\vm_config_rp-04-lab-nested.ps1
Check Datacenter: infra-dc-01
Check VM Folder: lab_nx_1-node-ahv
Check VM existence: lab-ntnx-ce-vm-01
Check Cluster: infra-cluster-01
Check Resource Pool: rp-04-lab-nested
Check Datastore: vsanDatastore
Check Portgroup: dvpg-0020-nx-p
Create VM: lab-ntnx-ce-vm-01 to Resource Pool: rp-04-lab-nested
Set Portgroup: dvpg-0020-nx-p
Set DRS Automation Level
Set disk.EnableUUID
Set NestedHVEnabled
Add VMDK

スクリプトを実行すると仮想マシンが作成されます。

ISO イメージ ファイルを指定しておくと仮想 CD ドライブに接続されるので、パワーオンすると Nutanix CE のインストールを進められます。(ここからは手作業)

$vm_drs_level = "PartiallyAutomated" を指定した場合は、作成された仮想マシンの DRS 自動化レベルが「一部自動化」に設定され、インストール処理中の自動 vMotion を防止できます。

以上。

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