ネステッド vSAN ラボを構築するための工夫 Part.4。(スクリプトでの簡素化)



  • ここまで、PowerCLI を利用したネステッド vSAN 環境セットアップの工夫を紹介してきました。

    今回は、ここまでのコマンドラインを利用したスクリプトによるデプロイ簡素化についてです。

     

    これまでの話については下記をどうぞ。

    図解 ネステッド vSAN ラボ。

    ネステッド vSAN ラボを構築するための工夫 Part.1。(物理 マシン ESXi ~ VCSA デプロイ)

    ネステッド vSAN ラボを構築するための工夫 Part.2。(物理マシン ESXi と ESXi VM の準備)

    ネステッド vSAN ラボを構築するための工夫 Part.3。(vSAN クラスタ構築)

     

    今回のサンプルスクリプトは、下記に配置しました。

    GitHub - gowatana/deploy-1box-vsan

     

    vSAN 環境の初期化。

    まず、ここまでで下記のような vSAN 環境をセットアップしてあります。

    vsan-1box-5-1.png

     

    はじめに、再度デプロイをためすために、一度環境を初期化します。

    前回に引き続き、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-1box-5-2.png

     

    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-1box-5-3.png

     

    下記のように、前回までにデプロイした vSAN と同様の環境がセットアップできます。

    vsan-1box-5-4.png

     

    今回は SSD 上でのネステッド環境ですが、

    ハイブリッド構成にみせかけてネステッド vSAN をセットアップすることもできます。

    PowerCLI> ./setup_vSAN-Cluster_Hybrid.ps1 ./config_vSAN-Cluster-02.ps1

    vsan-1box-5-5.png

     

    vSAN 環境の初期化。(スクリプト簡素化版)

    冒頭に実施した vSAN 環境の初期化もスクリプト化しておくと、

    下記のように再構築も簡素化できます。

    PowerCLI> ./destroy_vsan-vms.ps1 ./config_vSAN-Cluster-01.ps1

    PowerCLI> ./destroy_vsan-vms.ps1 ./config_vSAN-Cluster-02.ps1

     

    以上、ネステッド vSAN 環境構築の簡素化についてでした。



    https://communities.vmware.com/people/gowatana/blog/2018/11/01/vsan-1box-5

 

© Lightnetics 2018