2018年6月25日月曜日

PowerShell GalleryからPowerCLIをインストールする手順

以前のPowerCLIはVMware社のサイトからインストーラをダウンロードすることができたが、最近のバージョンからはPowerShell Galleryからインストールする方法に変わった。

PowerCLI - PowerShell Gallery
https://www.powershellgallery.com/packages/VMware.PowerCLI/

手順が以前に比べて少し難しくなったので、インストール及びアンインストールの手順と、実際にPowerCLIでESXiに接続するまでの手順を説明する。

環境

今回実施した環境とPowerCLIのバージョンは以下の通り。
  • Windows Server 2016
  • PowerCLI 10.1.1.8827524

インストール方法

インターネットに接続できる端末より、Windows PowerShellを「管理者として実行する」で開く。今後のPowerShellでのコマンド実行は、原則すべて管理者権限で行う。


レポジトリを確認し、PowerShell Galleryとなっていることを確認する。

PS C:\> Get-PSRepository
------------------------------
Name                      InstallationPolicy   SourceLocation
----                      ------------------   --------------
PSGallery                 Untrusted            https://www.powershellgallery.com/api/v2/
------------------------------

以下コマンドにて、PowerShell Galleryよりモジュールのダウンロードとインストールを行う。

PS C:\> Install-Module VMware.PowerCLI
------------------------------
信頼されていないリポジトリ
信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Set-PSRepository
コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery' からモジュールをインストールしますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): y   ←★"y"を入力
------------------------------


インストール確認は以下コマンドで行うことができる。

PS C:\> Get-Module -ListAvailable -Name VMware* | ft -Auto
------------------------------
    ディレクトリ: C:\Program Files\WindowsPowerShell\Modules

ModuleType Version        Name                                ExportedCommands
---------- -------        ----                                ----------------
Script     6.7.0.8250345  VMware.DeployAutomation             {Add-DeployRule, Add-ProxyServer, Add-ScriptBundle, Co...
Script     6.7.0.8250345  VMware.ImageBuilder                 {Add-EsxSoftwareDepot, Add-EsxSoftwarePackage, Compare...
Manifest   10.1.1.8827524 VMware.PowerCLI
Script     6.7.0.8343295  VMware.Vim
Script     10.1.0.8377811 VMware.VimAutomation.Cis.Core       {Connect-CisServer, Disconnect-CisServer, Get-CisService}
Script     10.0.0.7893901 VMware.VimAutomation.Cloud          {Add-CIDatastore, Connect-CIServer, Disconnect-CIServe...
Script     10.1.0.8342134 VMware.VimAutomation.Common
Script     10.1.0.8344055 VMware.VimAutomation.Core           {Add-PassthroughDevice, Add-VirtualSwitchPhysicalNetwo...
Script     6.5.4.7567193  VMware.VimAutomation.HA             Get-DrmInfo
Script     7.5.0.8827468  VMware.VimAutomation.HorizonView    {Connect-HVServer, Disconnect-HVServer}
Script     10.0.0.7893904 VMware.VimAutomation.License        Get-LicenseDataManager
Script     10.1.0.8346947 VMware.VimAutomation.Nsxt           {Connect-NsxtServer, Disconnect-NsxtServer, Get-NsxtSe...
Script     10.0.0.7893924 VMware.VimAutomation.PCloud         {Connect-PIServer, Disconnect-PIServer, Get-PIComputeI...
Script     10.1.0.8342078 VMware.VimAutomation.Sdk
Script     10.0.0.7893900 VMware.VimAutomation.Srm            {Connect-SrmServer, Disconnect-SrmServer}
Script     10.1.0.8313015 VMware.VimAutomation.Storage        {Add-KeyManagementServer, Copy-VDisk, Export-SpbmStora...
Script     1.2.0.0        VMware.VimAutomation.StorageUtility Update-VmfsDatastore
Script     10.1.0.8344219 VMware.VimAutomation.Vds            {Add-VDSwitchPhysicalNetworkAdapter, Add-VDSwitchVMHos...
Script     10.0.0.7893902 VMware.VimAutomation.Vmc            {Connect-Vmc, Disconnect-Vmc, Get-VmcService, Connect-...
Script     10.0.0.7893921 VMware.VimAutomation.vROps          {Connect-OMServer, Disconnect-OMServer, Get-OMAlert, G...
Script     6.5.1.7862888  VMware.VumAutomation                {Add-EntityBaseline, Copy-Patch, Get-Baseline, Get-Com...
------------------------------

なお、インストールされたモジュールは、以下フォルダに配置される。

C:\Program Files\WindowsPowerShell\Modules

アンインストール方法

依存関係があるので、順番に注意してアンインストールする必要がある。以下の順番でコマンドを叩いていけば、正常にアンインストールできるはずだ。

PS C:\> Uninstall-Module -Name VMware.PowerCLI
PS C:\> Get-Module -ListAvailable -Name VMware* | Uninstall-Module ←★依存関係のエラーは無視する
PS C:\> Uninstall-Module -Name VMware.VimAutomation.Cloud
PS C:\> Uninstall-Module -Name VMware.VimAutomation.Vds
PS C:\> Uninstall-Module -Name VMware.VimAutomation.Core
PS C:\> Uninstall-Module -Name VMware.VimAutomation.Cis.Core
PS C:\> Uninstall-Module -Name VMware.Vim
PS C:\> Uninstall-Module -Name VMware.VimAutomation.Common
PS C:\> Uninstall-Module -Name VMware.VimAutomation.Sdk

オフライン環境でインストール・アンインストールする方法

前述の方法は、インターネット接続が必須の手順となっているが、実環境ではインターネットに接続できないケースも多い。そこで、オフライン環境でのインストール手順も記載しておこう。

まず、インターネットに接続できる環境のPC等を用いて、以下コマンドにてモジュール一式をダウンロードする。
※あらかじめダウンロードフォルダ(以下コマンド例では「C:\VMware.PowerCLI」)を作成しておくこと

PS C:\> Save-Module -Name VMware.PowerCLI -Path C:\VMware.PowerCLI

ダウンロードファイルは以下のように21個のフォルダからなる。


上記21個のフォルダをUSBメモリなどでオフライン環境のマシンの「C:\Program Files\WindowsPowerShell\Modules」にコピーする。これだけでインストールが完了となる。

ただし、この方法でインストールしたモジュールは、Uninstall-Moduleコマンドレットを実行しても、なぜかアンインストールすることができない。この場合は、コピーした21個のフォルダを手動で削除することでアンインストールできる。

PowerCLIを使ってみる

実際にPowerCLIを使ってみることにする。以下コマンドを入力することで、モジュールがインポートされ、PowerCLIのコマンドレットが利用できるようになる。

PS C:\> Import-Module VMware.PowerCLI
------------------------------
警告: Please consider joining the VMware Customer Experience Improvement Program, so you can help us make PowerCLI a
better product. You can join using the following command:

Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $true

VMware's Customer Experience Improvement Program ("CEIP") provides VMware with information that enables VMware to
improve its products and services, to fix problems, and to advise you on how best to deploy and use our products.  As
part of the CEIP, VMware collects technical information about your organization痴 use of VMware products and services
on a regular basis in association with your organization痴 VMware license key(s).  This information does not personally
 identify any individual.

For more details: type "help about_ceip" to see the related help article.

To disable this warning and set your preference use the following command and restart PowerShell:
Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $true or $false.
          Welcome to VMware PowerCLI!

Log in to a vCenter Server or ESX host:              Connect-VIServer
To find out what commands are available, type:       Get-VICommand
To show searchable help for all PowerCLI commands:   Get-PowerCLIHelp
Once you've connected, display all virtual machines: Get-VM
If you need more help, visit the PowerCLI community: Get-PowerCLICommunity

       Copyright (C) VMware, Inc. All rights reserved.
------------------------------

次にESXiまたはvCenter Serverに接続する必要があるのだが、エラーにより接続失敗してしまった。

PS C:\> Connect-VIServer 192.168.33.11
------------------------------
Connect-VIServer : 2018/06/22 0:44:28   Connect-VIServer                Error: Invalid server certificate. Use Set-Powe
CLIConfiguratio
n to set the value for the InvalidCertificateAction option to Prompt if you'd like to connect once or to add a permanen
t exception for this server.
Additional Information: 機関 '192.168.33.11' との SSL/TLS のセキュリティで保護されているチャネルに対する信頼関係を確立
できませんでした。
発生場所 行:1 文字:1
+ Connect-VIServer 192.168.33.11
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) [Connect-VIServer]、ViSecurityNegotiationException
    + FullyQualifiedErrorId : Client20_ConnectivityServiceImpl_Reconnect_CertificateError,VMware.VimAutomation.ViCore.
   Cmdlets.Commands.ConnectVIServer
------------------------------

この場合は、PowerCLIの設定変更が必要となる。まずは以下コマンドレットで設定を確認する。

PS C:\> Get-PowerCLIConfiguration
------------------------------
Scope    ProxyPolicy     DefaultVIServerMode InvalidCertificateAction  DisplayDeprecationWarnings WebOperationTimeout
                                                                                                  Seconds
-----    -----------     ------------------- ------------------------  -------------------------- -------------------
Session  UseSystemProxy  Multiple            Unset                     True                       300
User
AllUsers
------------------------------

「InvalidCertificateAction」が「Unset (未設定)」となっているが、これを「Ignore (無視)」に変更する。

PS C:\> Set-PowerCLIConfiguration -InvalidCertificateAction Ignore
------------------------------
Perform operation?
Performing operation 'Update PowerCLI configuration.'?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): Y

Scope    ProxyPolicy     DefaultVIServerMode InvalidCertificateAction  DisplayDeprecationWarnings WebOperationTimeout
                                                                                                  Seconds
-----    -----------     ------------------- ------------------------  -------------------------- -------------------
Session  UseSystemProxy  Multiple            Ignore                    True                       300
User                                         Ignore
AllUsers
------------------------------


設定後にもう一度ESXiに接続してみると、今度はエラーなく接続できる。

PS C:\> Connect-VIServer 192.168.11.11
------------------------------
Name                           Port  User
----                           ----  ----
192.168.11.11                  443   root
------------------------------

以上の通り、PowerShell GalleryからPowerCLIをインストールし、ESXiに接続することができた。今までの一般的なアプリケーションのインストール方法とは違い、コマンドベースのインストール方法となるため最初は戸惑うかもしれないが、一度やってみればそこまで難しいものではない。

参考

vSphere PowerCLI Reference - Set-PowerCLIConfiguration
https://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.powercli.cmdletref.doc%2FSet-PowerCLIConfiguration.html

0 件のコメント:

コメントを投稿

人気の投稿