Quantcast
Channel: VMware Communities : Blog List - All Communities
Viewing all articles
Browse latest Browse all 3135

HCIBench の OVA を PowerCLI でデプロイする。

$
0
0

HCIBench は vSAN などのテスト自動化をするためには便利です。

 

HCIBench

https://labs.vmware.com/flings/hcibench

 

しかし、複数のテストを並行させたり、複数の環境設定を保持したりといった使い方には

あまり向かないように感じます。実際にベンチマーク テストを実行する場合には、

テストの目的や利用者ごとに HCIBench 仮想アプライアンス(OVA)を

デプロイするケースがあると思います。

 

そこで、少しでもデプロイ作業を簡略化すべく、

PowerCLI で HCIBench の OVA をデプロイしてみました。

ちょうど HCIBench v1.6.6 が公開されたのでデプロイしてみます。

 

OVA ファイルは、HCIBench_1.6.6.ova を利用します。

 

今回使用するコマンドの PowerCLI モジュールはバージョン 10.0 のものです。

PowerCLI> Get-Command Get-OvfConfiguration,Import-VApp | select Name,Module,Version

 

Name                 Module                    Version

----                 ------                    -------

Get-OvfConfiguration VMware.VimAutomation.Core 10.0.0.7893909

Import-VApp          VMware.VimAutomation.Core 10.0.0.7893909

 

 

コマンドライン実行での PowerCLI デプロイ。

Get-OvfConfiguration の実行のためには、まず vCenter に接続します。
「vc-sv01.go-lab.jp」は今回のデプロイ先 vCenter です。

PowerCLI> Connect-VIServer vc-sv01.go-lab.jp -Force

 

OVF を設定するための準備をします。

PowerCLI> $ovf_config = Get-OvfConfiguration -Ovf D:\VMware\HCIBench_1.6.6.ova

PowerCLI> $ovf_config

 

====================================

OvfConfiguration: HCIBench_1.6.6.ova

 

   Properties:

   -----------

   Common

   NetworkMapping

 

 

下記のようなパラメータが必要だとわかります。

PowerCLI> $ovf_config.Common

 

Public_Network_Gateway :

Public_Network_IP      :

DNS                    :

Public_Network_Netmask :

Public_Network_Type    :

System_Password        :

 

PowerCLI> $ovf_config.NetworkMapping | fl

 

Public_Network  :

Private_Network :

 

 

今回のデプロイで指定するオブジェクトが存在しているか、事前に確認しておきます。

対象のオブジェクトがあれば Ture、なければ False です。

必要に応じて、ESXi はメンテナンスモードが解除されているか、

他にも必要なオブジェクト(クラスタ、リソースプール、フォルダなど)が作成されているか

といった確認を追加するとさらに確実になります。

PowerCLI> Get-VMHost hv-d02.go-lab.jp -ErrorAction:SilentlyContinue | Out-Null; echo $?

True

PowerCLI> Get-VMHost hv-d02.go-lab.jp | Get-VirtualPortGroup -Name "VM Network" -ErrorAction:SilentlyContinue | Out-Null; echo $?

True

PowerCLI> Get-VMHost hv-d02.go-lab.jp | Get-VirtualPortGroup -Name "pg-vlan-1012" -ErrorAction:SilentlyContinue | Out-Null; echo $?

True

PowerCLI> Get-VMHost hv-d02.go-lab.jp | Get-Datastore ds_hv-d02_01 -ErrorAction:SilentlyContinue | Out-Null; echo $?

True

 

ここから、vSphere Web Client からのデプロイでは下記のように指定していたパラメータを

PowerCLI で指定していきます。

hci-bench-powercli-deploy-00.png

 

OVF のパラメータを設定します。

PowerCLI> $ovf_config.NetworkMapping.Public_Network.Value = "VM Network"

PowerCLI> $ovf_config.NetworkMapping.Private_Network.Value = "pg-vlan-1012"

PowerCLI> $ovf_config.Common.DNS.Value = "192.168.1.254"

PowerCLI> $ovf_config.Common.Public_Network_Gateway.Value = "192.168.1.1"

PowerCLI> $ovf_config.Common.Public_Network_IP.Value = "192.168.1.119"

PowerCLI> $ovf_config.Common.Public_Network_Netmask.Value = "255.255.255.0"

PowerCLI> $ovf_config.Common.Public_Network_Type.Value = "Static"

PowerCLI> $ovf_config.Common.System_Password.Value = "VMware1!"

 

パラメータがひととおり設定されたことを確認できます。

PowerCLI> $ovf_config.Common

 

Public_Network_Gateway : 192.168.1.1

Public_Network_IP      : 192.168.1.119

DNS                    : 192.168.1.254

Public_Network_Netmask : 255.255.255.0

Public_Network_Type    : Static

System_Password        : VMware1!

 

PowerCLI> $ovf_config.NetworkMapping | fl

 

Public_Network  : VM Network

Private_Network : pg-vlan-1012

 

 

OVA をデプロイします。

hci-bench02 という名前で、ESXi「hv-d02.go-lab.jp」のデータストア「ds_hv-d02_01」にデプロイします。

PowerCLI> Import-VApp -Name hci-bench02 -OvfConfiguration $ovf_config -Source $ovf_config.Source -VMHost hv-d02.go-lab.jp -Datastore ds_hv-d02_01 -StorageFormat Thin

 

デプロイが完了したら HCIBench を起動します。

PowerCLI> Get-VM hci-bench02 | Start-VM

 

Name                 PowerState Num CPUs MemoryGB

----                 ---------- -------- --------

hci-bench02          PoweredOn  8        8.000

 

 

このあと、Web ブラウザでアクセスして・・・

hci-bench-powercli-deploy-01.png

 

HCIBench の Web UI での設定にすすみます。

hci-bench-powercli-deploy-02.png

 

Web UI からの設定は、vExpert の kawaman さんの投稿がとても参考になります。

https://community.emc.com/people/kawaman/blog/2017/12/17/hcibench-vsan-performancetest

 

デプロイ スクリプトのサンプル。

ここまでのコマンドラインをスクリプトにまとめておくと、

同環境や、類似した環境での 2度目以降のデプロイを簡略化できるようになります。

 

今回は、下記のようなスクリプトを作成してみました。

※自宅ラボむけに目的を絞って簡易的に作成しています。

deploy_hci-bench-ova.ps1 · GitHub

# HCIBench OVA Deploy Script.

#

# Public_Network_Type は "Static" で固定。

# vCenter に接続するが、デプロイ先は ESXi を指定する。

# Usage:

#   PowerCLI> .\deploy_hci-bench-ova.ps1

 

# ------------------------------

# Setting

$ova_file_path           = "D:\VMware\HCIBench_1.6.6.ova"

$vm_name                 = "hci-bench02"

$target_vc               = "vc-sv01.go-lab.jp"

$target_esxi             = "hv-d02.go-lab.jp"

$target_pg_public        = "VM Network"

$target_pg_private       = "pg-vlan-1012"

$target_datastore        = "ds_hv-d02_01"

 

$public_network_ip       = "192.168.1.119"

$public_network_netmask  = "255.255.255.0"

$public_network_gateway  = "192.168.1.1"

$dns                     = "192.168.1.254"

 

$ova_root_password       = "VMware1!"

 

# ------------------------------

# connect VC & get OVF config.

Connect-VIServer $target_vc -Force

$ovf_config = Get-OvfConfiguration -Ovf $ova_file_path

 

# ------------------------------

# Pre Check

$pre_check = "ok"

$hv = Get-VMHost $target_esxi -ErrorAction:SilentlyContinue

$hv | Out-Null; echo $?

if($? -ne $true){"デプロイ先 ESXi を確認して下さい。"; $pre_check = "NG"}

$hv | Get-VirtualPortGroup -Name $target_pg_public -ErrorAction:SilentlyContinue | Out-Null; echo $?

if($? -ne $true){"デプロイ先 Public PG を確認して下さい。"; $pre_check = "NG"}

$hv | Get-VirtualPortGroup -Name $target_pg_private -ErrorAction:SilentlyContinue | Out-Null; echo $?

if($? -ne $true){"デプロイ先 Private PG を確認して下さい。"; $pre_check = "NG"}

$hv | Get-Datastore $target_datastore -ErrorAction:SilentlyContinue | Out-Null; echo $?

if($? -ne $true){"デプロイ先 Datastore を確認して下さい。"; $pre_check = "NG"}

 

if($pre_check -ne "ok"){"デプロイを実行せず終了します。"; exit 1}

 

# ------------------------------

# Configure & Deploy

$ovf_config.Common.Public_Network_Type.Value = "Static"

$ovf_config.NetworkMapping.Public_Network.Value = $target_pg_public

$ovf_config.NetworkMapping.Private_Network.Value = $target_pg_private

$ovf_config.Common.Public_Network_IP.Value = $public_network_ip

$ovf_config.Common.Public_Network_Netmask.Value = $public_network_netmask

$ovf_config.Common.Public_Network_Gateway.Value = $public_network_gateway

$ovf_config.Common.DNS.Value = $dns

$ovf_config.Common.System_Password.Value = $ova_root_password

 

Import-VApp -OvfConfiguration $ovf_config -Source $ovf_config.Source `

    -Name $vm_name `

    -VMHost $target_esxi `

    -Datastore $target_datastore -StorageFormat Thin |

    select Name,PowerState

 

Get-VM $vm_name | Start-VM | select Name,PowerState

 

Disconnect-VIServer $target_vc -Confirm:$false

 

そして、下記のように実行すると、以前のコマンドラインと同じデプロイが実施できます。

PowerCLI> .\deploy_hci-bench-ova.ps1

 

OVA のデプロイ作業の記録をテキスト形式で残せるようになるので、

作業内容の確認もしやすくなるかもしれません。

 

以上、HCIBench を PowerCLI でデプロイしてみる話でした。


Viewing all articles
Browse latest Browse all 3135

Trending Articles