vm.gowatana.jp

NEOにほんごVMware(仮)

vSAN の情報を PowerCLI で取得してみる。(テキストで簡易レポート出力編)

個人的な vSAN Advent Calendar 6日目です。

自宅ラボの vSAN 7.0 U 1 Advent Calendar 2020 - Adventar

今回は、vSAN クラスタの概要を取得するスクリプトのサンプルを作成してみました。

セットアップ サービスのような作業でインフラを多数構築したり、デモ環境を準備したりといった場合には、情報取得においてコマンドラインを1行ずつ実行するよりも、スクリプトにしてまとめて実行したほうが便利なケースがあると思います。

サンプル スクリプト: vSAN レポート出力

今回のスクリプトです。おもに、前回の投稿(下記)のコマンド ラインを並べて出力整形したものです。

vSAN の情報を PowerCLI で取得してみる。 - vm.gowatana.jp

gist.github.com

補足として・・・

  • PowerShell / PowerCLI のウインドウ幅は 140 にしておくと見やすくなります。
  • Connect-VIServer で vCenter に接続してから実行します。
  • vSAN Disk のデバイス名(CanonicalName)は長すぎて切れてますが、ウインドウ幅を広げて実行すれば全体が表示されます。

スクリプトの実行例

前回の投稿と同様、 Docker コンテナの PowerCLI(vmware/powerclicore)を利用します。

まず Docker ホスト(Photon OS 4.0)でスクリプト ファイルを作成しておきます。今回は Github からダウンロードしています。

root@lab-photon-01 [ ~ ]# cat /etc/photon-release
VMware Photon OS 4.0
PHOTON_BUILD_NUMBER=d98e681
root@lab-photon-01 [ ~ ]# mkdir work
root@lab-photon-01 [ ~ ]# cd /root/work/
root@lab-photon-01 [ ~/work ]# curl -LO https://gist.githubusercontent.com/gowatana/c24ba1d4e80af83c9bf6006749d2e5dd/raw/get_vsan_summary.ps1
root@lab-photon-01 [ ~/work ]# ls
get_vsan_summary.ps1

今回は情報取得した結果をファイルとして保存したいので、Docker ホストのディレクトリ(今回は /root/work)を、コンテナの /work にマウントして利用します。

コンテナ内の /work ディレクトリにも、さきほどホスト OS 側で保存した get_vsan_summary.ps1 が存在します。

root@lab-photon-01 [ ~/work ]# docker run -it -v /root/work:/work -w /work --rm vmware/powerclicore
PowerShell 7.0.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

PS /work> ls
get_vsan_summary.ps1

スクリプトを実行します。今回は Out-File でファイル(vsan-report.txt)に保存しています。

PS /work> Connect-VIServer lab-vc-01.go-lab.jp -User administrator@vsphere.local -Password VMware1! -Force
PS /work> ./get_vsan_summary.ps1 | Out-File -Encoding utf8 -PSPath vsan-report.txt
PS /work> ls
get_vsan_summary.ps1  vsan-report.txt 

出力された vSAN 情報 簡易レポートの様子

コンテナから exit した(コンテナが削除された)後でも、Docker ホスト側の /root/work ディレクトにもファイルが残ります。

f:id:gowatana:20201206224923p:plain

今回のスクリプトで取得したレポート ファイルの例です。

gist.github.com

PowerCLI スクリプトは、当然ながら Windows PowerShell の PowerCLI でも実行できます。

f:id:gowatana:20201206225101p:plain

テキスト ファイルとして情報取得しておくと、スクリーンショットよりもデータの利用がしやすいかなとも思います。

今回のサンプルは、vSAN の情報を網羅的に取得しているわけではなかったり、スクリプトの書き方が独特だったりしますが、何かのヒントになればと思います。

以上、PowerCLI による vSAN 情報取得の活用例でした。