ここまで、PowerCLI を利用したネステッド vSAN 環境セットアップの工夫を紹介してきました。
今回は、ここまでのコマンドラインを利用したスクリプトによるデプロイ簡素化についてです。
これまでの話については下記をどうぞ。
ネステッド vSAN ラボを構築するための工夫 Part.1。(物理 マシン ESXi ~ VCSA デプロイ)
ネステッド vSAN ラボを構築するための工夫 Part.2。(物理マシン ESXi と ESXi VM の準備)
ネステッド vSAN ラボを構築するための工夫 Part.3。(vSAN クラスタ構築)
今回のサンプルスクリプトは、下記に配置しました。
GitHub - gowatana/deploy-1box-vsan
vSAN 環境の初期化。
まず、ここまでで下記のような vSAN 環境をセットアップしてあります。
はじめに、再度デプロイをためすために、一度環境を初期化します。
前回に引き続き、PowerCLI は Connect-VIServer で vCenter に接続したままの状態です。
今回の vSAN クラスタ名と、ESXi VM の名前は下記です。
$cluster_name = "vSAN-Cluster"
$vm_name = "vm-esxi-??"
vSAN クラスタにある ESXi をすべて削除して、クラスタも削除します。
今回はラボを初期化してしまうので、ESXi はメンテナンスモードなどにはせず
切断 → インベントリから削除 としています。
$cluster = Get-Cluster $cluster_name
$cluster | Get-VMHost | Set-VMHost -State Disconnected -Confirm:$false
$cluster | Get-VMHost | Remove-VMHost -Confirm:$false
$cluster | Remove-Cluster -Confirm:$false
ESXi VM も削除します。
Get-VM $vm_name | Stop-VM -Confirm:$false
Get-VM $vm_name | Remove-VM -DeletePermanently -Confirm:$false
これで、vCenter のインベントリから、ネステッド vSAN 環境が削除されます。
vSAN 環境のデプロイ。(スクリプト簡素化版)
それでは、スクリプトでデプロイしてみます。
設定情報については、できるだけスクリプトから分離したいので
下記のようなファイルを作成しました。
config_vSAN-Cluster-01.ps1
# Lab Global Setting.
$domain = "go.lab.jp"
$hv_ip_prefix_vmk0 = "192.168.1."
$hv_subnetmask = "255.255.255.0" # /24
$hv_gw = "192.168.1.1"
$dns_1 = "192.168.1.101"
$dns_2 = "192.168.1.102"
$hv_user = "root"
$hv_pass = "VMware1!"
# Base ESXi Setting
$template_vm_name = "vm-esxi-template-01"
$hv_name = "192.168.1.20"
$base_hv_name = "192.168.1.20"
# Cluster setting
$vm_num_start = 1
$vm_num_end = 3
$cluster_name = "vSAN-Cluster-01"
# vSAN Disk setting
$vsan_cache_dev = "mpx.vmhba0:C0:T1:L0"
$vsan_capacity_dev = "mpx.vmhba0:C0:T2:L0", "mpx.vmhba0:C0:T3:L0"
# VM / ESXi List
$nest_hv_hostname_prefix = "esxi-"
$vm_name_prefix = "vm-esxi-"
$vm_name_list = $vm_num_start..$vm_num_end | % {
$i = $_
$vm_name_prefix + $i.toString("00")
}
$nest_hv_hostname_list = $vm_num_start..$vm_num_end | % {
$i = $_
$nest_hv_hostname_prefix + $i.toString("00")
}
$hv_ip_vmk0_list = $vm_num_start..$vm_num_end | % {
$i = $_
$hv_ip_prefix_vmk0 + (30 + $i).ToString()
}
$vc_hv_name_list = $vm_num_start..$vm_num_end | % {
$i = $_
$hv_ip_prefix_vmk0 + (30 + $i).ToString()
}
下記のようにコマンドライン1行でデプロイできます。
(ただし、今回の対象は ESXi VM 作成以降の部分です)
PowerCLI> ./setup_vSAN-Cluster.ps1 ./config_vSAN-Cluster-01.ps1
スクリプトからの出力表示は粗いままですが・・・
下記のように、前回までにデプロイした vSAN と同様の環境がセットアップできます。
今回は SSD 上でのネステッド環境ですが、
ハイブリッド構成にみせかけてネステッド vSAN をセットアップすることもできます。
PowerCLI> ./setup_vSAN-Cluster_Hybrid.ps1 ./config_vSAN-Cluster-02.ps1
vSAN 環境の初期化。(スクリプト簡素化版)
冒頭に実施した vSAN 環境の初期化もスクリプト化しておくと、
下記のように再構築も簡素化できます。
PowerCLI> ./destroy_vsan-vms.ps1 ./config_vSAN-Cluster-01.ps1
PowerCLI> ./destroy_vsan-vms.ps1 ./config_vSAN-Cluster-02.ps1
以上、ネステッド vSAN 環境構築の簡素化についてでした。