NSX for vSphere を PowerCLI で操作する、PowerNSX というツールが公開されています。
実は、PowerNSX は VMware の Docker Hub で公開されている
PowerCLI Core のコンテナイメージ「vmware/powerclicore」にも含まれています。
ということで、Docker コンテナから PowerNSX を起動してみます。
以前の投稿もどうぞ・・・
PowerCLI Core を Docker コンテナでためしてみる。
PowerNSX で VMware NSX の論理スイッチ (Logical Switch) を作成してみる。
Docker ホストの用意
今回の Docker ホストは、Photon OS です。
あらかじめ、下記からダウンロードした OVA ファイル(OVA with virtual hardware v11)をデプロイして、
ホスト名と root パスワードだけ変更してあります。
Downloading Photon OS · vmware/photon Wiki · GitHub
まずパッケージを最新化して、OS を再起動しておきます。
※Photon OS は、yum のかわりに、tdnf コマンドを使用します。
root@photon01 [ ~ ]# tdnf upgrade -y
root@photon01 [ ~ ]# reboot
Photon OS のバージョンです。
root@photon01 [ ~ ]# cat /etc/photon-release
VMware Photon Linux 1.0
PHOTON_BUILD_NUMBER=62c543d
root@photon01 [ ~ ]# uname -r
4.4.70-3.ph1-esx
Docker のバージョンです。
root@photon01 [ ~ ]# rpm -q docker
docker-1.13.1-3.ph1.x86_64
そして Docker サービスを起動しておきます。
root@photon01 [ ~ ]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
root@photon01 [ ~ ]# systemctl start docker
root@photon01 [ ~ ]# docker version
Client:
Version: 1.13.1
API version: 1.26
Go version: go1.8.1
Git commit: 092cba3
Built: Fri May 5 02:08:33 2017
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Go version: go1.8.1
Git commit: 092cba3
Built: Fri May 5 02:08:33 2017
OS/Arch: linux/amd64
Experimental: false
PowerCLI Core コンテナの起動
Docker Hub から、vmware/powerclicore をダウンロード(pull)しておきます。
root@photon01 [ ~ ]# docker pull vmware/powerclicore
Using default tag: latest
latest: Pulling from vmware/powerclicore
93b3dcee11d6: Pull complete
64180fb7dedf: Pull complete
46c9ea8ba821: Pull complete
b0ad35240277: Pull complete
f537a588698e: Pull complete
b821ac08cbe0: Pull complete
a76c30f73a8e: Pull complete
e5d8130503e2: Pull complete
a72ad7270123: Pull complete
c6b89e0875bf: Pull complete
d1628dac3e00: Pull complete
57fb698e34cd: Pull complete
9a9d3505a642: Pull complete
bf20548eaf12: Pull complete
a27e923ed27a: Pull complete
f0ecdd77fe48: Pull complete
7b8113d29296: Pull complete
2590b0e2e842: Pull complete
e3b9ecfe2ca0: Pull complete
d4838036c9df: Pull complete
5a536d9f1f30: Pull complete
3f9566a85b2e: Pull complete
bdb2ac6e70be: Pull complete
Digest: sha256:ffe996f7d664b2d8d9cd25501a8cb0a2f7459871b09523c1d3545df780ace211
Status: Downloaded newer image for vmware/powerclicore:latest
イメージがダウンロードできました。
root@photon01 [ ~ ]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
vmware/powerclicore latest a8e3349371c5 6 weeks ago 610 MB
コンテナを起動します。
root@photon01 [ ~ ]# docker run -it vmware/powerclicore
コンテナを起動すると、このような感じになります。
PowerCLI Core のバージョンです。
PS /powershell> Get-PowerCLIVersion
PowerCLI Version
----------------
VMware PowerCLI Core 1.0 build 5327113
---------------
Component Versions
---------------
VMware vSphere PowerCLI Component 1.22 build 5327113
VMware VDS PowerCLI Component 5.1 build 5327113
VMware VDS PowerCLI Component 1.21 build 5327113
PS /powershell>
PowerNSX での vCenter と NSX への接続
それでは、PowerNSX で vCenter / NSX に接続してみます。
PowerNSX のバージョンを見ておきます。
PS /powershell> Import-Module -Name PowerNSX
PS /powershell> Get-Module PowerNSX | select Name,Version
Name Version
---- -------
PowerNSX 2.1.0
ちなみに、まだ安定版というわけではないこともあり
Import-Module -Name PowerNSX を実行したタイミングで赤字で注意書きが表示されます。
PowerNSX では NSX Manager と vCenter に接続してから実行します。
Connect-NSXServer では、vCenter に同時接続する機能がありますが、
いまのところちょっとうまくいかないので、vCenter と NSX Manager をそれぞれ別に接続します。
まず、vCenter に接続します。「vc-sv02」が今回の vCenter です。
PS /powershell> Connect-VIServer vc-sv02.go-lab.jp -Force
Specify Credential
Please specify server credential
User: gowatana ★VCにログインするユーザを入力。
Password for user gowatana: ******** ★パスワードを入力。
vCenter に接続できました。
PS /powershell> $Global:DefaultVIServer | fl Name,IsConnected
Name : vc-sv02.go-lab.jp
IsConnected : True
NSX Manager に接続します。「nsxmgr01」が今回の NSX Manager です。
「Using existing PowerCLI connection to ~」にある IP アドレスは、
すでに接続済みのvCenter の IP アドレスです。
そして VIConnection を見ると、vCenter への接続を認識していることが分かります。
PS /powershell> Connect-NsxServer -NsxServer nsxmgr01.go-lab.jp -ValidateCertificate:$false
Windows PowerShell credential request
NSX Manager Local or Enterprise Admin SSO Credentials
User: admin★NSX Manager のユーザを入力。
Password for user admin: **********★パスワードを入力。
Using existing PowerCLI connection to 192.168.1.96
Version : 6.3.1
BuildNumber : 5124716
Credential : System.Management.Automation.PSCredential
Server : nsxmgr01.go-lab.jp
Port : 443
Protocol : https
ValidateCertificate : False
VIConnection : vc-sv02.go-lab.jp
DebugLogging : False
DebugLogfile : \PowerNSXLog-admin@nsxmgr01.go-lab.jp-2017_06_13_14_41_28.log
PS /powershell>
PowerNSX に含まれるコマンドレットで、情報取得できるようになります。
PS /powershell> Get-NsxManagerSystemSummary
ipv4Address : 192.168.1.141
dnsName : nsxmgr01.go-lab.jp
hostName : nsxmgr01
domainName : go-lab.jp
applianceName : vShield Virtual Appliance Management
versionInfo : versionInfo
uptime : 2 days, 3 hours, 14 minutes
cpuInfoDto : cpuInfoDto
memInfoDto : memInfoDto
storageInfoDto : storageInfoDto
currentSystemDate : Tuesday, 13 June 2017 11:41:50 PM JST
これで、便利な PowerNSX を手軽にためすことができます。
ただ PowerCLI Core も、まだ Technical Preview なので
まだメインで使う PowerNSX は Windows の PowerCLI とかなと思います。
以上、PowerCLI Core コンテナ同梱の PowerNSX を実行してみる話でした。