CentOS7に PowerCLI をインストールするには?

CJです。

vSphere 環境をより柔軟に管理するには、PowerCLIが必要かと思います。

この PowerCLI、実は Linux 上でも使えること知っていますか?

使えるんです。PowerCLI Coreという形で Linuxでも使用可能な状態で配布されましたが、以下のように PowerCLI 10.0 からは Coreという形はなくなり、PowerCLIに統合された形での配布となっています。

 PowerCLI Core has been officially released as part of PowerCLI 10.0. This Fling is no longer under development and future multi-platform support will be a part of PowerCLI 10.0.

今回は、CentOS7上で PowerCLI をインストールする方法について共有したいと思います。

STEP1. まず、PowerShell をインストール (on CentOS7)

以下のように、マイクロソフトのリポジトリを登録。

# vi /etc/yum.repos.d/microsoft.repo

[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl=https://packages.microsoft.com/rhel/7/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

1-1. 安定版をインスールする方法。(お勧め)

この後は、普通に yum で PowerShell をインストール。

# yum install powershell

1-2. 最新版をインスールする方法。

以下のサイトより、自分の環境に合うバージョンをダウンロードしてインストール。(ここの手順は省略)

https://github.com/PowerShell/PowerShell/releases

インストールが完了したら、powershell 起動。

# pwsh
PowerShell v6.1.0-preview.2
Copyright (c) Microsoft Corporation. All rights reserved.https://aka.ms/pscore6-docs
Type ‘help’ to get help.
PS /root>

STEP2. 続いて、PowerCLI をインストール (on CentOS7)

PS /root> Install-Module -Name VMware.PowerCLI
PS /root> Get-Module -ListAvailable
PS /root> Set-PowerCLIConfiguration -InvalidCertificateAction Ignore

STEP3. 最後に、vCenterへのアクセスを試す (on CentOS7)

PS /root> Connect-VIServer -server [vCenter名 or IPアドレス]

Linux のログサーバーから vCenterのイベントログなどを収集したいケースなどあると思いますが、ぜひ必要に応じて Linux 上でも PowerCLIが動くことを覚えてお試しいただければと思います。

[参考情報]

https://github.com/PowerShell/PowerShell/releases

Installing VMware PowerCLI 10.0.0 on Linux

https://virtualizationreview.com/articles/2017/06/01/how-to-install-and-use-powershell-and-powercli-on-linux.aspx

vCenter 配下の VM数を把握するには?

CJです。

vSphere基盤を運用する上で、以下の内容について確認したことありませんか?

・Cluster 配下のホスト数

・Cluster 配下のVM数

・PowerOn のVM数

・PowerOff のVM数

そうです、このような内容は計画メンテナンスを行う上で、一度確認したことがあるかと思います。vSphere Web Client を通して GUI でみたり、VMリストをコピーしてメモ帳で行数を把握して VMの数を数えるなどいくつか簡単な方法がありますが、今回は PowerCLIを使った適切・簡単な方法を共有したいと思います。

PowerCLIを起動した後に、以下のコマンドにて現在 vCenter 配下に VMがどれだけあるかみてみましょう。

Get-VM

自分の環境には、上記のように合計 6台のVMが動いている状態です。

では、早速 vCenter 配下で Clusterごとの Host、PowerOn状態の VM の数も以下のコマンドにて確認してみましょう。

Get-Cluster | Select Name, @{N=”Host Count”; E={($_ | Get-VMHost).Count}}, @{N=”VM Count”; E={($_ | Get-VM | Where-Object {$_.PowerState -eq “PoweredOn”}).Count}}

ごらんのように、Clusterごとの Host数および VM数が確認できることがわかります。

PowerOff のVM数を確認するには、以下のコマンドを使います。

Get-Cluster | Select Name, @{N=”Host Count”; E={($_ | Get-VMHost).Count}}, @{N=”VM Count”; E={($_ | Get-VM | Where-Object {$_.PowerState -eq “PoweredOff”}).Count}}

get-vm コマンドで確認したように、自分のテスト環境においては稼働中のVM 6台のみが vCenter 配下にある状態です。本当に PowerOff のVM数も拾えるかどうかを確認するため、VM1台を停止します。

Stop-VM CJVM

VMが停止したので、再度 PowerOn / Off のVM数を確認してみましょう。

きちんと、電源状態に合わせた VMの数が確認できました。

ぜひ、計画メンテナンス時などでご活用ください。

 

[参照情報]

Powercli Script to measure the count of Host and its Vm’s in a each clusters

https://communities.vmware.com/thread/514432

PowerCLI Reference / PowerState – Enum
https://code.vmware.com/docs/5060/cmdlet-reference#/doc/PowerState.html

 

PowerCLI : VMが稼動しているホスト情報を確認するには?

CJです。

vSphere 基盤を運用していると、以下のケースにおいて簡単な情報を素早く確認したい時があります。

・特定のホスト上で稼動している VM リストを確認

・VMが稼動中のホストを確認

もちろん、このような情報は GUI (vSphere Web Client) 上からも確認は可能ですが、VM数が数百台の規模とかになると、やはり確認に時間がかかったり、GUI操作に不便を感じるかと思います。その際にはぜひ以下の PowerCLI コマンドを試してみてください。

テスト環境

VMware PowerCLI 6.5.1 build 5377412 です。

Get-PowerCLIVersion

特定のホスト上で稼動している VM リストを確認

 

少し工夫して “host1.cjnotes.com”ホスト上で稼動しているVMで、電源ONかつVM名に “CJ” が入っているVMリストを確認してみます。

Get-VM | Where {$_.Name -eq “host1.cjnotes.com”} | get-vm | Where {$_.PowerState -eq “PoweredOn” -and $_.Name -like “CJ*”} | sort

すると、このようにVM情報が簡単に確認できます。

VMが稼動中のホストを確認

こちらも同じくVMが電源ONであり、VM名に “CJ” が含まれているVMリストのホスト情報を確認してみます。

 

Get-VM | Where {$_.PowerState -eq “PoweredOn” -and $_.Name -like “CJ*”} | sort | select Name,PowerState,VMHost

すると、このように各VMが稼動中のホスト情報も確認できます。

 

 

今回は割愛させていただいていますが、上記コマンドを CSVファイルなどへエクスポートすることも可能です。 メンテナンスなど、作業前後の状態を取得するケースでも有効なコマンドかと思いますので、ぜひお試しください。

最新の VMware PowerCLI をインストールには?

CJです。

vSphere環境を運用していると GUIもいいですが、やはりコマンドで操作したいケースもたくさんあります。その際に有効に使えるのが、VMware PowerCLI (以下、PowerCLI)ツールです。

ところで、最近 PowerCLIの入手方法が変わったこと、知ってますか?

今までだと、以下のようにVMwareサイト (myvmware)より、パッケージをダウンロードして、サーバーにインストールすることで該当のPowerCLIが使えました。

しかし、配布方法が、PowerCLI 6.5.1 バージョンより Microsoft PowerShell の配布モデル(PowerShell Gallery からインストールする方法)に合わせられているようです。

今回、PowerCLI 6.5.1 をインストールしたいサーバーは “Windows Server 2012 R2” を想定にしているとします。2012R2 では、デフォルトで WindowsPowerShell version 4 がインストールされていますが、このバージョンでは PowerCLI 6.5.1 をインストールするためのモジュールが入ってない状態です。そのため、まずは WindowsPowerShell バージョンを更新(4→5)し、その後に PowerCLI 6.5.1 をインストールする簡単な流れとなります。

では、早速スクリーンショットをベースで見ていきましょう。

1.まずは現在の Windwos PowerShell バージョン(ver.4) を確認しましょう。

$psversiontable.psversion コマンドにてバージョンが確認可能です。

2. Microsoft サイトより、Windows Management Framework 5.0をダウンロードします。

“Download” ボタンをクリックし、

“Win8.1AndW2K12R2-KB3134758-x64.msu”の Checkbox にCheckinしてファイルをダウンロードしてください。その後、ファイルを実行すると、

このように、”…インストールしますか?” とポップアップされます。

OSバージョンに互換性がないパッケージバージョンの場合は、次へ進めない旨のメッセージがポップアップされます。以降は、規約に同意して次へインストール進めていけばOKです。

3. インストール完了後、バージョンを確認すると ver.5 になっていることが確認できます。

4. これで VMware.PowerCLI がインストール可能な状態となりました。

以下のコマンドで PowerCLI モジュールがサーチできることを確認してください。

Find-Module -Name VMware.PowerCLI

5. VMware.PowerCLI モジュールも確認できましたし、次へローカルシステム上に使用可能な VMware モジュールがあるか確認します。

Get-Module VMware* -ListAvailable

では続いて、以下のコマンドにてモジュールをインストールしましょう。

Install-Module -Name VMware.PowerCLI

“…モジュールをインストールしますか?” と表示されたら “Y” でインストールへ進めてください。これで VMware PowerCLI 6.5.1 インストールが完了しました。

先ほどの 使用可能な VMware モジュールを確認してみると、いくつかのモジュールが表示されることが確認できるかと思います。

6. 最後に、vSAN 関連コマンドが表示されることも確認してみてください。

Get-Command -Name *vsan*

現時点の最新バージョンである PowerCLI 6.5.1 で追加された “Get-VsanView” などが表示されることも確認できます。

最新のPowerCLI (vSAN 関連機能など)を使いたいが、VMwareサイトでは見当たらず、迷っている方に少しでも役に立てればと思います。

 

[参考情報]

Welcome PowerCLI to the PowerShell Gallery – Install Process Updates

https://msdn.microsoft.com/en-us/powershell/scripting/setup/windows-powershell-system-requirements