最近 PowerCLI 10.0 が公開されましたが、とうとう vmware/powerclicore の
Docker コンテナもイメージもアップデートされました。
PowerCLI Docker Image Updated - VMware PowerCLI Blog - VMware Blogs
PowerCLI 10.0 は Linux / macOS もサポートされるようになり、
少し前に Linux で実行してみた投稿をしてみましたが・・・
Linux で PowerCLI 10.0 をためしてみる。
今回は macOS で PowerCLI 10.0 の Docker コンテナを起動してみます。
実行環境。
普段あまり使っていない MacBook なのでバージョンは若干古いかもしれません。
macOS です。
gomac:~ gowatana$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.13.2
BuildVersion: 17C205
Docker です。
gomac:~ gowatana$ docker version
Client:
Version: 17.09.1-ce
API version: 1.32
Go version: go1.8.3
Git commit: 19e2cf6
Built: Thu Dec 7 22:22:25 2017
OS/Arch: darwin/amd64
Server:
Version: 17.09.1-ce
API version: 1.32 (minimum version 1.12)
Go version: go1.8.3
Git commit: 19e2cf6
Built: Thu Dec 7 22:28:28 2017
OS/Arch: linux/amd64
Experimental: false
コンテナの起動。
コンテナのイメージは、vmware/powerclicore です。
イメージを pull します。タグは特に指定せず latest です。
gomac:~ gowatana$ docker image pull vmware/powerclicore
Using default tag: latest
latest: Pulling from vmware/powerclicore
e9b1ffebdf09: Pull complete
1ca0671214e4: Pull complete
e2054d0e7b6e: Pull complete
9e5896375981: Pull complete
4fda4ed0aa8e: Pull complete
ae595f021807: Pull complete
2223c2963494: Pull complete
c0625c88535b: Pull complete
Digest: sha256:4c19d7f6e5b460cdcea403977f1e8491f5c28c81a60e84dddf9d65921ba3ac51
Status: Downloaded newer image for vmware/powerclicore:latest
コンテナを起動します。
事情により --dns でコンテナが参照する DNS サーバのアドレスを指定しています。
( macOS で利用している DHCP と自宅ラボの DNS サーバのアドレスがあっていないので・・・)
gomac:~ gowatana$ docker container run -it --rm --dns=192.168.1.254 vmware/powerclicore
PowerShell v6.0.1
Copyright (c) Microsoft Corporation. All rights reserved.
Type 'help' to get help.
PS /root>
コンテナは、Photon OS 2.0 をベースにされています。
PS /root> cat /etc/photon-release
VMware Photon OS 2.0
PHOTON_BUILD_NUMBER=304b817
自宅ラボの vCenter は証明書を入れ替えていないので、
証明書エラーを無視してしまいます。
PS /root> Set-PowerCLIConfiguration -InvalidCertificateAction:Ignore -Confirm:$false
PowerShell モジュールの様子です。
Cmds 列は、それぞれのモジュールに含まれるコマンド数のはずです。
PS /root> Get-Module -ListAvailable | select @{N="Cmds";E={$_.ExportedCommands.Count}},Version,Name | Sort-Object Name
Cmds Version Name
---- ------- ----
1 0.0 apply-hardening
3 0.0 Backup-VCSA
9 0.0 ContentLibrary
6 0.0 DatastoreFunctions
1 0.0 Get-NewAndRemovedVMs
1 0.0 Get-NICDetails
1 0.0 Get-VMmaxIOPS
1 0.0 Konfig-ESXi
2 3.0.0.0 Microsoft.PowerShell.Host
43 3.1.0.0 Microsoft.PowerShell.Management
6 3.0.0.0 Microsoft.PowerShell.Security
103 3.1.0.0 Microsoft.PowerShell.Utility
8 1.0.0.0 NSXT
13 1.1.7.0 PackageManagement
300 3.0.1091 PowerNSX
29 1.6.0 PowerShellGet
119 3.1.1 PowervRA
7 0.0 ProactiveHA
71 0.0 PSDesiredStateConfiguration
6 1.2 PSReadLine
1 0.0 PSvLIMessage
1 0.0 Recommend-Sizing
1 0.0 Set-CBT
1 0.0 Start-UNMAP
16 0.0 VAMI
5 0.0 vCenter.Alarms
10 0.0 vCenterManualMigration
5 0.0 VCHA
11 1.0 Vi-Module
2 0.0 VMCPFunctions
3 1.0.0.0 VMFSIncrease
11 0.0 VMToolsManagement
5 1.0.0 VMware-vCD-Module
3 1.0.2 VMware-vCD-TenantReport
27 6.5.2.7812840 VMware.DeployAutomation
15 1.0.0.0 VMware.Hosted
12 6.5.2.7812840 VMware.ImageBuilder
0 10.0.0.7895300 VMware.PowerCLI
3 10.0.0.7893915 VMware.VimAutomation.Cis.Core
106 10.0.0.7893901 VMware.VimAutomation.Cloud
0 10.0.0.7893906 VMware.VimAutomation.Common
302 10.0.0.7893909 VMware.VimAutomation.Core
1 6.5.4.7567193 VMware.VimAutomation.HA
2 7.1.0.7547311 VMware.VimAutomation.HorizonView
1 10.0.0.7893904 VMware.VimAutomation.License
3 10.0.0.7893913 VMware.VimAutomation.Nsxt
4 10.0.0.7893924 VMware.VimAutomation.PCloud
2 10.0.0.7893910 VMware.VimAutomation.Sdk
2 10.0.0.7893900 VMware.VimAutomation.Srm
92 10.0.0.7894167 VMware.VimAutomation.Storage
1 1.2.0.0 VMware.VimAutomation.StorageUtility
32 10.0.0.7893903 VMware.VimAutomation.Vds
5 10.0.0.7893902 VMware.VimAutomation.Vmc
12 10.0.0.7893921 VMware.VimAutomation.vROps
16 1.2.0 VMware.VMC
19 1.0 VMware.VMEncryption
19 6.5.1.7862888 VMware.VumAutomation
3 0.0 vSphere_Hardening_Assess_VM_v1a
PS /root>
Dockerfile を見ると、PowerNSX と PowervRA もインストールされていることがわかります。
そして、vSAN むけのモジュールも PowerCLI に含まれています。
powerclicore/Dockerfile at master · vmware/powerclicore · GitHub
vCenter / NSX Manger に接続してみる。
それでは vCenter「vc-sv01.go-lab.jp」に接続します。
すでに InvalidCertificateAction の設定をしているので、エラーが抑止されています。
PS /root> Connect-VIServer vc-sv01.go-lab.jp
Specify Credential
Please specify server credential
User: gowatana
Password for user gowatana: **********
Name Port User
---- ---- ----
vc-sv01.go-lab.jp 443 GO-LAB\gowatana
PS /root>
下記のように vSAN むけのコマンドも実行できます。
PS /root> Get-VsanClusterConfiguration | Sort-Object Cluster
Cluster VsanEnabled IsStretchedCluster Last HCL Updated
------- ----------- ------------------ ----------------
ha-cluster-01 False False
ha-cluster-02 False False
vsan-cluster-01 True False 01/28/2018 12:01:23
vsan-cluster-02 True False 01/28/2018 12:01:23
vsan-cluster-03 True True 01/28/2018 12:01:23
work-cluster-01 False False
PS /root>
PowerNSX も含まれています。
NSX Manager に接続してみました。
PS /root> Connect-NsxServer -vCenterServer vc-sv01.go-lab.jp
PowerShell credential request
vCenter Server SSO Credentials
User: gowatana
Password for user gowatana: **********
Using existing PowerCLI connection to 192.168.1.95
Version : 6.4.0
BuildNumber : 7564187
Credential : System.Management.Automation.PSCredential
Server : 192.168.1.140
Port : 443
Protocol : https
UriPrefix :
ValidateCertificate : False
VIConnection : vc-sv01.go-lab.jp
DebugLogging : False
DebugLogfile : \PowerNSXLog-gowatana@-2018_03_15_11_10_47.log
PS /root>
macOS 自体に PowerShell / PowerCLI 10.0 をインストールすることも可能になりましたが、
Docker コンテナであれば PowerShell モジュールのインストールよりも、さらに手軽に実行できるはずです。
また、多くの PowerShell モジュールがインストールされてカオス環境になることを避けたり、
将来的に複数の PowerCLI バージョンをきれいに使い分けたり、といった使い方ができそうです。
以上、PowerCLI 10.0 の Docker コンテナを起動してみる話でした。