最近 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 です。

https://hub.docker.com/r/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.

 

https://aka.ms/pscore6-docs

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 コンテナを起動してみる話でした。