VMware Photon OS 2.0 に PowerShell Core と PowerCLI Core をインストールしてみます。
Photon OS PowerCLI を利用したい場合は Docker コンテナを利用すると簡単ですが、
今回はあえて、Install-Module で PowerShell Gallery からインストールしています。
PowerCLI Core を Docker コンテナで利用するときは、
下記のような感じになります。
※vmware/powerclicore イメージには PowerCLI だけでなく PowerNSX も含まれています。
Docker コンテナの PowerNSX を実行してみる。
Photon OS 2.0 むけ RPM の PowerShell には PowerShellGet がインストールされていないので、
PowerCLI の前に PowerShellGet とその関連モジュールをインストールします。
手順は、vmware/powerclicore Docker イメージのもとになる
Dockerfile を参考にしました。
powerclicore/Dockerfile at master · vmware/powerclicore · GitHub
インストール対象の Photon OS は、VMware GitHub からダウンロードできる
OVA ファイルのものをデプロイしています。
Photon OS 2.0 GA Binaries
OVA with virtual hardware v13 (ESX 6.5 and above)
Downloading Photon OS · vmware/photon Wiki · GitHub
今回の Photon OS です。
root@photon-machine [ ~ ]# cat /etc/photon-release
VMware Photon OS 2.0
PHOTON_BUILD_NUMBER=304b817
PowerShell Core のインストール。
Photon OS の パブリックな Yum リポジトリから、
PowerShell Core と unzip をインストールします。
root@photon-machine [ ~ ]# tdnf install -y powershell unzip
root@photon-machine [ ~ ]# rpm -q powershell
powershell-6.0.1-1.ph2.x86_64
PowerShellGet のインストール。
PowerShellGet 関連のモジュールを、ファイル配置することでインストールします。
PackageManagement
root@photon-machine [ ~ ]# curl -LO https://www.powershellgallery.com/api/v2/package/PackageManagement
root@photon-machine [ ~ ]# unzip PackageManagement -d /usr/lib/powershell/Modules/PackageManagement
root@photon-machine [ ~ ]# rm PackageManagement
PowerShellGet
root@photon-machine [ ~ ]# curl -LO https://www.powershellgallery.com/api/v2/package/PowerShellGet
root@photon-machine [ ~ ]# unzip PowerShellGet -d /usr/lib/powershell/Modules/PowerShellGet
root@photon-machine [ ~ ]# rm PowerShellGet
問題対策。
Add-Type の問題対策を設定しておきます。
PowerShell on Photon: Cannot add PowerShell Type · Issue #752 · vmware/photon · GitHub
root@photon-machine [ ~ ]# mkdir -p /usr/lib/powershell/ref/
root@photon-machine [ ~ ]# ln -s /usr/lib/powershell/*.dll /usr/lib/powershell/ref/
PowerCLI Core のインストール。
PowerShell Core(pwsh)を対話モードで起動します。
root@photon-machine [ ~ ]# pwsh -v
PowerShell v6.0.1
root@photon-machine [ ~ ]# pwsh -NoLogo
PS /root>
PowerShell Gallery から PowerCLI Core をインストールします。
PS /root> Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
PS /root> Install-Module VMware.PowerCLI
インストールされました。
PS /root> Get-Module VMware.PowerCLI -ListAvailable | select Version,Name
Version Name
------- ----
10.2.0.9372002 VMware.PowerCLI
vCenter にも接続できます。
※証明書エラー回避のため「-Force」をつけています。
PS /root> Connect-VIServer infra-vc-01.go-lab.jp -Force
Specify Credential
Please specify server credential
User: gowatana
Password for user gowatana: ***********
Name Port User
---- ---- ----
infra-vc-01.go-lab.jp 443 GO-LAB\gowatana
PS /root> Get-VMHost | select Name,Version,Build,ConnectionState | Sort-Object Name
Name Version Build ConnectionState
---- ------- ----- ---------------
infra-esxi-01.go-lab.jp 6.7.0 8169922 Connected
infra-esxi-02.go-lab.jp 6.7.0 8169922 Connected
infra-esxi-03.go-lab.jp 6.7.0 8169922 Connected
infra-esxi-04.go-lab.jp 6.7.0 8169922 Connected
infra-esxi-05.go-lab.jp 6.7.0 8169922 Connected
infra-esxi-06.go-lab.jp 6.7.0 8169922 Connected
PowerCLI にかぎらず、ほかの PowerShell モジュールも同様にインストールできるはずです。
以上、Photon OS 2.0 に PowerCLI Core をインストールしてみる話でした。