PowerCLI でコマンドを実行するときには
あらかじめ Connect-VIServer コマンドレットで vCenter(もしくは ESXi)に接続します。
PowerCLI> Connect-VIServer vcenter55-2.vmad.local
※「-User」と「-Password」でユーザ/パスワードを指定することもできますが省略しています。
この Connect-VIServer を複数回実行するか、
もしくは vCenter のアドレスを「,」で区切って複数指定することで、
複数のサーバ(vCenter / ESXi) に同時接続してコマンド実行することが可能です。
※どちらの方法も、ユーザ/パスワードはサーバごとに入力することになります。
Connect-VIServer を複数回実行するコマンドライン例
※vcenter55-2.vmad.local と vcenter51u1-2.vmad.local が接続先 vCenter のアドレスです。
PowerCLI> Connect-VIServer vcenter55-2.vmad.local
PowerCLI> Connect-VIServer vcenter51u1-2.vmad.local
接続先サーバを複数指定するコマンドライン例
※「-Server」は省略可のですが、わかりやすくするために付けてみました。
PowerCLI> Connect-VIServer -Server vcenter55-2.vmad.local,vcenter51u1-2.vmad.local
ちょっと強引なコマンドラインですが、
下記のような感じで、複数の vCenter に接続できたことが確認できます。
PowerCLI> Get-Datacenter | select @{N="VIServer";E={$_.Uid -replace ".*@|:443.*",""}} -Unique
VIServer
--------
vcenter55-2.vmad.local
vcenter51u1-2.vmad.local
PowerCLI の設定確認方法
複数サーバへの接続を許可するかどうかは、
PowerCLIの Connect-VIServer で初めて複数サーバに接続した時に質問されます。
下記の質問に 「Y」 を入力すると、複数サーバ接続ができるようになります。
PowerCLI C:\> Connect-VIServer vcenter55-2.vmad.local
Working with multiple default servers?
Select [Y] if you want to work with more than one default servers. In this
case, every time when you connect to a different server using Connect-VIServer,
the new server connection is stored in an array variable together with the
previously connected servers. When you run a cmdlet and the target servers
cannot be determined from the specified parameters, the cmdlet runs against all
servers stored in the array variable.
Select [N] if you want to work with a single default server. In this case,
when you run a cmdlet and the target servers cannot be determined from the
specified parameters, the cmdlet runs against the last connected server.
WARNING: WORKING WITH MULTIPLE DEFAULT SERVERS WILL BE ENABLED BY DEFAULT
IN A FUTURE RELEASE. You can explicitly set your own preference at any time by
using the DefaultServerMode parameter of Set-PowerCLIConfiguration.
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Y
下記のように PowerCLI の設定を確認することで
複数サーバへ接続可能なモードかどうかを確認できます。
DefaultVIServerMode が「Multiple」となっていれば、複数サーバへ接続可能な状態です。
ちょっと見にくいですが、下記のように表示されます。
PowerCLI> Get-PowerCLIConfiguration
Scope ProxyPolicy DefaultVIServerMode InvalidCertificateAction DisplayDeprecationWarnings WebOperationTimeout
Seconds
----- ----------- ------------------- ------------------------ -------------------------- -------------------
Session UseSystemProxy Multiple Unset True 300
User Multiple
AllUsers
ちなみに、
この DefaultVIServerMode が Single になっていると、
複数台のvCenterに接続しようとしても、最後に接続したサーバのセッションだけが
有効になってしまいます。
DefaultVIServerMode = Multiple の設定方法
何らかの事情で
DefaultVIServerMode が Single になっている場合は、
下記のコマンドで Multiple(複数サーバへ接続可能なモード)に変更できます。
PowerCLI> Get-PowerCLIConfiguration
Scope ProxyPolicy DefaultVIServerMode InvalidCertificateAction DisplayDeprecationWarnings WebOperationTimeout
Seconds
----- ----------- ------------------- ------------------------ -------------------------- -------------------
Session UseSystemProxy Single Unset True 300
User Single
AllUsers
PowerCLI> Set-PowerCLIConfiguration -DefaultVIServerMode Multiple -Scope User -Confirm:$false
Scope ProxyPolicy DefaultVIServerMode InvalidCertificateAction DisplayDeprecationWarnings WebOperationTimeout
Seconds
----- ----------- ------------------- ------------------------ -------------------------- -------------------
Session UseSystemProxy Multiple Unset True 300
User Multiple
AllUsers
vCenter だけでなく、vCenter 管理されていない 無償版 ESXi へも複数接続できるので
PowerCLI でまとめて情報取得したい時などに同時接続すると便利だと思います。
以上、PowerCLI から複数台の vCenter に接続してみる話でした。