以前、PowerShell CoreとVMware PowerCLI Coreに関する記事を書いた。
現在は、VMware PowerCLI Coreが標準のVMware PowerCLIに統合され、またインストール手法も変わっている。
そこで、久しぶりにインストールしてみた。
まずは「Linux への PowerShell Core のインストール」記載の手順に従いインストール
1. Microsoftレポジトリの登録
「curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo」
[root@centos7 ~]# curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 193 100 193 0 0 70 0 0:00:02 0:00:02 --:--:-- 70
[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
[root@centos7 ~]#
2. PowerShellのインストール
「yum install -y powershell」
[root@centos7 ~]# yum install -y powershell
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
<略>
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
================================================================================
インストール中:
powershell x86_64 6.1.0~preview.2-1.rhel.7 packages-microsoft-com-prod 50 M
依存性関連でのインストールをします:
libunwind x86_64 2:1.2-2.el7 base 57 k
トランザクションの要約
================================================================================
インストール 1 パッケージ (+1 個の依存関係のパッケージ)
総ダウンロード容量: 50 M
インストール容量: 50 M
<略>
https://packages.microsoft.com/keys/microsoft.asc から鍵を取得中です。
Importing GPG key 0xBE1229CF:
Userid : "Microsoft (Release signing) <gpgsecurity@microsoft.com>"
Fingerprint: bc52 8686 b50d 79e3 39d3 721c eb3e 94ad be12 29cf
From : https://packages.microsoft.com/keys/microsoft.asc
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : 2:libunwind-1.2-2.el7.x86_64 1/2
インストール中 : powershell-6.1.0~preview.2-1.rhel.7.x86_64 2/2
検証中 : 2:libunwind-1.2-2.el7.x86_64 1/2
検証中 : powershell-6.1.0~preview.2-1.rhel.7.x86_64 2/2
インストール:
powershell.x86_64 0:6.1.0~preview.2-1.rhel.7
依存性関連をインストールしました:
libunwind.x86_64 2:1.2-2.el7
完了しました!
[root@centos7 ~]#
これでPowerShellを「pwsh」で実行できるようになりました。
続いてvSphere環境をコントロールするためにPowerCLI
「VMware PowerCLI 10.11」
といっても、以前はパッケージをダウンロードしてインストールという形態だったものが、現状は、MicrosoftのPowerShellギャラリーに登録されています。
PowerShell Gallery「VMware.PowerCLI」
インストール方法もとっても簡単。
「Install-Module -Name VMware.PowerCLI」を実行するだけ。
途中で「Untrusted repositoryからのインストールを行うか」という質問に「y」と答える必要があります。
[root@centos7 ~]# 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> Install-Module -Name VMware.PowerCLI
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this
repository, change its InstallationPolicy value by running the Set-PSRepository
cmdlet. Are you sure you want to install the modules from 'PSGallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help
(default is "N"):y
<いろんなVMwareモジュールを追加インストール>
PS /root>
まずは、初期状態で読み込まれているモジュールを確認
PS /root> Get-Module
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 3.1.0.0 Microsoft.PowerShell.Management {Add-Content, Clea...
Manifest 3.1.0.0 Microsoft.PowerShell.Utility {Add-Member, Add-T...
Script 1.1.7.0 PackageManagement {Find-Package, Fin...
Script 1.6.0 PowerShellGet {Find-Command, Fin...
Script 1.2 PSReadLine {Get-PSReadlineKey...
PS /root>
現在使えるモジュールを確認。
PS /root> Get-Module -ListAvailable
Directory: /usr/local/share/powershell/Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 6.7.0.8... VMware.DeployAutomation {Add-DeployRule, A...
Script 6.7.0.8... VMware.ImageBuilder {Add-EsxSoftwareDe...
Manifest 10.1.1.... VMware.PowerCLI
Script 6.7.0.8... VMware.Vim
Script 10.1.0.... VMware.VimAutomation.Cis.Core {Connect-CisServer...
Script 10.0.0.... VMware.VimAutomation.Cloud {Add-CIDatastore, ...
Script 10.1.0.... VMware.VimAutomation.Common
Script 10.1.0.... VMware.VimAutomation.Core {Add-PassthroughDe...
Script 6.5.4.7... VMware.VimAutomation.HA Get-DrmInfo
Script 7.5.0.8... VMware.VimAutomation.HorizonView {Connect-HVServer,...
Script 10.0.0.... VMware.VimAutomation.License Get-LicenseDataMan...
Script 10.1.0.... VMware.VimAutomation.Nsxt {Connect-NsxtServe...
Script 10.0.0.... VMware.VimAutomation.PCloud {Connect-PIServer,...
Script 10.1.0.... VMware.VimAutomation.Sdk
Script 10.0.0.... VMware.VimAutomation.Srm {Connect-SrmServer...
Script 10.1.0.... VMware.VimAutomation.Storage {Add-KeyManagement...
Script 1.2.0.0 VMware.VimAutomation.StorageUtility Update-VmfsDatastore
Script 10.1.0.... VMware.VimAutomation.Vds {Add-VDSwitchPhysi...
Script 10.0.0.... VMware.VimAutomation.Vmc {Connect-Vmc, Disc...
Script 10.0.0.... VMware.VimAutomation.vROps {Connect-OMServer,...
Script 6.5.1.7... VMware.VumAutomation {Add-EntityBaselin...
Directory: /opt/microsoft/powershell/6.1.0~preview.2/Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 1.1.0.0 Microsoft.PowerShell.Archive {Compress-Archive,...
Manifest 3.0.0.0 Microsoft.PowerShell.Host {Start-Transcript,...
Manifest 3.1.0.0 Microsoft.PowerShell.Management {Add-Content, Clea...
Manifest 3.0.0.0 Microsoft.PowerShell.Security {Get-Credential, G...
Manifest 3.1.0.0 Microsoft.PowerShell.Utility {Format-List, Form...
Script 1.1.7.0 PackageManagement {Find-Package, Get...
Script 1.6.0 PowerShellGet {Install-Module, F...
Script 0.0 PSDesiredStateConfiguration {Get-PublicKeyFrom...
Script 1.2 PSReadLine {Get-PSReadlineKey...
PS /root>
以前、「PowerCLIとPowerCLI Coreの双方で動くPowerShellスクリプトの作り方」では、それぞれでモジュール名が異なっていた。
PowerCLI Coreでのモジュール名変更は無かったことになった模様。
とりあえず、VI-Connectで接続をかけてみる・・・
PS /root> Connect-VIServer -Server IPアドレス -User root -Password password -WarningAction 0
Connect-VIServer : 2018/07/06 14:29:03 Connect-VIServer Error: Invalid server certificate. Use Set-PowerCLIConfiguration to set the value for the InvalidCertificateAction option to Ignore to ignore the certificate errors for this connection.
Additional Information: Could not establish trust relationship for the SSL/TLS secure channel with authority 'IPアドレス'.
At line:1 char:1
+ Connect-VIServer -Server IPアドレス -User root -Password password - ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [Connect-VIServer], ViSecurityNegotiationException
+ FullyQualifiedErrorId : Client20_ConnectivityServiceImpl_Reconnect_CertificateError,VMware.VimAutomation.ViCore.Cmdlets.Commands.ConnectVIServer
PS /root>
おや?
デフォルト証明書の場合の取り扱いが変わった模様。
VMware PowerCLI Blog「New Release: VMware PowerCLI 10.0.0」の「Default Certificate Handling」に記載がある。
エラーメッセージもあるように「Set-PowerCLIConfiguration -InvalidCertificateAction Ignore」を実行して無視するようにする、と。
PS /root> Set-PowerCLIConfiguration -InvalidCertificateAction Ignore
Perform operation?
Performing operation 'Update PowerCLI configuration.'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help
(default is "Y"):y
Scope ProxyPolicy DefaultVIServerMode InvalidCertificateAction DisplayD
eprecati
onWarnin
gs
----- ----------- ------------------- ------------------------ --------
Session UseSystemProxy Multiple Ignore True
User Ignore
AllUsers
PS /root>
改めて接続を実行
PS /root> Connect-VIServer -Server IPアドレス -User root -Password password
Name Port User
---- ---- ----
IPアドレス 443 root
PS /root>
問題なく動作しましたね。