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 を有効化します。
設定ファイルの例
仮想マシンの作成先や設定値は、別ファイルとして作成しておきます。
例1: vm_config.ps1
- 仮想マシンの設定と、作成先の vSphere 環境について変数を定義しておきます。
- ポートグループ($pg_name)には、無差別モードと偽装転送を承諾してあるものを指定します。
- データストアに Nutanix CE の ISO イメージ ファイルをアップロードしておき、$iso_path_name にパスを指定します。
- 環境差異を減らすため、仮想マシンのハードウェア バージョンはあえて少し古めの vmx-14(ESXi 6.7)にしてあります。
例2: vm_config_rp-04-lab-nested.ps1
- DRS 有効の vSphere クラスタに作成する場合は、ESXi ホスト($esxi_name)の代わりにリソース プール名($rp_name)を指定できます。
- このあとに手作業で実施する Nutanix CE インストール中に仮想マシンが vMotion されないように、DRS の自動化レベルを PartiallyAutomated(一部自動化)にします。
スクリプト実行前の環境準備
仮想マシン作成先の 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 を防止できます。
以上。