VMware Flings で、PowerCLI Core が公開されたので、Docker コンテナを使用して実行してみました。
Docker Host は、Photon OS を使用します。
PowerCLI Core は、Linux、Mac などマルチプラットフォームで実行できる PowerCLI です。
VMware Flings の PowerCLI Core のページ
こちらもどうぞ。
Linux で PowerCLI Core をためす。(Photon OS)
今回の環境について。
Docker Host は、Photon OS 1.0 です。
root@photon-pcli [ ~ ]# cat /etc/photon-release
VMware Photon Linux 1.0
PHOTON_BUILD_NUMBER=13c08b6
root@photon-pcli [ ~ ]# uname -r
4.4.8-esx
Photon OS は最新化して、いちど再起動おきます。
root@photon-pcli [ ~ ]# tdnf upgrade -y
root@photon-pcli [ ~ ]# reboot
インストールされている Docker のバージョンは、1.11 です。
root@photon-pcli [ ~ ]# tdnf list docker
docker.x86_64 1.11.2-1.ph1 @System
docker.x86_64 1.11.2-1.ph1 photon-updates
docker.x86_64 1.11.0-5.ph1 photon
unzip をインストール済みです。
root@photon-pcli [ ~ ]# tdnf install -y unzip
root@photon-pcli [ ~ ]# which unzip
/usr/bin/unzip
Docker 用のユーザを作成しておきます。
root@photon-pcli [ ~ ]# groupadd docker
root@photon-pcli [ ~ ]# useradd -m -g docker gowatana
root@photon-pcli [ ~ ]# passwd gowatana
New password:
Retype new password:
passwd: password updated successfully
Docker エンジンを起動しておきます。
root@photon-pcli [ ~ ]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
root@photon-pcli [ ~ ]# systemctl start docker
root@photon-pcli [ ~ ]# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 1.11.2
Storage Driver: overlay
Backing Filesystem: extfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: null host bridge
Kernel Version: 4.4.8-esx
Operating System: VMware Photon/Linux
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.958 GiB
Name: photon-pcli
ID: DAXX:S6YY:OOAS:BS6P:4RZF:6LTN:SVSA:U5JG:3EA4:YN42:L7T2:DSUQ
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No kernel memory limit support
PowerCLI Core の Docker コンテナをビルド。
Flings サイトからダウンロードした「PowerCLI_Core.zip」 を配置しておきます。
gowatana@photon-pcli [ ~ ]$ id
uid=1000(gowatana) gid=1000(docker) groups=1000(docker)
gowatana@photon-pcli [ ~ ]$ ls PowerCLI_Core.zip
PowerCLI_Core.zip
解凍します。Dockerfile が含まれています。
gowatana@photon-pcli [ ~ ]$ unzip PowerCLI_Core.zip
Archive: PowerCLI_Core.zip
inflating: Dockerfile
creating: __MACOSX/
inflating: __MACOSX/._Dockerfile
inflating: PowerCLI.Vds.4523941.zip
inflating: __MACOSX/._PowerCLI.Vds.4523941.zip
inflating: PowerCLI.ViCore.4523941.zip
inflating: __MACOSX/._PowerCLI.ViCore.4523941.zip
inflating: README.md
inflating: __MACOSX/._README.md
inflating: Start-PowerCLI.ps1
inflating: __MACOSX/._Start-PowerCLI.ps1
gowatana@photon-pcli [ ~ ]$ ls -l
total 20008
-rw-r--r-- 1 gowatana docker 1927 Oct 17 23:09 Dockerfile
-rw-r--r-- 1 gowatana docker 123095 Oct 17 23:04 PowerCLI.Vds.4523941.zip
-rw-r--r-- 1 gowatana docker 10268925 Oct 17 23:04 PowerCLI.ViCore.4523941.zip
-rw-r----- 1 gowatana docker 10061206 Oct 18 15:59 PowerCLI_Core.zip
-rw-r--r-- 1 gowatana docker 9604 Oct 18 05:12 README.md
-rw-r--r-- 1 gowatana docker 2185 Oct 12 12:27 Start-PowerCLI.ps1
drwxrwxr-x 2 gowatana docker 4096 Oct 18 05:15 __MACOSX
Docker コンテナのイメージをビルドします。ubuntu をベースにしてビルドされます。
gowatana@photon-pcli [ ~ ]$ docker build -t vmware/powercli .
Sending build context to Docker daemon 20.48 MB
Step 1 : FROM ubuntu:14.04
14.04: Pulling from library/ubuntu
bf5d46315322: Pull complete
9f13e0ac480c: Pull complete
e8988b5b3097: Pull complete
(省略・・・)
イメージがビルドされました。
gowatana@photon-pcli [ ~ ]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
vmware/powercli latest a03aa9e27b4e 2 minutes ago 482.7 MB
ubuntu 14.04 1e0c3dd64ccd 5 days ago 187.9 MB
Docker コンテナとして PowerCLI が起動できるようになります。
gowatana@photon-pcli [ ~ ]$ docker run --rm -it --entrypoint='/usr/bin/powershell' vmware/powercli
PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
Welcome to VMware vSphere PowerCLI!
Log in to a vCenter Server or ESX host: Connect-VIServer
To find out what commands are available, type: Get-VICommand
Once you've connected, display all virtual machines: Get-VM
Copyright (C) VMware, Inc. All rights reserved.
Loading personal and system profiles took 1308ms.
PS /powershell>
vCenter の SSL 証明書を入れ替えていないので、今回は証明書を確認しないようにします。
PS /powershell> Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false
Scope ProxyPolicy DefaultVIServerMode InvalidCertificateAction DisplayDeprecationWarnings WebOperationTimeout
Seconds
----- ----------- ------------------- ------------------------ -------------------------- -------------------
Session UseSystemProxy Multiple Ignore True 300
User Ignore
AllUsers
vCenter に接続してみました。
PS /powershell> Connect-VIServer vc01.godc.lab
Specify Credential
Please specify server credential
User: administrator@vsphere.local
Password for user administrator@vsphere.local: ************
Name Port User
---- ---- ----
vc01.godc.lab 443 VSPHERE.LOCAL\Administrator
PS /powershell>
適当な VM の情報を取得してみます。
PS /powershell> Get-VM vm01
Name PowerState Num CPUs MemoryGB
---- ---------- -------- --------
vm01 PoweredOff 1 2.000
PS /powershell>
PS /powershell> (Get-VM vm01).ExtensionData.MoRef.Value
vm-414
PS /powershell>
とりあえず使えそうです。
以上、PowerCLI Core を Docker で試してみる話でした。