Skip navigation

VMware は、最近では Linux ゲスト OS の VMware Tools として、

Linux ディストリビューションが提供する open-vm-tools のパッケージをインストールすることを推奨しています。

 

そこで、VMware Workstation Pro 12 の共有フォルダ機能を open-vm-tools をインストールした Linux で使用してみました。

今回は、下記を使用しています。

  • VMware Workstation 12.5.5 Pro for Windows
  • ホスト OS: Windows 10
  • ゲスト OS: Oracle Linux 7.3 (UEK)

 

ちなみに、たまたま手元にあった Oracle Linux 7 を使用していますが Red Hat Enterprise Linux や CentOS でも同様です。

 

1. ホスト OS 側でフォルダを作成。

まず、ホストの Windows で、共有するためのフォルダと、

アクセス確認のための適当なテキストファイルを作成しておきます。

※Linux で開くので、テキストファイルのエンコードや改行コードには要注意・・・

 

今回は、C:\work\vmw_share フォルダに test.txt というファイルを作成してあります。

PS> cat C:\work\vmw_share\test.txt

VMTN Japanese Forum

 

2. VMware Workstation 共有フォルダを有効化 & 追加。

VMware Workstation で VM の設定を編集して、共有フォルダを有効にします。

 

「オプション」タブ → 「共有フォルダ」 で共有フォルダを有効(今回は「常に有効」)にして、
「追加」をクリックします。

vmw12-share-00.png

 

「共有フォルダ追加ウィザード」が起動するので「次へ」。

vmw12-share-01.png

 

ホスト OS 側のフォルダのパスと、ゲスト OS 側で認識される共有フォルダの名前を指定します。

今回は「vmw_share」という名前にしました。

vmw12-share-02.png

 

「この共有を有効化」のチェックを ON にして「完了」。

vmw12-share-03.png

 

「仮想マシンの設定」画面で、共有フォルダが追加されたことが確認できます。

vmw12-share-04.png

 

3. ゲスト OS 側でマウント & アクセス確認。

Workstation で起動する VM のゲスト OS で 共有フォルダをマウントして、

ファイルの読み取り、書き込みを試してみます。

 

今回のゲスト OS は Oracle Linux 7.3 です。

[root@vm72 ~]# cat /etc/oracle-release

Oracle Linux Server release 7.3

[root@vm72 ~]# uname -r

4.1.12-61.1.33.el7uek.x86_64

 

open-vm-tools のバージョンです。

[root@vm72 ~]# rpm -q open-vm-tools

open-vm-tools-10.0.5-4.0.1.el7_3.x86_64

[root@vm72 ~]# vmware-toolbox-cmd -v

10.0.5.52125 (build-3227872)

 

open-vm-tools がインストールされていない場合は、yum コマンドなどでインストールします。

# yum install -y open-vm-tools

 

Workstation で設定済みの共有フォルダ「vmw_share」は、ゲスト OS の Linux では認識されているようです。

[root@vm72 ~]# vmware-hgfsclient

vmw_share

 

Workstation 12 Pro のマニュアルだと、共有フォルダを mount コマンドでマウントしています。

Mounting Shared Folders in a Linux Guest

 

しかし、ただ mount コマンドを実行しても、共有フォルダの HGFS はマウントできませんでした。

[root@vm72 ~]# mount -t vmhgfs .host:/ /mnt/hgfs/

mount: unknown filesystem type 'vmhgfs'

[root@vm72 ~]# grep hgfs /proc/filesystems  | wc -l

0

 

そこで、open-vm-tools に含まれる vmhgfs-fuse コマンドでマウントしてみました。

[root@vm72 ~]# vmhgfs-fuse /mnt/hgfs/

[root@vm72 ~]# mount | grep hgfs

vmhgfs-fuse on /mnt/hgfs type fuse.vmhgfs-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)

[root@vm72 ~]# df -h /mnt/hgfs/

ファイルシス   サイズ  使用  残り 使用% マウント位置

vmhgfs-fuse      220G  198G   22G   91% /mnt/hgfs

[root@vm72 ~]# ls -l /mnt/hgfs

合計 0

drwxrwxrwx. 1 root root 0  4月  8 21:56 vmw_share

[root@vm72 ~]# ls -l /mnt/hgfs/vmw_share/

合計 1

-rwxrwxrwx. 1 root root 44  4月  8 21:56 test.txt

 

Windows で作成しておいたファイルを読み取ることができます。

[root@vm72 ~]# cat /mnt/hgfs/vmw_share/test.txt

VMTN Japanese Forum

 

ファイルに追記してみました。

[root@vm72 ~]# echo "wo yoroshiku." >> /mnt/hgfs/vmw_share/test.txt

[root@vm72 ~]# cat /mnt/hgfs/vmw_share/test.txt

VMTN Japanese Forum

wo yoroshiku.

 

ホストの Windows 側でも追記されました。

PS> cat C:\work\vmw_share\test.txt

VMTN Japanese Forum

wo yoroshiku.

 

ちなみに、vmware-hgfsclient と vmhgfs-fuse は、どちらも open-vm-tools に含まれています。

[root@vm72 ~]# rpm -qf `which vmware-hgfsclient`

open-vm-tools-10.0.5-4.0.1.el7_3.x86_64

[root@vm72 ~]# rpm -qf `which vmhgfs-fuse`

open-vm-tools-10.0.5-4.0.1.el7_3.x86_64

 

4. 一般ユーザからのアクセスについて。

共有フォルダは、vmhgfs-fuse コマンドのデフォルトのオプションでマウントした場合、
Linux でパーミッション設定が「rwxrwxrwx」となっていても 一般ユーザからはアクセスできないようになっています。

[gowatana@vm72 ~]$ id gowatana

uid=1000(gowatana) gid=1000(gowatana) groups=1000(gowatana)

[gowatana@vm72 ~]$ cat /mnt/hgfs/vmw_share/test.txt

cat: /mnt/hgfs/vmw_share/test.txt: 許可がありません

 

root 以外のユーザで共有フォルダを使用したい場合は、「allow_other」オプションを付与するアクセス可能になります。

※vmhgfs-fuse コマンドは root ユーザか、sudo コマンドで実行します。

[root@vm72 ~]# umount /mnt/hgfs/

[root@vm72 ~]# vmhgfs-fuse -o allow_other /mnt/hgfs/

[root@vm72 ~]# mount | grep hgfs

vmhgfs-fuse on /mnt/hgfs type fuse.vmhgfs-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)

 

一般ユーザでも読み取り / 書き込みになりました。

[gowatana@vm72 ~]$ echo "desu..." >> /mnt/hgfs/vmw_share/test.txt

[gowatana@vm72 ~]$ cat /mnt/hgfs/vmw_share/test.txt

VMTN Japanese Forum

wo yoroshiku.

desu...

 

以上、VMware Workstation の共有フォルダ機能を open-vm-tools の Linux で使用してみる話でした。

ふと VM を vSphere HA 無効のクラスタの ESXi から vSphere HA 有効のクラスタの ESXi に vMotion したら

本当に HA での保護は有効になるのか? とおもったので、実際に確認してみました。

今回は、PowerCLI で確認してみます。

 

使用した PowerCLI のバージョンです。

PowerCLI C:\> (Get-PowerCLIVersion).UserFriendlyVersion

VMware PowerCLI 6.5 Release 1 build 4624819

 

vCenter 6.5 に接続しています。

PowerCLI C:\> $global:DefaultVIServers | fl Name,ProductLine,Version,Build

 

 

Name        : vc-sv01.go-lab.jp

ProductLine : vpx

Version     : 6.5

Build       : 4944578

 

 

「vm01」という名前の VM  を vMotion してみます。

PowerCLI C:\> Get-VM vm01 | fl Name,PowerState,@{N="vmx_os_type";E={$_.ExtensionData.Config.GuestFullName}}

 

 

Name        : vm01

PowerState  : PoweredOn

vmx_os_type : VMware Photon OS (64-bit)

 

 

クラスタを 2つ用意しています。

  • vsan-cluster-01: vSphere HA 有効
  • vsan-cluster-02: vSphere HA 無効

PowerCLI C:\> Get-Cluster vsan-cluster-* | select Name,HAEnabled

 

 

Name            HAEnabled

----            ---------

vsan-cluster-01     False

vsan-cluster-02      True

 

 

現状では、vm01 は vsan-cluster-01 にいて、vSphere HA で保護されていません。

保護されている場合は、VM の ExtensionData.Runtime.DasVmProtection.DasProtected が true になります。

(今回は vHAProtected と表示しています)

PowerCLI C:\> Get-VM vm01 | fl Name,PowerState,VMHost,@{N="Parent";E={$_.VMHost.Parent}},@{N="vHAProtected";E={($_.ExtensionData.Runtime.DasVmProtection).DasProtected}}

 

 

Name         : vm01

PowerState   : PoweredOn

VMHost       : hv-i21.go-lab.jp

Parent       : vsan-cluster-01

vHAProtected :

 

 

vSphere HA が有効な、vsan-cluster-02 の ESXi に vMotion してみます。

クラスタには 3台の ESXi が含まれています。

 

PowerCLI C:\> Get-Cluster vsan-cluster-02 | Get-VMHost | select Name,Version,Build

 

 

Name             Version Build

----             ------- -----

hv-i26.go-lab.jp 6.5.0   4887370

hv-i24.go-lab.jp 6.5.0   4887370

hv-i25.go-lab.jp 6.5.0   4887370

 

 

それでは hv-i24.go-lab.jp という ESXi に vMotion します。

PoweredOn の VM に Move-VM を実行すると、vMotion になります。

PowerCLI C:\> Get-VM vm01 | Move-VM -Destination hv-i24.go-lab.jp -Datastore vsanDatastore-02

 

 

Name                 PowerState Num CPUs MemoryGB

----                 ---------- -------- --------

vm01                 PoweredOn  1        2.000

 

 

vsan-cluster-02 に含まれるホストに vMotion した vm01 は、vSphere HA で保護されました。

PowerCLI C:\> Get-VM vm01 | fl Name,PowerState,VMHost,@{N="Parent";E={$_.VMHost.Parent}},@{N="vHAProtected";E={($_.ExtensionData.Runtime.DasVmProtection).DasProtected}}

 

 

Name         : vm01

PowerState   : PoweredOn

VMHost       : hv-i24.go-lab.jp

Parent       : vsan-cluster-02

vHAProtected : True

 

 

vCenter の イベント でも、VM が保護されたことが分かります。

PowerCLI C:\> Get-VM vm01 | Get-VIEvent -MaxSamples 7 | fl CreatedTime,FullFormattedMessage

 

 

CreatedTime          : 2017/04/07 8:42:08

FullFormattedMessage : Alarm 'Virtual machine memory usage' on vm01 changed fro

                       m Gray to Green

 

CreatedTime          : 2017/04/07 8:42:08

FullFormattedMessage : Alarm 'Virtual machine CPU usage' on vm01 changed from G

                       ray to Green

 

 

CreatedTime          : 2017/04/07 8:41:19

FullFormattedMessage : Virtual machine vm01 in cluster vsan-cluster-02 in dc01

                       is vSphere HA Protected and HA will attempt to restart i

                       t after a failure.

 

 

CreatedTime          : 2017/04/07 8:41:06

FullFormattedMessage : Migration of virtual machine vm01 from hv-i21.go-lab.jp,

                        vsanDatastore-01 to hv-i24.go-lab.jp, vsanDatastore-02

                       completed

 

 

CreatedTime          : 2017/04/07 8:40:47

FullFormattedMessage : Migrating vm01 off host hv-i21.go-lab.jp in dc01

 

 

CreatedTime          : 2017/04/07 8:40:46

FullFormattedMessage : Hot migrating vm01 from hv-i21.go-lab.jp, vsanDatastore-

                       01 in dc01 to hv-i24.go-lab.jp, vsanDatastore-02 in dc01

                        with encryption

 

 

CreatedTime          : 2017/04/07 8:40:45

FullFormattedMessage : Task: Relocate virtual machine

 

 

以上、vSphere HA についての素朴な疑問を実機確認してみる話でした。

VMTN では最近、英語以外の言語によるフォーラムを
VMTN Global Forums by Language としてリニューアルしました。

あらたな日本語フォーラムは下記です。

Japanese

 

そして、下記のページでは各国語フォーラムのディスカッションの様子を俯瞰することができます。

VMTN Global Forums

 

下記のブログでも紹介されています。

Discover VMware Technology Network - Series 1 - VMTN Blog - VMware Blogs

 

 

各言語のフォーラムは、VMTN Home からの直接リンクでたどれるようになっています。

https://communities.vmware.com/welcome

 

また、これまで日本語のコーポレートサイトの「コミュニティ」リンクが

VMTN Home へのリンクだったのですが、日本語フォーラムへの直接リンクに変更されました。

vmtn-j-link.png

 

 

ただ、リニューアルでは以前の日本語フォーラムでのフォロー設定が引き継げないため、

あらためて下記の要領でフォローいただければと思います。

VMTN フォーラムの更新情報を受け取る方法

 

例では Japanese フォーラムのフォロー設定をしていますが、

VMware vSANVMware NSX  といった製品別フォーラム(英語)も同様にフォロー可能なので、

この機能を利用することで効率よく情報収集することができます。

 

 

フォーラムのリニューアルにともない、日本語フォーラムの README となるページも更新しました。

【最初にお読みください】VMTN Japanese フォーラムの利用方法

 

もともとの雰囲気を尊重しつつ、主に下記のような更新をしました。

  • 「サポート外の構成は回答できかねる」といった内容は削除。(以前はモデレータの方がVMware社員の方だったのですが、ユーザ同士の相互サポートであればサポート外の構成でもディスカッションしてよいと考えられるため)
  • 「正解」マークのモデレータによる代理マークはについての記載は削除。(VMTNモデレータ全体の方針として、マークするかどうかは質問した人に任せるため)
  • 製品マニュアル、ナレッジベース(KB)、コミュニティサイト全体の利用方法へのリンクを追記。
  • バージョンアップされたプラットフォームのUIにスクリーンショット/表現にあわせた。

 

 

ユーザーモデレータとして継続的にフォーラム改善していこうと思うので、

なにかお気づきの点があれば、下記のスレッドへの返信や、

画面右上の「作成」→「メッセージ」にて、モデレータ gowatana  宛にご連絡いただけれると幸いです。

VMTN Japanese フォーラムがリニューアルされました(201703/14)

 

よろしくお願いいたします。

今年も、vExpert 2017 に選ばれました。

vExpert 2017 Award Announcement - VMTN Blog - VMware Blogs


そして最近、このブログもホストされている VMTN のユーザ モデレータになりました。

「M」バッジが・・・

vmtn-m.png

 

ということで、VMTN Japan をそれとなくもりたてるべく「最初にお読みください」ドキュメントを

更新してみたので、ご活用いただければ幸いです。

【最初にお読みください】VMTN Japanese フォーラムの利用方法

※このドキュメントはトレンドに合わせて随時更新していこうと思います。


今年もみなさまの VMware 生活について、よい雰囲気づくりに貢献できればと思います。


以上です。これからもよろしくお願いします!

vSphere Integrated Containers (VIC) 1.0 では、デフォルトでは ESXi に登録されていない

ESXi Firewall のルールが必要になります。

ESXi から VCH の Serial Over LAN の通信のため、TCP 2377 番ポートの解放が必要です。

※もしくは、esxcli network firewall set --enabled false で ESXi Firewall を無効にしてしまいます・・・

Firewall Validation Error | VMware vSphere Integrated Containers Engine 0.8 Installation

 

ファイアウォール ルールが設定されていない場合は、

vic-machine で Virtual Container Host (VCH) をデプロイするときに下記のようなメッセージが表示されます。

INFO[2017-01-12T02:51:32+09:00] Firewall status: ENABLED on "/dc01/host/cluster-vsan01/hv-i23.godc.lab"

WARN[2017-01-12T02:51:32+09:00] Firewall configuration on "/dc01/host/cluster-vsan01/hv-i23.godc.lab" may prevent connection on dst 2377/tcp outbound with allowed IPs: [192.168.51.161 192.168.51.239]

 

VCH のデプロイについては、こちらもどうぞ。

vSphere Integrated Containers (VIC) 1.0 をためしてみる。

 

今回は、下記の KB を参考に、ESXi Firewall にルールを追加してみます。

Creating custom firewall rules in VMware ESXi 5.x (2008226) | VMware KB

 

設定するファイアウォール ルール。

  • 発信接続 (outbound)
  • ポート: TCP 2377
  • ルール ID:  vicoutgoing ※これは別の名前でもよい。

 

ファイアウォールルールの追加方法。

ESXi の /etc/vmware/firewall/ ディレクトリ配下の xml ファイルにルールを記載します。

/etc/vmware/firewall/service.xml に追記すればよいですが、今回はあえて

/etc/vmware/firewall/vicoutgoing.xml という別ファイルを作成しました。

 

ESXi 6.0 U2 に設定しています。

[root@hv-i23:~] vmware -vl

VMware ESXi 6.0.0 build-4192238

VMware ESXi 6.0.0 Update 2

 

まだ ファイアウォール ルールは設定されていません。

[root@hv-i23:~] esxcli network firewall ruleset list | grep vic

[root@hv-i23:~]

[root@hv-i23:~] esxcli network firewall ruleset rule list | grep vic

[root@hv-i23:~]

 

vi などのエディタによる編集か、もしくは下記のように、

ファイアウォール ルールを記載した xml ファイルを作成します。

service id は、空いていそうな 300 番を選びました。

cat << EOF > /etc/vmware/firewall/vicoutgoing.xml

<ConfigRoot>

  <service id='0300'>

    <id>vicoutgoing</id>

    <rule id='0000'>

      <direction>outbound</direction>

      <protocol>tcp</protocol>

      <port type='dst'>2377</port>

    </rule>

    <enabled>true</enabled>

    <required>true</required>

  </service>

</ConfigRoot>

EOF

 

xml ファイルが作成されています。

[root@hv-i23:~] cat /etc/vmware/firewall/vicoutgoing.xml

<ConfigRoot>

  <service id='0300'>

    <id>vicoutgoing</id>

    <rule id='0000'>

      <direction>outbound</direction>

      <protocol>tcp</protocol>

      <port type='dst'>2377</port>

    </rule>

    <enabled>true</enabled>

    <required>true</required>

  </service>

</ConfigRoot>

 

ESXi Firewall をリフレッシュすると、ルールが追加されます。

[root@hv-i23:~] esxcli network firewall refresh

[root@hv-i23:~] esxcli network firewall ruleset list | grep vic

vicoutgoing                  true

[root@hv-i23:~] esxcli network firewall ruleset rule list | grep vic

vicoutgoing               Outbound   TCP       Dst              2377      2377

 

vSphere Web Client でも、発信接続のルールが追加されたことが確認できます。

vic-fw-rule-01.png

 

ESXi Firewall ルールの永続化について。

 

上記の方法だと、ESXi の再起動によりルールが消えてしまうので、再起動のたびに登録が必要になります。

そこで私の環境では、やむなく ESXi 起動時に実行される /etc/rc.local.d/local.sh ファイルに

赤字部分 (xml ファイル生成と firewall の reflesh) を記載しています。

[root@hv-i23:~] cat /etc/rc.local.d/local.sh


#!/bin/sh


# local configuration options


# Note: modify at your own risk!  If you do/use anything in this

# script that is not part of a stable API (relying on files to be in

# specific places, specific tools, specific output, etc) there is a

# possibility you will end up with a broken system after patching or

# upgrading.  Changes are not supported unless under direction of

# VMware support.

 

cat << EOF > /etc/vmware/firewall/vicoutgoing.xml

<ConfigRoot>

  <service id='0300'>

    <id>vicoutgoing</id>

    <rule id='0000'>

      <direction>outbound</direction>

      <protocol>tcp</protocol>

      <port type='dst'>2377</port>

    </rule>

    <enabled>true</enabled>

    <required>true</required>

  </service>

</ConfigRoot>

EOF


esxcli network firewall refresh


exit 0

 

以上、VIC の ESXi Firewall ルール設定についての話でした。

vSphere Integrated Containers (VIC) 1.0 には、Harbor という Container Registry が含まれています。

vSphere Integrated Containers


Harbor は、GitHub で公開されています。

Harbor by VMware®


今回は、インストレーション ガイドを参考に、Harbor をセットアップしてみます。

harbor/installation_guide.md at master · vmware/harbor · GitHub


Harbor のセットアップには、3通りのセットアップ方法があります。

  • Online installer ※Harbor のコンテナイメージをインターネットからダウンロードする。
  • Offline installer ※インストール対象のサーバがインターネット接続できない場合はこれ。
  • Virtual Appliance ※OVA をデプロイ。

今回は、Harbor のソフトウェア構成が分かりやすい Online installer を使用しています。

ただし、VIC の製品サポートが必要な場合は、
MyVMware からダウンロードした OVA を使用することになります。

 

今回の構成。

Harbor と Docker Host の2台の VM を、VMware Workstation 12 にデプロイします。

ただし、Harbor のサーバでも Docker Engine が起動するので 1台 だけでも大丈夫です。


Harbor は、VIC 1.0 に含まれるバージョンと同じ、
Harbor 0.5 を GitHub からダウンロードして使用します。

 

Harbor と、そこにアクセスする Docker Host の OS は、どちらも Photon OS 1.0 を使用しています。

下記にある「OVA with virtual hardware v11」を使用しています。

Downloading Photon OS · vmware/photon Wiki · GitHub

 

Docker 環境の準備。

まず、Harbor と Docker Host 両方で Docker Engine を設定します。

 

Photon の OVA ファイルを 2つデプロイします・・・

デプロイした Photon を起動して、root/changeme ログインして初期パスワード変更をします。

ホスト名はわかりやすいものに変更しておきます。

今回は、下記のホスト名にしています。

  • Harbor: harbor01
  • Docker Host: photon01

 

ホスト名を設定し、OS にログインしなおすか、OS を再起動すると
プロンプトにホスト名が反映されます。

 

Harbor サーバ

# hostnamectl set-hostname harbor01

 

Docker Host

# hostnamectl set-hostname photon01

 

IP アドレスとホスト名を /etc/hosts ファイルに追記しておきます。

※Harbor と Docker Host 両方で設定します。

※今回の Harbor の IP アドレスは 192.168.254.130 です。

# echo "192.168.254.130 harbor01" >> /etc/hosts


tdnf コマンドで RPM をアップグレードしておきます。

# tdnf upgrade -y


OS を再起動します。

# reboot


アップグレード後の環境です。

root@harbor01 [ ~ ]# cat /etc/photon-release

VMware Photon Linux 1.0

PHOTON_BUILD_NUMBER=62c543d

root@harbor01 [ ~ ]# uname -a

Linux harbor01 4.4.41-1.ph1-esx #1-photon SMP Tue Jan 10 23:46:44 UTC 2017 x86_64 GNU/Linux

root@harbor01 [ ~ ]# rpm -q docker

docker-1.12.1-1.ph1.x86_64


docker サービスを起動します。

root@harbor01 [ ~ ]# systemctl enable docker

Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

root@harbor01 [ ~ ]# systemctl start docker

root@harbor01 [ ~ ]# docker info

Containers: 0

Running: 0

Paused: 0

Stopped: 0

Images: 0

Server Version: 1.12.1

Storage Driver: overlay

Backing Filesystem: extfs

Logging Driver: json-file

Cgroup Driver: cgroupfs

Plugins:

Volume: local

Network: host bridge overlay null

Swarm: inactive

Runtimes: runc

Default Runtime: runc

Security Options: seccomp

Kernel Version: 4.4.41-1.ph1-esx

Operating System: VMware Photon/Linux

OSType: linux

Architecture: x86_64

CPUs: 1

Total Memory: 1.958 GiB

Name: harbor01

ID: E3H3:PD22:G5DK:RMMJ:NJ2Z:EXJJ:MPZO:4A6D:2YBX:FWNW:GWXO:FR2K

Docker Root Dir: /var/lib/docker

Debug Mode (client): false

Debug Mode (server): false

Registry: https://index.docker.io/v1/

Insecure Registries:

127.0.0.0/8


Harbor サーバへの docker-compose インストール。

Harbor を構成するコンテナ群は、docker-compose で起動/停止するので、
下記を参考に、docker-compose をインストールします。

Install Docker Compose - Docker


docker-compose ファイルをダウンロードして、chmod コマンドで実行権限を付与します。

root@harbor01 [ ~ ]# curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

root@harbor01 [ ~ ]# chmod +x /usr/local/bin/docker-compose


ファイルが実行できるようになったことを確認しておきます。

root@harbor01 [ ~ ]# docker-compose --version

docker-compose version 1.9.0, build 2585387

 

Harbor サーバへの tar インストール。

デフォルトでは Photon OS に tar コマンドがインストールされていません。

Harbor のインストーラを展開するために tdnf でインストールしておきます。

root@harbor01 [ ~ ]# tdnf install -y tar

 

Harbor のインストール。

まず、「harbor-online-installer-0.5.0.tgz」を GitHub からダウンロードします。

root@harbor01 [ ~ ]# curl -L https://github.com/vmware/harbor/releases/download/0.5.0/harbor-online-installer-0.5.0.tgz -o harbor-online-installer-0.5.0.tgz

root@harbor01 [ ~ ]# tar zxf harbor-online-installer-0.5.0.tgz

root@harbor01 [ ~ ]# ls -lh harbor

total 248K

-rw-r--r-- 1 root root 212K Dec  6 08:58 LICENSE

-rw-r--r-- 1 root root  483 Dec  6 08:58 NOTICE

drwxr-xr-x 3 root root 4.0K Dec  6 08:58 common

-rw-r--r-- 1 root root 2.2K Dec  6 08:58 docker-compose.yml

-rw-r--r-- 1 root root 3.7K Dec  6 08:58 harbor.cfg

-rwxr-xr-x 1 root root 4.4K Dec  6 08:58 install.sh

-rwxr-xr-x 1 root root  12K Dec  6 08:58 prepare


harbor.cfg を編集します。

今回は Harbor に HTTP で接続するので、hostname だけ編集します。

デフォルトでは下記のようになっています。

root@harbor01 [ ~ ]# cd harbor/

root@photon01 [ ~/harbor ]# grep ^hostname harbor.cfg

hostname = reg.mydomain.com

 

ちなみに、admin ユーザのデフォルト パスワードもこのファイルで指定します。

root@harbor01 [ ~/harbor ]# grep harbor_admin_password harbor.cfg

harbor_admin_password = Harbor12345

 

hostname を Harbor サーバのアドレスに修正します。

root@harbor01 [ ~/harbor ]# vi harbor.cfg

root@harbor01 [ ~/harbor ]# grep ^hostname harbor.cfg

hostname = 192.168.254.130

 

install.sh を実行して、インストールします。

Harbor のコンテナイメージが Docker Hub からダウンロードされ、docker-compose で起動されます。

root@harbor01 [ ~/harbor ]# ./install.sh


[Step 0]: checking installation environment ...


Note: docker version: 1.12.1


Note: docker-compose version: 1.9.0



[Step 1]: preparing environment ...

generated and saved secret key

Generated configuration file: ./common/config/nginx/nginx.conf

Generated configuration file: ./common/config/ui/env

Generated configuration file: ./common/config/ui/app.conf

Generated configuration file: ./common/config/registry/config.yml

Generated configuration file: ./common/config/db/env

Generated configuration file: ./common/config/jobservice/env

Generated configuration file: ./common/config/jobservice/app.conf

Generated configuration file: ./common/config/ui/private_key.pem

Generated configuration file: ./common/config/registry/root.crt

The configuration files are ready, please use docker-compose to start the service.

 

 

[Step 2]: checking existing instance of Harbor ...

 

 

[Step 3]: starting Harbor ...

Creating network "harbor_default" with the default driver

Pulling log (vmware/harbor-log:0.5.0)...

0.5.0: Pulling from vmware/harbor-log

93b3dcee11d6: Pull complete

5c14e4bdfb0b: Pull complete

e4dee8a574ca: Pull complete

64897311fadc: Pull complete

9b18f82d0181: Pull complete

Digest: sha256:81db268fa32ed35274f88f0e9f6e8c8fe36fdfe3247a7c75cef3d526814755ad

Status: Downloaded newer image for vmware/harbor-log:0.5.0

Pulling ui (vmware/harbor-ui:0.5.0)...

0.5.0: Pulling from vmware/harbor-ui

93b3dcee11d6: Already exists

a91de92f52f5: Pull complete

341612b46e3b: Pull complete

c1a53f812656: Pull complete

9a9aa413559a: Pull complete

e1b377650dfc: Pull complete

be5517028022: Pull complete

726f4e0b4799: Pull complete

08639f4ec97a: Pull complete

Digest: sha256:677776af19c774f665565486ef0ec3ab37e55c6738a471942e3ea841b3e1821c

Status: Downloaded newer image for vmware/harbor-ui:0.5.0

Pulling mysql (vmware/harbor-db:0.5.0)...

0.5.0: Pulling from vmware/harbor-db

43c265008fae: Pull complete

d7abd54d3b34: Pull complete

92b527830a1b: Pull complete

44839710d611: Pull complete

3828a16bed5c: Pull complete

fb91763f6b4e: Pull complete

892bfb27c685: Pull complete

02874ec7a2dc: Pull complete

861c1296cc0d: Pull complete

d611998d5598: Pull complete

09037dc5a941: Pull complete

448973dd2180: Pull complete

c0a51ede01de: Pull complete

54c4b53ba168: Pull complete

Digest: sha256:4bc45566b8aab9288e76ac8a36e604aecf05ba9b25e22f5a9cd5e9686978b78b

Status: Downloaded newer image for vmware/harbor-db:0.5.0

Pulling jobservice (vmware/harbor-jobservice:0.5.0)...

0.5.0: Pulling from vmware/harbor-jobservice

93b3dcee11d6: Already exists

a91de92f52f5: Already exists

cdeb4de41efe: Pull complete

ce3594a70659: Pull complete

Digest: sha256:9c2d927f6e59fafcc930a5f738d713bde7d101cecd4e110a570a7b499d69ff68

Status: Downloaded newer image for vmware/harbor-jobservice:0.5.0

Pulling registry (library/registry:2.5.0)...

2.5.0: Pulling from library/registry

e110a4a17941: Pull complete

2ee5ed28ffa7: Pull complete

d1562c23a8aa: Pull complete

06ba8e23299f: Pull complete

802d2a9c64e8: Pull complete

Digest: sha256:1b68f0d54837c356e353efb04472bc0c9a60ae1c8178c9ce076b01d2930bcc5d

Status: Downloaded newer image for registry:2.5.0

Pulling proxy (nginx:1.11.5)...

1.11.5: Pulling from library/nginx

386a066cd84a: Pull complete

7bdb4b002d7f: Pull complete

49b006ddea70: Pull complete

Digest: sha256:9038d5645fa5fcca445d12e1b8979c87f46ca42cfb17beb1e5e093785991a639

Status: Downloaded newer image for nginx:1.11.5

Creating harbor-log

Creating harbor-db

Creating harbor-ui

Creating registry

Creating harbor-jobservice

Creating nginx


? ----Harbor has been installed and started successfully.----


Now you should be able to visit the admin portal at http://192.168.254.130.

For more details, please visit https://github.com/vmware/harbor .


root@harbor01 [ ~/harbor ]#

 

Harbor 関連のイメージです。

root@harbor01 [ ~/harbor ]# docker images

REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE

vmware/harbor-log          0.5.0               eebc987a891b        5 weeks ago         190.5 MB

vmware/harbor-jobservice   0.5.0               995368e96860        5 weeks ago         169.4 MB

vmware/harbor-ui           0.5.0               232a8664541a        5 weeks ago         233 MB

vmware/harbor-db           0.5.0               84c4ce8e9b6c        5 weeks ago         326.8 MB

nginx                      1.11.5              05a60462f8ba        9 weeks ago         181.4 MB

registry                   2.5.0               c6c14b3960bd        5 months ago        33.28 MB

 

Harbor を構成するコンテナ群が起動しています。

root@harbor01 [ ~/harbor ]# docker ps

CONTAINER ID        IMAGE                            COMMAND                  CREATED              STATUS              PORTS                                      NAMES

fd39c3b81527        nginx:1.11.5                     "nginx -g 'daemon off"   About a minute ago   Up About a minute   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   nginx

271c78450675        vmware/harbor-jobservice:0.5.0   "/harbor/harbor_jobse"   About a minute ago   Up About a minute                                              harbor-jobservice

8fd149da1a89        library/registry:2.5.0           "/entrypoint.sh serve"   About a minute ago   Up About a minute   5000/tcp                                   registry

ceb3f0f450dc        vmware/harbor-ui:0.5.0           "/harbor/harbor_ui"      About a minute ago   Up About a minute                                              harbor-ui

926e637f2f34        vmware/harbor-db:0.5.0           "docker-entrypoint.sh"   About a minute ago   Up About a minute   3306/tcp                                   harbor-db

bd44e1d40ef7        vmware/harbor-log:0.5.0          "/bin/sh -c 'crond &&"   About a minute ago   Up About a minute   0.0.0.0:1514->514/tcp                      harbor-log

 

Harbor Registry へのプロジェクト作成。

Web ブラウザから Harbor の HTTP (TCP 80 番)ポートにアクセスします。

admin ユーザ(今回のパスワードは Harbor12345)でログインします。

harbor-01.png

 

「Projects」を開きます。

harbor-02.png

 

「New Project」をクリックします。

harbor-03.png

 

Project の名前を入力して、「Save」します。今回は「pj01」という名前にしました。

harbor-04.png


pj01 が作成されました。

harbor-05.png

 

まだ pj01 にコンテナ イメージはありません。

harbor-06.png

 

Docker Host からのアクセスするための準備。

Docker Host から、Harbor に接続してみます。

今回は HTTP で接続するので、docker サービスの「--insecure-registry」に

Harbor のアドレス(今回は 192.168.254.130:80)を指定しておきます。


docker.serive を編集します。

root@photon01 [ ~ ]# cp /usr/lib/systemd/system/docker.service /etc/systemd/system/

root@photon01 [ ~ ]# vi /etc/systemd/system/docker.service

 

/etc/systemd/system/docker.service ファイルの内容

※赤字が、追記した部分です。

[Unit]

Description=Docker Daemon

Documentation=http://docs.docker.com

Wants=network-online.target

After=network-online.target docker-containerd.service

Requires=docker-containerd.service


[Service]

Type=notify

EnvironmentFile=-/etc/default/docker

ExecStart=/usr/bin/docker daemon $DOCKER_OPTS \

          --containerd /run/containerd.sock \

          --insecure-registry 192.168.254.130:80

ExecReload=/bin/kill -HUP $MAINPID

KillMode=process

Restart=on-abnormal

LimitNOFILE=1048576

LimitNPROC=1048576

LimitCORE=infinity


[Install]

WantedBy=multi-user.target

 

docker サービスを再起動して、設定を読み込みます。

root@photon01 [ ~ ]# systemctl daemon-reload

root@photon01 [ ~ ]# systemctl restart docker

root@photon01 [ ~ ]# docker info | grep Insecure -A2

Insecure Registries:

192.168.254.130:80

127.0.0.0/8

 

Harbor Registry を使用してみる。

まず Dcoker Host で、Docker Hub からイメージをダウンロードします。

今回は、Docker 公式の oraclelinux イメージをダウンロードしています。

root@photon01 [ ~ ]# docker pull oraclelinux

Using default tag: latest

latest: Pulling from library/oraclelinux

2c48edfee2a0: Pull complete

Digest: sha256:d447e228f31c753842d0de64a610a0b480b6c7b850c27813a67fd8e7a938ccee

Status: Downloaded newer image for oraclelinux:latest

root@photon01 [ ~ ]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

oraclelinux         latest              27a5201e554e        3 weeks ago         225.1 MB

 

Harbor にログインします。

今回は新規ユーザを作成していないので、admin ユーザを使用しています。

root@photon01 [ ~ ]# docker login 192.168.254.130:80

Username: admin

Password: ★パスワード入力

Login Succeeded

 

イメージに Harbor のアドレスと、先ほど作成したプロジェクト「pj01」を指定して
イメージに tag を追加します。

root@photon01 [ ~ ]# docker tag oraclelinux:latest 192.168.254.130:80/pj01/oraclelinux:latest

root@photon01 [ ~ ]# docker images

REPOSITORY                            TAG                 IMAGE ID            CREATED             SIZE

192.168.254.130:80/pj01/oraclelinux   latest              27a5201e554e        3 weeks ago         225.1 MB

oraclelinux                           latest              27a5201e554e        3 weeks ago         225.1 MB

 

Harbor に push します。

root@photon01 [ ~ ]# docker push 192.168.254.130:80/pj01/oraclelinux:latest

The push refers to a repository [192.168.254.130:80/pj01/oraclelinux]

89587f215a9e: Pushed

latest: digest: sha256:d447e228f31c753842d0de64a610a0b480b6c7b850c27813a67fd8e7a938ccee size: 529

 

Harbor の 「pj01」 Project にイメージが追加されました。

harbor-07.png

 

いったんローカルのイメージを削除してから・・・

root@photon01 [ ~ ]# docker rmi 192.168.254.130:80/pj01/oraclelinux oraclelinux

Untagged: 192.168.254.130:80/pj01/oraclelinux:latest

Untagged: 192.168.254.130:80/pj01/oraclelinux@sha256:d447e228f31c753842d0de64a610a0b480b6c7b850c27813a67fd8e7a938ccee

Untagged: oraclelinux:latest

Untagged: oraclelinux@sha256:d447e228f31c753842d0de64a610a0b480b6c7b850c27813a67fd8e7a938ccee

Deleted: sha256:27a5201e554e153245d57333ed509141512ff5c1aaf3552bc53a983a72210ef6

Deleted: sha256:89587f215a9e2692b6674efc86247e15d8cb0f04690712fbdcac63d136b95e2b

 

Harbor からイメージをダウンロードしてみます。

oraclelinux のイメージが Harbor からダウンロードされて、コンテナとして起動しました。

root@photon01 [ ~ ]# docker run -it 192.168.254.130:80/pj01/oraclelinux:latest /bin/bash

Unable to find image '192.168.254.130:80/pj01/oraclelinux:latest' locally

latest: Pulling from pj01/oraclelinux

2c48edfee2a0: Pull complete

Digest: sha256:d447e228f31c753842d0de64a610a0b480b6c7b850c27813a67fd8e7a938ccee

Status: Downloaded newer image for 192.168.254.130:80/pj01/oraclelinux:latest

[root@6bde61e50c8a /]# cat /etc/oracle-release

Oracle Linux Server release 7.3

 

このような感じで、registry イメージによるものと同様に使用することができて、

さらにアクセス制御機能などが追加されています。

 

VIC については、こちらもどうぞ。

vSphere Integrated Containers (VIC) 1.0 をためしてみる。

vSphere Integrated Containers Engine の vSphere Web Client Plug-In から見る Docker 情報。

 

以上。Harbor による Docker Registry 構築でした。

vSphere Integrated Containers Engine (VIC Engine) の vSphere Web Client Plug-In をインストールしてみました。

Flash 版の Web Client から、VIC Engine による Docker 環境の情報がわかるようになります。

Installing the vSphere Web Client Plug-in | VMware vSphere Integrated Containers Engine 0.8 Installation

 

VIC Engine については、こちらもどうぞ。

vSphere Integrated Containers (VIC) 1.0 をためしてみる。

 

今回の環境は下記です。

  • VMware vCenter Server Appliance 6.0 Update 2
  • vSphere Integrated Containers 1.0 (vSphere Integrated Containers Engine 0.8)

 

1. ソフトウェア のダウンロードと配置。

 

MyVMware サイトから、VIC Engine (vic_0.8.0-7315-c8ac999.tar.gz) をダウンロードして、

vCenter Server Appliance (VCSA) に転送しておきます。

※VCSA は、事前に SSH & bash でアクセスできるようにしておきます。

※Plug-In ファイルを配置する Web サーバは用意せず、VCSA のローカルからファイルをインストールします。

 

2. VCSA でのインストール。

 

今回の VCSA の名前は、(IP アドレスは 192.168.1.82) にしてあります。

VCSA に SSH でログインして、転送しておいた tar.gz ファイルを展開します。

vc01:~ # tar zxf vic_0.8.0-7315-c8ac999.tar.gz

vc01:~ # cd vic/ ui/VCSA/

vc01:~/vic/ui/VCSA # ls

configs  install.sh  uninstall.sh  upgrade.sh

 

config ファイルを vi などで編集して、VCENTER_IP に VCSA のアドレスを指定します。

今回は下記のようにしました。

vc01:~/vic/ui/VCSA # cat configs | head -n 2

# Enter the IP of the server running VCSA

VCENTER_IP="192.168.1.82"

 

インストールスクリプトを実行します。

途中で、VCSA の管理者ユーザ / パスワード、VCSA の root ユーザ / パスワード を入力します。

vc01:~/vic/ui/VCSA # ./install.sh

Enter your vCenter Administrator Username: administrator@vsphere.local

Enter your vCenter Administrator Password: ★パスワード入力

----------------------------------------

Checking if VCSA has Bash shell enabled...

Please enter the root password

----------------------------------------

The authenticity of host '192.168.1.82 (192.168.1.82)' can't be established.

ECDSA key fingerprint is 28:a4:8b:6a:c3:fd:8d:ef:b9:54:df:b2:f2:b6:6c:fb [MD5].

Are you sure you want to continue connecting (yes/no)? yes

root@192.168.1.82's password: ★パスワード入力

Reading plugin-package.xml...

----------------------------------------

Registering vCenter Server Extension...

----------------------------------------

INFO[2017-01-05T15:05:42Z] ### Installing UI Plugin ####

INFO[2017-01-05T15:05:42Z] Installing plugin

INFO[2017-01-05T15:05:51Z] Installed UI plugin

-------------------------------------------------------------

Copying plugin contents to the vSphere Web Client...

Please enter the root password

-------------------------------------------------------------

root@192.168.1.82's password: ★パスワード入力

--------------------------------------------------------------

Updating ownership of the plugin folders...

Please enter the root password

--------------------------------------------------------------


VMware vCenter Server Appliance 6.0.0.20000


Type: vCenter Server with an external Platform Services Controller


root@192.168.1.82's password: ★パスワード入力

Connection to 192.168.1.82 closed.

--------------------------------------------------------------

VIC UI registration was successful

 

インストールが成功しました。Plug-In のファイルが配置されています。

vc01:~ # ls -d /etc/vmware/vsphere-client/vc-packages/vsphere-client-serenity/*vic*

/etc/vmware/vsphere-client/vc-packages/vsphere-client-serenity/com.vmware.vicui.Vicui-0.8.0

 

Web Client のサービスを再起動しておきます。

vc01:~ # service vsphere-client restart

 

3. vSphere Web Client での確認。

 

vSphere Web Client にログインすると、

ホーム → 管理 → ソリューション → クライアント プラグイン

を開くと、VicUI がインストールされて、有効になっていることがわかります。

vic-web-plugin-0.png

 

Virtual Container Host (VCH) Endpoint VM のサマリ画面を開くと、

「Virtual Container Host」 に Docker Engine にアクセスするためのアドレスが表示されるようになります。

vic-web-plugin-1.png

 

Plug-In で表示されている「DOCKER_HOST=tcp://192.168.1.4:2376」に、

VIC とは関係ない Linux にインストールされている docker コマンドからアクセスしてみます。

[gowatana@client01 ~]$ rpm -qf `which docker`

docker-engine-1.12.2-1.0.1.el7.x86_64

 

環境変数を設定してから、docker run で nginx のコンテナを起動してみます。

[gowatana@client01 ~]$ export DOCKER_HOST=tcp://192.168.1.4:2376

[gowatana@client01 ~]$ export DOCKER_API_VERSION=1.23

[gowatana@client01 ~]$ docker --tls run -itd -p 80:80 nginx

Unable to find image 'nginx:latest' locally

Pulling from library/nginx

75a822cd7888: Pull complete

a3ed95caeb02: Pull complete

0aefb9dc4a57: Pull complete

046e44ee6057: Pull complete

Digest: sha256:2b942f7dd01a57ceeb5985a0472a2f92735eb81a910dec70c2183c61fc54298c

Status: Downloaded newer image for library/nginx:latest

33990261c1bd5b182962a621903dc66799577a25cdd284057518f9a2d029167e

[gowatana@client01 ~]$ docker --tls ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES

33990261c1bd        nginx               "nginx -g daemon off;"   2 minutes ago       Up 2 minutes        192.168.1.4:80->80/tcp   prickly_northcutt

 

vSphere Web Client から見ると、先ほどの VCH に、Container VM が作成されていて、

nginx のコンテナ イメージから起動されたことがわかるようになりました。

80 番ポートを公開したことも表示されます。

vic-web-plugin-2.png

 

Plug-In をインストールすることで、vSphere Web Client から

vSphere の管理者が VIC Engine の Docker に関わる情報を確認しやすくなります。

ただし、Web Client からコンテナの操作をできるわけではなく、

Docker コンテナは API や他のツールから利用することになります。

 

以上、VIC の Web Client Plug-In をインストールしてみる話でした。

日本の vExpert による 2016 アドベントカレンダー 11日目のブログ投稿です。

vExperts Advent Calendar 2016 - Adventar

 

VMware vSphere Integrated Containers 1.0 が、とうとう GA になりました。

ドキュメント

VMware vSphere Integrated Containers Documentation

ダウンロード

VMware vSphere Integrated Containers Download

 

さっそく、下記のような構成で

vSphere Integrated Containers Engine (VIC Engine)をインストールしてみました。

VIC 1.0 に含まれる VIC Engine のバージョンは、0.8 です。

VCH Endpoint VM と Container VM には、VMware Photon OS が使用されています。

  • vCenter Server Applience 6.0 U2
  • ESXi 6.0 U2
  • DRS 有効。
  • 分散仮想スイッチ(vDS)を使用。
  • vSAN データストアを使用。
  • VIC Machine は、Windows 10 PC から実行。
  • docker コマンドは、Oracle Linux 7 から実行。

vE-Advent2016-VIC10GA.png

VIC Machine、docker コマンドは Windows / Linux / Mac から実行できます。

ちなみに Linux は Ubuntu でテストされているようですが、

偶然てもとの環境が Oracle Linux だったのでそれを使用しました。

 

1. Virtual Container Hosts (VCH) のデプロイ。

 

MyVMware サイトから、VIC Engine (vic_0.8.0-7315-c8ac999.tar.gz) をダウンロードして、C:\work に展開しました。

その中に含まれる vic-machine ユーティリティで VCH をデプロイします。

今回は、Windows 10 の PC から、VCH をデプロイしてみました。

PS C:\work\vic> dir

 

  ディレクトリ: C:\work\vic

 

Mode                LastWriteTime         Length Name

----                -------------         ------ ----

d-----       2016/12/11     13:46                ui

-a----       2016/12/04      4:30      127401984 appliance.iso

-a----       2016/12/04      4:30       65732608 bootstrap.iso

-a----       2016/12/04      4:29         209570 LICENSE

-a----       2016/12/04      4:29             57 README

-a----       2016/12/04      4:29       35095088 vic-machine-darwin

-a----       2016/12/04      4:29       35557968 vic-machine-linux

-a----       2016/12/04      4:29       35261952 vic-machine-windows.exe

-a----       2016/12/04      4:29       31672144 vic-ui-darwin

-a----       2016/12/04      4:29       31972920 vic-ui-linux

-a----       2016/12/04      4:29       31675392 vic-ui-windows.exe

 

 

Windows 用の vic-machine を使用します。

PS C:\work\vic> .\vic-machine-windows.exe

NAME:

   vic-machine-windows.exe - Create and manage Virtual Container Hosts


USAGE:

   vic-machine-windows.exe [global options] command [command options] [arguments...]


VERSION:

   v0.8.0-7315-c8ac999


COMMANDS:

     create   Deploy VCH

     delete   Delete VCH and associated resources

     ls       List VCHs

     inspect  Inspect VCH

     version  Show VIC version information

     debug    Debug VCH


GLOBAL OPTIONS:

   --help, -h     show help

   --version, -v  print the version

 

それでは、VCH をデプロイします。

今回の vCenter のアドレスは 192.168.1.82 です。

VCH から vCenter の名前解決ができないとエラーになるので、今回は IP アドレスで指定しています。

実行結果から、VCH に付与された IP アドレスがわかります。

 

下記の例では未設定ですが、vic-machine 実行前に、ESXi Firewall ルールを開放しておきます。

vSphere Integrated Containers (VIC) 1.0 むけの ESXi Firewall Rule 設定。

PS C:\work\vic> .\vic-machine-windows.exe create --target 192.168.1.82 --user "administrator@vsphere.local" --password <パスワード> --compute-resource cluster-vsan01 --bridge-network vic-bridge --public-network dvpg-vlan-0000 --image-store vsanDatastore --no-tlsverify --force

[34mINFO[0m[2016-12-11T17:02:29+09:00] ### Installing VCH ####

[33mWARN[0m[2016-12-11T17:02:29+09:00] Using administrative user for VCH operation - use --ops-user to improve security (see -x for advanced help)

[34mINFO[0m[2016-12-11T17:02:29+09:00] Loaded server certificate virtual-container-host\server-cert.pem

[33mWARN[0m[2016-12-11T17:02:29+09:00] Configuring without TLS verify - certificate-based authentication disabled

[34mINFO[0m[2016-12-11T17:02:29+09:00] Validating supplied configuration

[34mINFO[0m[2016-12-11T17:02:29+09:00] vDS configuration OK on "vic-bridge"

[34mINFO[0m[2016-12-11T17:02:29+09:00] Firewall status: ENABLED on "/dc01/host/cluster-vsan01/hv-i21.godc.lab"

[33mWARN[0m[2016-12-11T17:02:29+09:00] Firewall configuration on "/dc01/host/cluster-vsan01/hv-i21.godc.lab" may prevent connection on dst 2377/tcp outbound with allowed IPs: [192.168.51.239 192.168.51.161]

[34mINFO[0m[2016-12-11T17:02:29+09:00] Firewall status: ENABLED on "/dc01/host/cluster-vsan01/hv-i22.godc.lab"

[33mWARN[0m[2016-12-11T17:02:29+09:00] Firewall configuration on "/dc01/host/cluster-vsan01/hv-i22.godc.lab" may prevent connection on dst 2377/tcp outbound with allowed IPs: [192.168.51.161 192.168.51.239]

[34mINFO[0m[2016-12-11T17:02:29+09:00] Firewall status: ENABLED on "/dc01/host/cluster-vsan01/hv-i23.godc.lab"

[33mWARN[0m[2016-12-11T17:02:29+09:00] Firewall configuration on "/dc01/host/cluster-vsan01/hv-i23.godc.lab" may prevent connection on dst 2377/tcp outbound with allowed IPs: [192.168.51.161 192.168.51.239]

[33mWARN[0m[2016-12-11T17:02:29+09:00] Unable to fully verify firewall configuration due to DHCP use on management network

[33mWARN[0m[2016-12-11T17:02:29+09:00] VCH management interface IP assigned by DHCP must be permitted by allowed IP settings

[33mWARN[0m[2016-12-11T17:02:29+09:00] Firewall allowed IP configuration may prevent required connection on hosts:

[33mWARN[0m[2016-12-11T17:02:29+09:00] "/dc01/host/cluster-vsan01/hv-i21.godc.lab"

[33mWARN[0m[2016-12-11T17:02:29+09:00] "/dc01/host/cluster-vsan01/hv-i22.godc.lab"

[33mWARN[0m[2016-12-11T17:02:29+09:00] "/dc01/host/cluster-vsan01/hv-i23.godc.lab"

[34mINFO[0m[2016-12-11T17:02:29+09:00] Firewall must permit dst 2377/tcp outbound to the VCH management interface

[34mINFO[0m[2016-12-11T17:02:30+09:00] License check OK on hosts:

[34mINFO[0m[2016-12-11T17:02:30+09:00] "/dc01/host/cluster-vsan01/hv-i21.godc.lab"

[34mINFO[0m[2016-12-11T17:02:30+09:00] "/dc01/host/cluster-vsan01/hv-i22.godc.lab"

[34mINFO[0m[2016-12-11T17:02:30+09:00] "/dc01/host/cluster-vsan01/hv-i23.godc.lab"

[34mINFO[0m[2016-12-11T17:02:30+09:00] DRS check OK on:

[34mINFO[0m[2016-12-11T17:02:30+09:00] "/dc01/host/cluster-vsan01/Resources"

[34mINFO[0m[2016-12-11T17:02:30+09:00]

[34mINFO[0m[2016-12-11T17:02:30+09:00] Creating virtual app "virtual-container-host"

[34mINFO[0m[2016-12-11T17:02:31+09:00] Creating appliance on target

[34mINFO[0m[2016-12-11T17:02:31+09:00] Network role "client" is sharing NIC with "public"

[34mINFO[0m[2016-12-11T17:02:31+09:00] Network role "management" is sharing NIC with "public"

[34mINFO[0m[2016-12-11T17:02:34+09:00] Uploading images for container

[34mINFO[0m[2016-12-11T17:02:34+09:00] "bootstrap.iso"

[34mINFO[0m[2016-12-11T17:02:34+09:00] "appliance.iso"

[34mINFO[0m[2016-12-11T17:02:46+09:00] Waiting for IP information

[34mINFO[0m[2016-12-11T17:03:02+09:00] Waiting for major appliance components to launch

[34mINFO[0m[2016-12-11T17:03:02+09:00] Checking VCH connectivity with vSphere target

[34mINFO[0m[2016-12-11T17:03:03+09:00] vSphere API Test: https://192.168.1.82 vSphere API target responds as expected

[34mINFO[0m[2016-12-11T17:03:16+09:00] Initialization of appliance successful

[34mINFO[0m[2016-12-11T17:03:16+09:00]

[34mINFO[0m[2016-12-11T17:03:16+09:00] VCH Admin Portal:

[34mINFO[0m[2016-12-11T17:03:16+09:00] https://192.168.1.5:2378

[34mINFO[0m[2016-12-11T17:03:16+09:00]

[34mINFO[0m[2016-12-11T17:03:16+09:00] Published ports can be reached at:

[34mINFO[0m[2016-12-11T17:03:16+09:00] 192.168.1.5

[34mINFO[0m[2016-12-11T17:03:16+09:00]

[34mINFO[0m[2016-12-11T17:03:16+09:00] Docker environment variables:

[34mINFO[0m[2016-12-11T17:03:16+09:00] DOCKER_HOST=192.168.1.5:2376

[34mINFO[0m[2016-12-11T17:03:16+09:00]

[34mINFO[0m[2016-12-11T17:03:16+09:00] Environment saved in virtual-container-host/virtual-container-host.env

[34mINFO[0m[2016-12-11T17:03:16+09:00]

[34mINFO[0m[2016-12-11T17:03:16+09:00] Connect to docker:

[34mINFO[0m[2016-12-11T17:03:16+09:00] docker -H 192.168.1.5:2376 --tls info

[34mINFO[0m[2016-12-11T17:03:16+09:00] Installer completed successfully

PS C:\work\vic>

 

この先の Docker コマンドのアクセスで、デプロイした VCH の IP アドレスをエンドポイントとして指定します。

VCH の IP アドレスは後から確認することもできます。

 

vCenter の thumbprint を指定しないとエラーになるので・・・

PS C:\work\vic> .\vic-machine-windows.exe ls --target 192.168.1.82 --user "administrator@vsphere.local" --password <パスワード> --compute-resource cluster-vsan01

[34mINFO[0m[2016-12-11T17:47:38+09:00] ### Listing VCHs ####

[31mERRO[0m[2016-12-11T17:47:38+09:00] Failed to verify certificate for target=192.168.1.82 (thumbprint=A4:98:53:2F:68:11:01:06:08:48:AD:68:33:95:0D:6F:30:10:4D:D1)

[31mERRO[0m[2016-12-11T17:47:38+09:00] List cannot continue - failed to create validator: x509: certificate signed by unknown authority

[31mERRO[0m[2016-12-11T17:47:38+09:00] --------------------

[31mERRO[0m[2016-12-11T17:47:38+09:00] vic-machine-windows.exe failed: list failed

 

thumbprint を指定して「vic-machine-windows ls」コマンドを実行します。

VCH の仮想アプライアンスが VM (vm-527) としてデプロイされていることが分かります。

PS C:\work\vic> .\vic-machine-windows.exe ls --target 192.168.1.82 --user "administrator@vsphere.local" --password <パスワード> --compute-resource cluster-vsan01 --thumbprint A4:98:53:2F:68:11:01:06:08:48:AD:68:33:95:0D:6F:30:10:4D:D1

[34mINFO[0m[2016-12-11T17:48:00+09:00] ### Listing VCHs ####

[34mINFO[0m[2016-12-11T17:48:00+09:00] Validating target

[34mINFO[0m[2016-12-11T17:48:00+09:00] Validating compute resource

 

ID            PATH                                       NAME                          VERSION

vm-527        /dc01/host/cluster-vsan01/Resources        virtual-container-host        v0.8.0-7315-c8ac999

 

エンドポイント のアドレスも確認できます。

PS C:\work\vic> .\vic-machine-windows.exe inspect --target 192.168.1.82 --user "administrator@vsphere.local" --password <パスワード> --compute-resource cluster-vsan01 --thumbprint A4:98:53:2F:68:11:01:06:08:48:AD:68:33:95:0D:6F:30:10:4D:D1

[34mINFO[0m[2016-12-11T17:50:09+09:00] ### Inspecting VCH ####

[34mINFO[0m[2016-12-11T17:50:09+09:00]

[34mINFO[0m[2016-12-11T17:50:09+09:00] VCH ID: VirtualMachine:vm-527

[34mINFO[0m[2016-12-11T17:50:09+09:00]

[34mINFO[0m[2016-12-11T17:50:09+09:00] Installer version: v0.8.0-7315-c8ac999

[34mINFO[0m[2016-12-11T17:50:09+09:00] VCH version: v0.8.0-7315-c8ac999

[33mWARN[0m[2016-12-11T17:50:10+09:00] Unable to identify address acceptable to host certificate

[34mINFO[0m[2016-12-11T17:50:10+09:00]

[34mINFO[0m[2016-12-11T17:50:10+09:00] VCH Admin Portal:

[34mINFO[0m[2016-12-11T17:50:10+09:00] https://192.168.1.5:2378

[34mINFO[0m[2016-12-11T17:50:10+09:00]

[34mINFO[0m[2016-12-11T17:50:10+09:00] Published ports can be reached at:

[34mINFO[0m[2016-12-11T17:50:10+09:00] 192.168.1.5

[34mINFO[0m[2016-12-11T17:50:10+09:00]

[34mINFO[0m[2016-12-11T17:50:10+09:00] Docker environment variables:

[34mINFO[0m[2016-12-11T17:50:10+09:00] DOCKER_HOST=192.168.1.5:2376

[34mINFO[0m[2016-12-11T17:50:10+09:00]

[34mINFO[0m[2016-12-11T17:50:10+09:00] Connect to docker:

[34mINFO[0m[2016-12-11T17:50:10+09:00] docker -H 192.168.1.5:2376 --tls info

[34mINFO[0m[2016-12-11T17:50:10+09:00] Completed successfully

PS C:\work\vic>

 

VCH は、vApp としてデプロイされます。デフォルトでは、

「virtual-container-host」という名前の vApp に、

「virtual-container-host」という名前(vApp と同名)の VCH Endpoint VM がデプロイされます。

vic-10ga-11.png


VCH Endpoint VM は、ISO ブートになっています。

vic-10ga-12.png

 

2. Docker コンテナの起動。

 

docker コマンドで、コンテナを起動してみます。

今回は、Oracle Linux 7 から VCH Endpoint にアクセスしています。

クライアントとして使用する Docker は、Oracle Linux Public Yum サーバにある RPM でインストールしたものです。

[gowatana@client01 ~]$ cat /etc/oracle-release

Oracle Linux Server release 7.3

[gowatana@client01 ~]$ docker -v

Docker version 1.12.2, build a8c3fe4

 

VCH のエンドポイントを指定して docker コマンドを実行します。

クライアント側とサーバ側とで API バージョンが異なり、エラーになるので・・・

[gowatana@client01 ~]$ docker -H 192.168.1.5:2376 --tls info

Error response from daemon: client is newer than server (client API version: 1.24, server API version: 1.23)

 

環境変数「DOCKER_API_VERSION」を指定すると、docker コマンドが実行できるようになります。

docker info コマンドで、VCH 側の Docker の情報が表示されます。

[gowatana@client01 ~]$ export DOCKER_API_VERSION=1.23

[gowatana@client01 ~]$ docker -H 192.168.1.5:2376 --tls info

Containers: 0

Running: 0

Paused: 0

Stopped: 0

Images: 0

Server Version: v0.8.0-7315-c8ac999

Storage Driver: vSphere Integrated Containers v0.8.0-7315-c8ac999 Backend Engine

VolumeStores:

vSphere Integrated Containers v0.8.0-7315-c8ac999 Backend Engine: RUNNING

VCH mhz limit: 111 Mhz

VCH memory limit: 52.32 GiB

VMware Product: VMware vCenter Server

VMware OS: linux-x64

VMware OS version: 6.0.0

Plugins:

Volume:

Network: bridge

Swarm:

NodeID:

Is Manager: false

Node Address:

Security Options:

Operating System: linux-x64

OSType: linux-x64

Architecture: x86_64

CPUs: 111

Total Memory: 52.32 GiB

Name: virtual-container-host

ID: vSphere Integrated Containers

Docker Root Dir:

Debug Mode (client): false

Debug Mode (server): false

Registry: registry-1.docker.io

[gowatana@client01 ~]$

 

それでは、Nginx のコンテナを起動してみます。

使用するコンテナ イメージは、Docker Hub オフィシャルの Nginx イメージです。

[gowatana@client01 ~]$ docker -H 192.168.1.5:2376 --tls pull nginx

Using default tag: latest

Pulling from library/nginx

386a066cd84a: Pull complete

a3ed95caeb02: Pull complete

386dc9762af9: Pull complete

d685e39ac8a4: Pull complete

Digest: sha256:e56314fa645f9e8004864d3719e55a6f47bdee2c07b9c8b7a7a1125439d23249

Status: Downloaded newer image for library/nginx:latest

[gowatana@client01 ~]$ docker -H 192.168.1.5:2376 --tls images nginx

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

nginx               latest              19d21b7e5b14        12 days ago         181.5 MB

 

コンテナを web01 という名前で起動します。

[gowatana@client01 ~]$ docker -H 192.168.1.5:2376 --tls run -d -p 8080:80 --name web01 nginx

3d4a7cca39dd2511aac38f5550ea9d584def35b7e243546770204d6a3b715a20

[gowatana@client01 ~]$ docker -H 192.168.1.5:2376 --tls ps

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                      NAMES

3d4a7cca39dd        nginx               "nginx -g daemon off;"   About a minute ago   Up About a minute   192.168.1.5:8080->80/tcp   web01

 

コンテナ VM が作成されました。

vic-10ga-21.png

 

コンテナの UUID が、そのまま VM 名に付与されます。

コンテナ VM には、172.16.0.0 の IP アドレスが自動付与されています。

vic-10ga-22.png

 

コンテナを追加で起動すると・・・

[gowatana@client01 ~]$ docker -H 192.168.1.5:2376 --tls run -d -p 8081:80 --name web02 nginx

9a60d8755ebb952ce4d4272fadb33125de09f8536187e41142f7fbac53555444

[gowatana@client01 ~]$ docker -H 192.168.1.5:2376 --tls ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES

9a60d8755ebb        nginx               "nginx -g daemon off;"   11 minutes ago      Up 10 minutes       192.168.1.5:8081->80/tcp   web02

3d4a7cca39dd        nginx               "nginx -g daemon off;"   About an hour ago   Up About an hour    192.168.1.5:8080->80/tcp   web01

[gowatana@client01 ~]$

 

コンテナ VM も増えます。

vic-10ga-23.png

 

3. コンテナのサービスへのアクセス。

 

VIC では、コンテナ VM ではなく VCH エンドポイントを経由して、コンテナの提供するサービスにアクセスします。

web01 コンテナの起動時に「-p 8080:80」とポート番号を指定していました。

コンテナ VM ではなく、VCH エンドポイントのアドレス (192.168.1.5) の 8080 番ポートにアクセスすると、
Nginx の Welcome ページが表示されます。

vic-10ga-31.png

 

ちょうど VIC 1.0 が GA されたので、いきおいでためしてみましたが

機会をみつけて、活用方法を探ってみたいと思います。

たしかに、VIC は既存の vSphere 環境を殆ど構成変更することなく利用することができます。

 

以上、VIC Engine をためしてみる話でした。

 

こちらもどうぞ。

vSphere Integrated Containers Engine の vSphere Web Client Plug-In から見る Docker 情報。

日本の vExpert による 2016 アドベントカレンダー 4日目のブログ投稿です。

vExperts Advent Calendar 2016 - Adventar

 

昨年のアドベントカレンダーにひきつづき、VMware のコミュニティサイトである VMware Technology Network (VMTN) にある

日本語フォーラム (VMTNJ) の様子を紹介してみようと思います。

vmtnj-2016.png

 

昨年の投稿はこちらです。

VMware のコミュニティサイトと、日本語 Online Forum の様子。

 

 

VMTNJ の 2016年の様子。

 

ざっくり、VNTNJ のディスカッションを一覧してみようと思います。

うまいクライアントツールが思いつかなかったので、とりあえず PowerShell で RSS を取得しました。

Japan」 のディスカッション一覧です。

ちなみに今年の夏ごろ、日本語フォーラムの名前が

さりげなく「Japan Online forum」から、「Japan」に変更されていました。

PS C:\> $rss = Invoke-WebRequest -Method Get -Uri "https://communities.vmware.com/community/feeds/threads?community=2765"

PS C:\> $content = [xml]$rss.Content

PS C:\> $content.rss.channel.title

VMware Communities : Discussion List - Japan

 

昨年12月から見てみると、下記のディスカッションが投稿されていました。

VMTNJ では、とくに製品/機能などによる縛りがないので、投稿される内容はさまざまです。

PS C:\> $items = $content.rss.channel.Item

PS C:\> $items2016 = $items | select @{N="Date";E={(Get-Date $_.date)}},title | where {$_.Date -ge "2015-12-01"}

PS C:\> $items2016 | sort Date

 

Date                title

----                -----

2015/12/03 22:54:16 esxi6.0にてパスワードルールの変更を行う方法について

2015/12/04 19:22:22 vCSA6.0とvDP6.0の挙動について

2015/12/09 15:40:19 get-statで-startをうまく使用するには

2015/12/11 0:41:38  デプロイ中にフリーズする

2015/12/15 21:17:27 【vSphere5.1】仮想基盤からゲストOSへの通知について

2015/12/17 18:44:43 vDPのログに関して

2015/12/17 19:00:27 vDPのヘルスチェック時に出るログについて

2015/12/20 20:10:32 system-config-samba が動かない。

2015/12/21 10:02:47 vSphere ESXi6.0U1のホストシャットダウンについて

2015/12/21 21:54:28 VMware Remote Console 8 のダウンロードができない

2016/01/08 12:29:27 Ovaファイルデプロイ時、内蔵ディスクと外付けディスク(ファイバーチャンネル)でサイズチェックが違いますか?

2016/01/12 23:12:18 内蔵HDのRDMについて

2016/01/13 12:37:36 データストア上のファイルと、インベントリ上の仮想マシンの対応の一覧

2016/01/13 23:21:36 VmdkをRDMに変換するのにうまい方法ありませんか?

2016/01/19 11:24:19 毎回VMWare Tools7.7.0の更新メッセージが表示される

2016/01/20 16:53:56 vCenterのアラーム設定について

2016/01/21 15:33:32 USBHDがゲストに認識されない

2016/01/29 15:56:15 ネットワークパーティションと隔離状態について

2016/02/02 17:35:56 VSAN環境のdisk I/Oについて

2016/02/03 0:36:20  windows10 32bit システム修復ディスク、回復ドライブの作成

2016/02/04 22:26:11 管理ネットワークのハートビート間隔について

2016/02/05 23:27:21 vCSAとNICチーミングの関係について

2016/02/10 23:02:19 vSphere HAによるフェイルオーバー対象について

2016/02/12 19:02:17 vSphere HA構成につきまして

2016/02/16 18:55:38 仮想ホストへのFireWallの設定

2016/02/19 23:12:12 ゲストからネットワークに接続できません

2016/02/23 5:28:29  [PowerCLI]Export-VAppで異常終了

2016/03/03 20:51:37 DBサーバを仮想化することによるリスクにつきまして

2016/03/25 10:52:53 ホストOSのハングアップについて(VMware Workstation 12 Pro)

2016/04/06 16:54:21 ホストにUSBハードディスクを認識させる方法

2016/04/13 21:01:38 仮想マシン設定:サウンドカードのエラーの解決方法と最適なプロセッサの設定について

2016/04/15 19:15:36 vSphere Client vSphere HA保護表示が正しくない

2016/04/21 17:33:57 vmware converter が2%でfault.clonefault.summary エラーになる

2016/04/27 11:43:08 ホストOSとディスプレイの解像度について

2016/04/29 13:36:01 VMware Tools のインストールについて

2016/05/09 14:20:23 Workstation Pro 12.1.1でvmdkのparentFileNameHintが絶対パスに戻った

2016/05/11 16:37:54 ネットワーク構成につきまして

2016/05/19 9:21:55  仮想マシンは選択されたレイアウトに変更出来ませんでした

2016/05/20 12:00:57 LinuxマシンのP2Vについて

2016/05/24 15:05:48 ホストOS/ゲストOSとも Windows7 のブリッジ接続で「認識されていないネットワーク」となってしまい外部接続ができない。

2016/06/06 9:39:08  vCenterHeartBeat構成時のパッシブノードのシャットダウン手順について

2016/06/10 17:38:18 USBデバイス接続エラー

2016/06/13 12:51:24 HA構成下で、仮想マシンで動作させているアプル更新方法について

2016/06/15 10:50:49 Conncetion ServerからvCenterが登録できない

2016/07/05 13:39:34 HA構成+物理SANのRDM構成について

2016/07/08 13:21:01 ベータプログラムについて

2016/07/14 10:27:24 Failed to get disk info.

2016/07/18 14:18:50 Workstation Player 12でVM ライブラリに戻れない

2016/07/30 13:05:09 指定されたパラメータの 1 つが無効です。

2016/08/07 15:28:50 VMホストとVMゲストOSの間でコピペができなくなりました。

2016/08/11 9:57:12  仮想スイッチと物理NICが結びつかない?

2016/08/18 14:45:02 Horizon 7ではLinuxをRDSとして利用できるか?

2016/08/22 19:42:36 コマンドラインでのvSphereHAの無効化

2016/08/29 12:00:15 vSphereHA 仮想マシンの障害試験について

2016/08/30 11:37:17 vCenterServerの認証ログについて

2016/09/01 19:37:15 VMwareESXi5.1 All Path Down 発生

2016/09/02 12:09:27 XPでUSB3.0を使いたい

2016/09/05 16:02:34 DRS(アフィニティルール)設定時のvCenterServer障害(vCenter搭載ホスト障害)について

2016/09/08 10:11:44 ESXiで時刻同期ができていない

2016/09/21 22:16:14 VMware 3Dグラフィックスと、ビデオカードの関係について教えてください。

2016/10/02 18:19:12 無償版vSphere Clientを高解像度モニタで使用するとコンソール表示が1/4しかされなくなる

2016/10/09 15:14:09 VMware Workstation Playerへ割当てる物理リソースを指定する方法

2016/10/16 14:31:18 VMware Fusionの共有仮想マシンを元に戻すには

2016/10/21 14:03:01 VMWareFusion8:ゲストsnowlepard(MacOS10.6)

2016/10/21 21:20:19 VMwareESXi5.1上の仮想マシンの時刻同期について

2016/11/09 15:44:12 esxi仮想マシンの設定状況の確認方法について

2016/12/01 14:32:34 vmdkファイルの圧縮時にCould not openで圧縮ができない

2016/12/02 10:06:55 vSphere5.5でのStorage vMotion要件について

2016/12/02 23:36:17 VMwareESXi 5.1 NIC チーミング構成で のNIC交換

 

ディスカッションの投稿は、だいたい 1年間で 70件弱ありました。

以前は年間 100~120件くらい投稿があったので、今年は少ない気がします。

PS C:\> $items2016.Count

69

PS C:\> $items2016 | group {Get-Date $_.Date -f "yyyy-MM"} | select Name,Count | sort Name

 

Name    Count

----    -----

2015-12    10

2016-01     8

2016-02     9

2016-03     2

2016-04     6

2016-05     5

2016-06     4

2016-07     5

2016-08     6

2016-09     5

2016-10     5

2016-11     1

2016-12     3

 

 

PS C:\>

 

ちなみに、以前は、日本語の VMware 社のコーポレートサイトから VMTNJ に直接リンクがあったのですが、

今年夏頃のサイトリニューアルから、VMTN トップページへのリンクになってしまい、

VMTN への導線がなくなってしまったのも件数減に効いているのかもしれません。

 

個人的に思っていること。

 

最近、とくに VMTN の利用者がすくない気がしています。

個人的には、実際にもろもろの課題が発生したら(一例として)下記のようになりそうと思えたりするので、

VMTNJ の役割がそもそも悩ましい気もします。

(ただし、末尾の2つは、私はアクセスできないので噂ベースですが・・・)

  • 各製品で技術レベルが高い話をするとなると、VMTNの製品ごとのフォーラム(英語)があるので、そちらに投稿するはず。
  • 商用環境での障害対応や製品不具合は、責任ある回答が必要なので、サポート契約があるはずなので製品サポートに問い合わせることになるはず。
  • 導入検討段階であれば、(営業担当を介してになるかもしれないが)プリセールス的な人に聞けたりするのではないか。
  • 設計、構築、運用など各フェーズで、技術レベルの保証された支援が必要な場合は、いわゆる SIer や、VMware のプロフェッショナルサービスの出番・・・
  • VMware 製品のカスタマ(ユーザ)同士のディスカッションでれば、日本であれば、VMUG 掲示板が活発(らしい。VMTNJ よりは・・・)
  • VMware のパートナー企業であれば、そちらの質問パスがある(らしい・・・)

 

それでも、誰でも、日本語で気軽に VMware製品の話題について投稿できるフォーラムがあることには意義があると思います。

個人的には、(返信が付くかは別として)もっと下記のような投稿がされてもいいのではないかと思ったりもします。

  • 個人的に勉強していて、そこでの素朴な疑問。
  • 社内や顧客先で本格的に検討するまでに気になったこと。
  • VMware の製品と、他社製品を組み合わせて使ってみてどちらの製品サポートに聞いても悩ましいものをダメもとで聞いてみる。
  • サポート切れている製品の、「藁をもつかむ」的なもの。
  • Tech Preview (製品サポートにはまだ聞けない機能や、VMware Labs - Flings)などについて聞いてみる。

 

現状、あまり活発とはいえないところではありますが、

せっかく vExpert なので VMTNJ を書き支えたいと思います!

 

以上、VMTNJ の 2016年の様子でした。

今年も、日本の vExpert によるアドベントカレンダーが始まります。

クリスマスの12/25 まで、VMwareにかかわる何かが1日1投稿される予定ですので、

お楽しみいただければと思います。

vExperts Advent Calendar 2016 - Adventar

 

今回は、PowerShell での VMware NSX 操作を簡易化する PowerNSX を紹介します。

使用例として、NSX の論理スイッチを作成して VM を接続してみます。

下記のような感じで、ls-test-01 という論理スイッチを作成して、photon01 と photon02 という VM を接続します。

vE-Advent2016-PowerNSX-1.png

 

 

PowerNSX について。

 

PowerNSX は、VMware NSX API を抽象化してくれる PowerShell モジュールです。
GitHub で公開されています。

GitHub - vmware/powernsx

 

VMware 社から公式にサポートされている製品ではありませんが、PowerCLI と組み合わせて使用できるのでとても便利です。

使用方法は、下記の Wiki が参考になります。

https://github.com/vmware/powernsx/wiki

 

PowerShell か PowerCLI のウインドウから下記のリンクにあるコマンドラインを実行することでインストールできます。

これは、インストールスクリプトをダウンロードして実行しています。

GitHubhttps://github.com/vmware/powernsx/wiki/Installing-PowerNSX

 

PowerShell コマンドレットは基本的に「Verb-Noun」という名前となっているので、

それをもとに PowerNSX モジュールに含まれるコマンドレットをざっくりまとめてみました。

NSX の機能に幅広く対応していて、便利そうな様子を感じていただけるのではないかと思います。

PS C:\work> gcm -Module PowerNSX | group Noun | select Name,{$_.Group.Verb -join ","} | sort Name


Name                               $_.Group.Verb -join ","

----                               -----------------------

NsxAddressSpec                     New

NsxBackingDVSwitch                 Get

NsxBackingPortGroup                Get

NsxCli                             Invoke

NsxCliDfwAddrSet                   Get

NsxCliDfwFilter                    Get

NsxCliDfwRule                      Get

NsxCluster                         Install,Remove

NsxClusterStatus                   Get

NsxClusterVxlanConfig              New,Remove

NsxController                      Get,New

NsxEdge                            Copy,Get,New,Remove,Repair,Set

NsxEdgeBgp                         Get,Set

NsxEdgeBgpNeighbour                Get,New,Remove

NsxEdgeCertificate                 Get,Remove

NsxEdgeCsr                         Get,New

NsxEdgeInterface                   Clear,Get,Set

NsxEdgeInterfaceAddress            Add,Get,Remove

NsxEdgeInterfaceSpec               New

NsxEdgeNat                         Get,Set

NsxEdgeNatRule                     Get,New,Remove

NsxEdgeOspf                        Get,Set

NsxEdgeOspfArea                    Get,New,Remove

NsxEdgeOspfInterface               Get,New,Remove

NsxEdgePrefix                      Get,New,Remove

NsxEdgeRedistributionRule          Get,New,Remove

NsxEdgeRouting                     Get,Set

NsxEdgeSelfSignedCertificate       New

NsxEdgeSsh                         Disable,Enable

NsxEdgeStaticRoute                 Get,New,Remove

NsxEdgeSubInterface                Get,New,Remove

NsxEdgeSubInterfaceSpec            New

NsxFirewallExclusionListMember     Add,Get,Remove

NsxFirewallRule                    Get,New,Remove

NsxFirewallSavedConfiguration      Get

NsxFirewallSection                 Get,New,Remove

NsxIpPool                          Get,New

NsxIpSet                           Get,New,Remove

NsxLoadBalancer                    Get,Set

NsxLoadBalancerApplicationProfile  Get,New,Remove

NsxLoadBalancerApplicationRule     Get,New

NsxLoadBalancerMemberSpec          New

NsxLoadBalancerMonitor             Get,New,Remove

NsxLoadBalancerPool                Get,New,Remove

NsxLoadBalancerPoolMember          Add,Get,Remove

NsxLoadBalancerStats               Get

NsxLoadBalancerVip                 Add,Get,Remove

NsxLogicalRouter                   Get,New,Remove

NsxLogicalRouterBgp                Get,Set

NsxLogicalRouterBgpNeighbour       Get,New,Remove

NsxLogicalRouterInterface          Get,New,Remove,Set

NsxLogicalRouterInterfaceSpec      New

NsxLogicalRouterOspf               Get,Set

NsxLogicalRouterOspfArea           Get,New,Remove

NsxLogicalRouterOspfInterface      Get,New,Remove

NsxLogicalRouterPrefix             Get,New,Remove

NsxLogicalRouterRedistributionRule Get,New,Remove

NsxLogicalRouterRouting            Get,Set

NsxLogicalRouterStaticRoute        Get,New,Remove

NsxLogicalSwitch                   Get,New,Remove

NsxMacSet                          Get,New,Remove

NsxManager                         New,Set

NsxManagerBackup                   Get

NsxManagerComponentSummary         Get

NsxManagerNetwork                  Get

NsxManagerSsoConfig                Get

NsxManagerSyslogServer             Get

NsxManagerSystemSummary            Get

NsxManagerTimeSettings             Get

NsxManagerVcenterConfig            Get

NsxObject                          Export,Import

NsxRestMethod                      Invoke

NsxSecurityGroup                   Get,New,Remove

NsxSecurityGroupEffectiveMembers   Get

NsxSecurityGroupMember             Add,Remove

NsxSecurityPolicy                  Get,Remove

NsxSecurityTag                     Get,New,Remove

NsxSecurityTagAssignment           Get,New,Remove

NsxSegmentIdRange                  Get,New,Remove

NsxServer                          Connect,Disconnect

NsxService                         Get,New,Remove

NsxServiceGroup                    Get,New,Remove

NsxServiceGroupMember              Add,Get

NsxSpoofguardNic                   Get

NsxSpoofguardNicApproval           Grant,Revoke

NsxSpoofguardPolicy                Get,New,Publish,Remove

NsxSslVpn                          Get,Set

NsxSslVpnAuthServer                Get,New

NsxSslVpnClientInstallationPackage Get,New,Remove

NsxSslVpnIpPool                    Get,New,Remove

NsxSslVpnPrivateNetwork            Get,New,Remove

NsxSslVpnUser                      Get,New,Remove

NsxTransportZone                   Get,New,Remove

NsxVdsContext                      Get,New,Remove

NsxWebRequest                      Invoke

NsxWhereVMUsed                     Find

PowerNsx                           Update

PowerNsxVersion                    Get

XML                                Format

XmlElement                         Add



 

 

NSX Manager への接続。

 

PowerNSX は、NSX Manager に接続して操作します。

そして、PowerCLI 実行のため vCenter にも接続する必要があります。

「Connect-NsxServer」で NSX Manager に接続するときに、

NSX Manager のひもづく vCenter にも接続することができます。


例では、下記のサーバに接続しています。
※これはうちの VC / NSX Manager なので、実際にためす場合はホスト名を置き換えていただければと思います。

  • NSX Manager:  nsxmgr01.godc.lab
  • vCenter: vc01.godc.lab

NSX 6.2.4 の Manager に接続されています。

PS> Connect-NsxServer nsxmgr01.godc.lab


コマンド パイプライン位置 1 のコマンドレット Connect-NsxServer

次のパラメーターに値を指定してください:

Credential  ★ここで NSX Manager のユーザ/パスワードを入力する。


PowerNSX requires a PowerCLI connection to the vCenter server NSX is registered against for proper operation.

Automatically create PowerCLI connection to vc01.godc.lab?

[Y] Yes  [N] No  [?] ヘルプ (既定値は "Y"): Y


警告: Enter credentials for vCenter vc01.godc.lab


コマンド パイプライン位置 1 のコマンドレット Get-Credential

次のパラメーターに値を指定してください:

Credential  ★ここで vCenter のユーザ/パスワードを入力する。


Version             : 6.2.4

BuildNumber         : 4292526

Credential          : System.Management.Automation.PSCredential

Server              : nsxmgr01.godc.lab

Port                : 443

Protocol            : https

ValidateCertificate : False

VIConnection        : vc01.godc.lab

DebugLogging        : False

DebugLogFile        : C:\Users\gowatana\AppData\Local\Temp\PowerNSXLog-admin@nsxmgr01.godc.lab-2016_11_30_08_39_13.log


 

NSX の操作。

 

それでは、PowerNSX のコマンドレットで論理スイッチを作成いて、VM を接続してみます。

NSX の「論理スイッチ」の実体は VXLAN に対応した分散ポートグループなので、PowerCLI ではポートグループとしてあつかっています。


まず、論理スイッチを作成する Transport Zone の名前を調べておきます。

PS> Get-NsxTransportZone | select name


name

----

transport-zone-01

 


この Transport Zone に、論理スイッチ「ls-test-01」を作成します。

PS> $tz = Get-NsxTransportZone transport-zone-01

PS> New-NsxLogicalSwitch -TransportZone $tz -Name ls-test-01


objectId              : virtualwire-28

objectTypeName        : VirtualWire

vsmUuid               : 4209B0DF-0305-4636-49B2-75A0D86FC009

nodeId                : 1a3405be-3b88-47a4-a293-33d295087e10

revision              : 2

type                  : type

name                  : ls-test-01

description           :

clientHandle          :

extendedAttributes    :

isUniversal           : false

universalRevision     : 0

tenantId              :

vdnScopeId            : vdnscope-2

vdsContextWithBacking : vdsContextWithBacking

vdnId                 : 5001

guestVlanAllowed      : false

controlPlaneMode      : UNICAST_MODE

ctrlLsUuid            : 4caa5832-0d33-404c-b596-5f1c4c5ae9c6

macLearningEnabled    : false

 

 

論理スイッチの一覧が簡単に取得できます。直前で作成した ls-test-01 も表示されています。

PS> Get-NsxLogicalSwitch | select objectId,name,vdnId


objectId       name            vdnId

--------       ----            -----

virtualwire-18 ls-transit-001  5000

virtualwire-24 ls-tenant01-ext 5011

virtualwire-25 ls-tenant01-int 5012

virtualwire-26 ls-tenant02-ext 5013

virtualwire-27 ls-tenant02-int 5014

virtualwire-28 ls-test-01      5001

 

 

論理スイッチに VM を接続します。

今回、論理スイッチに接続する VM は「photon01」と「photon02」の 2台です。

PS> Get-VM -Name photon0[12] | sort Name


Name                 PowerState Num CPUs MemoryGB

----                 ---------- -------- --------

photon01             PoweredOn  1        2.000

photon02             PoweredOn  1        2.000


 

作成した論理スイッチ「ls-test-01」の実体となる分散ポートグループを調べます。

分散ポートグループは、「vxw-dvs-69-virtualwire-28-sid-5001-ls-test-01」 という名前で自動作成されています。

PS> Get-NsxLogicalSwitch -Name ls-test-01 | Get-NsxBackingPortGroup | select VDSwitch,Name


VDSwitch Name

-------- ----

vds01    vxw-dvs-69-virtualwire-28-sid-5001-ls-test-01

 


この論理スイッチ(分散ポートグループ)に、VM の1つ目の vNIC「Network adapter 1 」を接続します。

PS> $pg = Get-NsxLogicalSwitch -Name ls-test-01 | Get-NsxBackingPortGroup

PS> Get-VM -Name photon0[12] | sort Name | Get-NetworkAdapter -Name "Network adapter 1" | Set-NetworkAdapter -Portgroup $pg -Confirm:$false


 

Name                 Type       NetworkName  MacAddress         WakeOnLan

                                                                  Enabled

----                 ----       -----------  ----------         ---------

Network adapter 1    Vmxnet3    vxw-dvs-6... 00:50:56:89:e9:b7      False

Network adapter 1    Vmxnet3    vxw-dvs-6... 00:50:56:89:00:cf      False

 


それぞれの VM の「Network adapter 1」に分散ポートグループが接続されました。

PS> Get-VM -Name photon0[12] | sort Name | Get-NetworkAdapter | ft -AutoSize Parent,Name,NetworkName


Parent   Name              NetworkName

------   ----              -----------

photon01 Network adapter 1 vxw-dvs-69-virtualwire-28-sid-5001-ls-test-01

photon01 Network adapter 2 dvpg-vlan-0005

photon02 Network adapter 1 vxw-dvs-69-virtualwire-28-sid-5001-ls-test-01

photon02 Network adapter 2 dvpg-vlan-0005

 


分散ポートグループに対応する論理スイッチ「ls-test-01 」に、VM「photon01」 と「photon02」 が接続されたことが分かります。

PS C:\work> Get-NsxLogicalSwitch -Name ls-test-01 | Get-NsxBackingPortGroup | Get-VM


Name                 PowerState Num CPUs MemoryGB

----                 ---------- -------- --------

photon01             PoweredOn  1        2.000

photon02             PoweredOn  1        2.000

 

 

一般的な GUI 操作で使用する vSphere Web Client で見ると、このような状態になります。

vE-Advent2016-PowerNSX-2.png


NSX の操作は、vSphere Web Client からの操作だと画面遷移が多く煩雑になりやすいと思います。

一方、手作業で NSX API を実行するには、オブジェクト ID の確認や XML の作成などが面倒です。

この例のような感じで、PowerNSX を使用すると(特に PowerShell / PowerCLI 経験があれば)簡単に
NSX をコマンドライン操作できるようになります。


以上、PowerNSX の紹介でした。

NSX for vSphere 6.2.4 の分散ファイアウォール(DFW)は、マルチテナント機能を持っていません。

DFW で設定する FW ルールは、デフォルトでは NSX Manager で管理する DFW 環境すべてに適用されます。

そこで、DFW ルールの「適用先」を指定することでルールの適用先をしぼり、マルチテナントっぽくしてみました。

※vForum 2016 Tokyo の SDDCブースあたりで聞いた話を、実際にためしてみました・・・

 

完成イメージ。

いきなりですが、最初に DFW ルールの完成イメージです。

  • テナントを2つあるものとします。(tenant01 と tenant02)
  • テナントごとに、DFW ルールのセクション(dfw-tenant-01 と dfw-tenant-02)を作成してみました。
  • セクションに含まれるルールには、必ず「適用先」にセキュリティグループを含めます。
    それぞれのセキュリティグループには、テナント内の全 VM を含むようにします。
    FW ルールは上から評価されるため、別テナントの FW ルールのが適用されてしまわないように
    かならず「適用先」を設定するようにします。
  • Default でブロックするルールは、デフォルト セクションで設定することができますが、
    わかりやすいのであえてテナントごとに追加してみました。

dfw-mt-1-01.png

 

テナント / VM 構成について。

今回の構成では、2つテナントを用意してみました。
DFW の機能には関係ありませんが、わかりやすくテナントごとにフォルダ分けしてあります。

セキュリティグループで管理しやすいように、VMの名前を工夫しています。

  • tenant01 の VM → t01-~
  • tenant02 の VM → t02-~

dfw-mt-2-01.png

 

セキュリティグループの構成について。

テナントごとに、テナント内の全 VM を含むセキュリティグループを作成してみました。

それぞれのセキュリティグループには、3台の VM が含まれています。

dfw-mt-3-01.png

 

今回はテナントごとに VM 名の先頭文字列を決めてあるので、
セキュリティグループの「動的メンバーシップの定義」 で、
「仮想マシン名」 の 「先頭が」 「t01-」(tenant02では、「t02-」) と設定しています。

これで、命名規則どおりの VM であれば、セキュリティグループに自動追加されるようになります。

dfw-mt-3-02.png

 

DFW ルールの「適用先」 の設定について。

例として、tenant02 の DFW ルールの1つに、セキュリティグループ 「secgr-tenant-02」 を設定してみます。


DFW ルールの適用先は、デフォルトでは「Distributed Firewall」 となっています。

ここに、セキュリティグループを設定してみます。

dfw-mt-4-01.png

 

編集ボタンをクリックすると、

「Distributed Firewall がインストールされているすべてのクラスタにこのルールを適用します。」にチェックが入っています。

dfw-mt-4-02.png

 

このチェックを外すと適用先のオブジェクトタイプが選択できるようになるので、
「Security Group」 を選択します。

dfw-mt-4-03.png

 

セキュリティグループを選択しました。

dfw-mt-4-04.png

 

「変更の発行」 をクリックすると、DFW のルールが反映されます。

dfw-mt-4-05.png

 

テナントごとに DFW ルールの適用先が揃えて、下記のような感じにします。

ここで表示されている「ルール ID」は、あとで DFW の適用状態の確認で使用します。

dfw-mt-4-06.png

 

ちなみに、セキュリティグループのリンクをクリックすると、所属している VM を確認することができます。

dfw-mt-4-07.png

 

DFW ルールの適用状態を確認してみる。

DFW ルールが適用されているか、ESXi に SSH ログインして見てみます。

summarize-dvfilter コマンドで VM (vNIC)ごとの DVFilter の名前を確認して、

それをもとに vsipioctl コマンドでルールを確認します。

 

まず、tenant01 に含まれる、t01-web01 という VM のDFW ルールを見てみます。

vNIC は 2つありますが、片方を確認すれば十分とおもわれるので eth0 のに設定されたルールを見てみます。

[root@hv-i21:~] summarize-dvfilter | grep t01-web01 -A5

world 7733173 vmm0:t01-web01 vcUuid:'50 09 f2 fe 1b 1d 2d e5-f8 33 8c 17 4f d0 91 2e'

port 50331775 t01-web01.eth0

  vNic slot 2

   name: nic-7733173-eth0-vmware-sfw.2

   agentName: vmware-sfw

   state: IOChain Attached

   vmState: Detached

--

port 50331776 t01-web01.eth1

  vNic slot 2

   name: nic-7733173-eth1-vmware-sfw.2

   agentName: vmware-sfw

   state: IOChain Attached

   vmState: Detached

[root@hv-i21:~]

 

フィルタ名をもとに、DFW ルールを確認します。

今回設定したルールは ID が 1008 ~ 1013 なので、赤字の部分のみが関係します。

tenant01 むけに設定したルール (1009、1011、1012) だけが設定されていることが分かります。

[root@hv-i21:~] vsipioctl getrules -f nic-7733173-eth0-vmware-sfw.2

ruleset domain-c7 {

  # Filter rules

rule 1009 at 1 inout protocol any from any to addrset ip-virtualwire-26 accept;

  rule 1011 at 2 inout protocol any from addrset ip-virtualwire-25 to addrset ip-virtualwire-25 accept;

  rule 1012 at 3 inout protocol any from any to any drop;

  rule 1007 at 4 inout protocol udp from addrset ip-securitygroup-10 to addrset ip-vm-465 port 67 accept;

  rule 1006 at 5 inout inet protocol udp from addrset ip-securitygroup-10 to any port 67 reject;

  rule 1005 at 6 in inet protocol udp from any to addrset ip-vm-465 port 67 reject;

  rule 1003 at 7 inout protocol ipv6-icmp icmptype 136 from any to any accept;

  rule 1003 at 8 inout protocol ipv6-icmp icmptype 135 from any to any accept;

  rule 1002 at 9 inout protocol udp from any to any port 68 accept;

  rule 1002 at 10 inout protocol udp from any to any port 67 accept;

  rule 1001 at 11 inout protocol any from any to any accept;

}


ruleset domain-c7_L2 {

  # Filter rules

  rule 1004 at 1 inout ethertype any from any to any accept;

}


[root@hv-i21:~]

 

次に、tenant02 に含まれる、t02-web01 という VM のDFW ルールを見てみます。

こちらも vNIC が 2つありますが、eth0 のに設定されたルールだけ見てみます。

[root@hv-i23:~] summarize-dvfilter | grep t02-web01 -A5

world 7676381 vmm0:t02-web01 vcUuid:'50 09 46 a8 08 76 3f da-7c 6e ec 30 3b 28 67 c0'

port 50331717 t02-web01.eth0

  vNic slot 2

   name: nic-7676381-eth0-vmware-sfw.2

   agentName: vmware-sfw

   state: IOChain Attached

   vmState: Detached

--

port 50331718 t02-web01.eth1

  vNic slot 2

   name: nic-7676381-eth1-vmware-sfw.2

   agentName: vmware-sfw

   state: IOChain Attached

   vmState: Detached

[root@hv-i23:~]

 

フィルタ名をもとに、DFW ルールを確認します。

tenant01 むけに設定したルール (1008、1010、1013) だけが設定されていることが分かります。

[root@hv-i23:~] vsipioctl getrules -f nic-7676381-eth0-vmware-sfw.2

ruleset domain-c7 {

  # Filter rules

  rule 1008 at 1 inout protocol any from any to addrset ip-virtualwire-26 accept;

  rule 1010 at 2 inout protocol any from addrset ip-virtualwire-27 to addrset ip-virtualwire-27 accept;

  rule 1013 at 3 inout protocol any from any to any drop;

  rule 1007 at 4 inout protocol udp from addrset ip-securitygroup-10 to addrset ip-vm-465 port 67 accept;

  rule 1006 at 5 inout inet protocol udp from addrset ip-securitygroup-10 to any port 67 reject;

  rule 1005 at 6 in inet protocol udp from any to addrset ip-vm-465 port 67 reject;

  rule 1003 at 7 inout protocol ipv6-icmp icmptype 136 from any to any accept;

  rule 1003 at 8 inout protocol ipv6-icmp icmptype 135 from any to any accept;

  rule 1002 at 9 inout protocol udp from any to any port 68 accept;

  rule 1002 at 10 inout protocol udp from any to any port 67 accept;

  rule 1001 at 11 inout protocol any from any to any accept;

}


ruleset domain-c7_L2 {

  # Filter rules

  rule 1004 at 1 inout ethertype any from any to any accept;

}


[root@hv-i23:~]

 

DFW をマルチテナント環境っぽく使用することは可能ですが、

このような感じで、オブジェクト名やグルーピングなどで工夫が必要そうです。

 

以上、DFW ルールをマルチテナントっぽく設定してみる話でした。

PowerCLI Core 1.0 に含まれるコマンドレットと、Windows 版 PowerCLI との差分を見てみました。

 

VMware Flings の PowerCLI Core のページ

PowerCLI Core

 

こちらもどうぞ。

Linux で PowerCLI Core をためす。(Photon OS)

PowerCLI Core を Docker コンテナでためしてみる。

 

今回の PowerCLI Core のバージョンです。

PS /powershell> Get-PowerCLIVersion


PowerCLI Version

----------------

  VMware PowerCLI Core 1.0 build 0

---------------

Component Versions

---------------

  VMware vSphere PowerCLI Component 1.21 build 4523941

  VMware VDS PowerCLI Component 1.21 build 4523941

 

 

比較対象とした、Windows 版の PwerCLI のバージョンです。

PowerCLI C:\> Get-PowerCLIVersion

 

 

 

PowerCLI Version

----------------

  VMware vSphere PowerCLI 6.3 Release 1 build 3737840

---------------

Component Versions

---------------

  VMware Cloud Infrastructure Suite PowerCLI Component 6.3 build 3709081

  VMWare AutoDeploy PowerCLI Component 6.0 build 3736841

  VMWare ImageBuilder PowerCLI Component 6.0 build 3736841

  VMware vSphere PowerCLI Component 6.3 build 3709081

  VMware VDS PowerCLI Component 6.3 build 3709081

  VMware vCloud Director PowerCLI Component 6.3 build 3615264

  VMware HA PowerCLI Component 6.0 build 3625284

  VMware License PowerCLI Component 6.0 build 3615733

  VMware vCloud Air PowerCLI Component 6.3 build 3615264

  VMware PowerCLI Component for Storage Management 6.0 build 3617867

  VMware vROps PowerCLI Component 6.3 build 3615304

  VMware vSphere Update Manager PowerCLI 6.1 build 3607502

 

 

PowerCLI Core に含まれる PowerCLI 関連のモジュールは、PowerCLI.ViCore と PowerCLI.Vds の2つです。

PowerCLI.Vds には、分散仮想スイッチ (vDS) を操作するためのコマンドレットが含まれます。

PS /powershell> Get-Module | select ModuleType,Version,Name | ft -AutoSize


ModuleType Version Name

---------- ------- ----

    Script 0.0    Initialize

    Script 0.0    Initialize-VMware_VimAutomation_Vds

  Manifest 3.1.0.0 Microsoft.PowerShell.Management

  Manifest 3.1.0.0 Microsoft.PowerShell.Utility

    Binary 1.21    PowerCLI.Vds

    Binary 1.21    PowerCLI.ViCore

    Script 1.2    PSReadLine

 

これは、Windows 版 PowerCLI の、VMware.VimAutomation.Core と VMware.VimAutomation.Vds のようです。

それ以外のモジュールに含まれる VMware 関連のコマンドレットは Fling には含まれていませんでした。

PowerCLI C:\> Get-Module | select ModuleType,Version,Name | ft -AutoSize


ModuleType Version Name

---------- ------- ----

    Script 0.0    Initialize-VMware.VimAutomation.License

    Script 0.0    Initialize-VMware.VimAutomation.vROps

    Script 0.0    Initialize-VMware_VimAutomation_Cis

    Script 0.0    Initialize-VMware_VimAutomation_Vds

    Script 0.0    Initialize-VMware_VumAutomation

  Manifest 3.1.0.0 Microsoft.PowerShell.Management

  Manifest 3.1.0.0 Microsoft.PowerShell.Utility

    Script 1.2    PSReadline

    Binary 6.0.0.0 VMware.VimAutomation.Cis.Core

    Binary 6.3.0.0 VMware.VimAutomation.Cloud

  Manifest 6.3.0.0 VMware.VimAutomation.Common

    Script 6.3.0.0 VMware.VimAutomation.Core

    Binary 6.0.0.0 VMware.VimAutomation.HA

    Binary 1.0.0.0 VMware.VimAutomation.License

    Binary 6.0.0.0 VMware.VimAutomation.PCloud

  Manifest 6.3.0.0 VMware.VimAutomation.Sdk

    Binary 6.0.0.0 VMware.VimAutomation.Storage

    Binary 6.3.0.0 VMware.VimAutomation.Vds

    Binary 6.3.0.0 VMware.VimAutomation.vROps

    Binary 6.0.0.0 VMware.VumAutomation


 

 

PowerCLI Core には、モジュールごと含まれるコマンドレット数です。

ちなみに、「group ~」 を省いて実行することで、コマンドレットの一覧を表示できます。

PS /powershell> Get-Command -Module PowerCLI.* | group ModuleName | ft -AutoSize Count,Name


Count Name

----- ----

  283 PowerCLI.ViCore

  32 PowerCLI.Vds

 

Windows 版 PowerCLI のモジュールごとのコマンドレット数です。

Vds のコマンドレットは、PowerCLI Core にもすべて同名のものが含まれていましたが、

VMware.VimAutomation.Core は、少し足りないようです。

PowerCLI C:\> Get-Command -Module VMware.* | group ModuleName | Sort-Object Name | ft -AutoSize Count,Name


Count Name

----- ----

  18 VMware.DeployAutomation

  12 VMware.ImageBuilder

    3 VMware.VimAutomation.Cis.Core

  107 VMware.VimAutomation.Cloud

  289 VMware.VimAutomation.Core

    1 VMware.VimAutomation.HA

    1 VMware.VimAutomation.License

    4 VMware.VimAutomation.PCloud

  30 VMware.VimAutomation.Storage

  32 VMware.VimAutomation.Vds

  12 VMware.VimAutomation.vROps

  19 VMware.VumAutomation

 

 

VMware.VimAutomation.Core に含まれていて PowerCLI.ViCore に含まれていなかったコマンドレットです。

含まれていないのは、SRM 接続、CredentialStore 関連のものなので、

vSphere の基本操作にかかわるコマンドレットは含まれていると考えてよいと思います。

ただし、それぞれのコマンドレットが実際に実行できるかまでは試していません・・・

  • Connect-SrmServer
  • Disconnect-SrmServer
  • Get-ErrorReport
  • Get-VICredentialStoreItem
  • New-VICredentialStoreItem
  • Remove-VICredentialStoreItem

 

ちなみに PowerCLI Core は、Docker Hub に公開されたコンテナイメージを使用しました。

gowatana@photon-pcli [ ~ ]$ docker run --rm -it --entrypoint='/usr/bin/powershell' vmware/powerclicore

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 1484ms.

PS /powershell>

 

powercli-core-docker.png

 

以上、PowerCLI Core のコマンドレットについてでした。

VMware Flings で、PowerCLI Core が公開されたので、Docker コンテナを使用して実行してみました。

Docker Host は、Photon OS を使用します。

 

PowerCLI Core は、Linux、Mac などマルチプラットフォームで実行できる PowerCLI です。

 

VMware Flings の PowerCLI Core のページ

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 で試してみる話でした。

VMware Flings で、PowerCLI Core が公開されたので、

さっそく、Linux (Photon OS) で実行してみました。

 

PowerCLI Core は、Linux、Mac などマルチプラットフォームで実行できる PowerCLI です。

 

VMware Flings の PowerCLI Core のページ

PowerCLI Core

 

こちらもどうぞ。

PowerCLI Core を Docker コンテナでためしてみる。

 

見た目はこんな感じです・・・

powercli-core.png

 

PowerShell のインストール。

 

今回は、VMware Photon OS 1.0 にインストールします。

root@photon-ALW4IArOR [ ~ ]# cat /etc/photon-release

VMware Photon Linux 1.0

PHOTON_BUILD_NUMBER=13c08b6

root@photon-ALW4IArOR [ ~ ]# uname -r

4.4.8-esx

 

キーマップ(日本語の ja106)、ホスト名(今回は photon-pcli) を設定しておきまます。

root@photon-ALW4IArOR [ ~ ]# localectl set-keymap jp106

root@photon-ALW4IArOR [ ~ ]# hostnamectl set-hostname photon-pcli

 

 

tdnf コマンド(yum のかわり) で、RPM を最新化しておきます。
RPM のアップグレードが終わったら、いったん OS を再起動します。

root@photon-ALW4IArOR [ ~ ]# tdnf upgrade -y

root@photon-ALW4IArOR [ ~ ]# reboot

 

PowerShell の Yum リポジトリの設定ファイル(.repo)を配置します。

下記のようなコマンドラインを投入して、 /etc/yum.repos.d/powershell.repo ファイルを作成します。

cat << EOF > /etc/yum.repos.d/powershell.repo

[powershell]

name=PowerShell (x86_64)

baseurl=https://vmware.bintray.com/powershell

gpgcheck=0

enabled=1

skip_if_unavailable=True

EOF

 

実行すると、このような感じになります。

root@photon-pcli [ ~ ]# cat << EOF > /etc/yum.repos.d/powershell.repo

> [powershell]

> name=PowerShell (x86_64)

> baseurl=https://vmware.bintray.com/powershell

> gpgcheck=0

> enabled=1

> skip_if_unavailable=True

> EOF

root@photon-pcli [ ~ ]#

 

あとでファイルの解凍で使用するので、unzip コマンドをインストールしておきます。

root@photon-pcli [ ~ ]# tdnf install -y unzip

 

PowerShell をインストールします。

root@photon-pcli [ ~ ]# tdnf install -y powershell

 

 

Installing:

libicu                          x86_64      50_rc-1              23.92 M

libunwind                      x86_64      1.2-rc1            145.17 k

powershell                      x86_64      6.0.0_alpha.10-1    120.75 M

 

 

Total installed size: 144.82 M

 

 

Downloading:

powershell                            40423534    100%

libunwind                                69686    100%

libicu                                10093052    100%

Testing transaction

Running transaction

 

 

Complete!

root@photon-pcli [ ~ ]#

 

PowerCLI Core のインストール。

 

今回はこのまま root ユーザで進めてしまいます。

Flings サイトからダウンロードしたファイル「PowerCLI_Core.zip」を /root ディレクトリに配置してあります。

root@photon-pcli [ ~ ]# pwd

/root

root@photon-pcli [ ~ ]# ls -l /root/PowerCLI_Core.zip

-rw-r----- 1 root root 10061206 Oct 18 15:59 /root/PowerCLI_Core.zip

 

/root で、ファイルを解凍します。
このあと、PowerCLI.ViCore.4523941.zip と PowerCLI.Vds.4523941.zip をさらに解凍します。

root@photon-pcli [ ~ ]# unzip -d  PowerCLI_Core PowerCLI_Core.zip

Archive:  PowerCLI_Core.zip

  inflating: PowerCLI_Core/Dockerfile

  creating: PowerCLI_Core/__MACOSX/

  inflating: PowerCLI_Core/__MACOSX/._Dockerfile

  inflating: PowerCLI_Core/PowerCLI.Vds.4523941.zip

  inflating: PowerCLI_Core/__MACOSX/._PowerCLI.Vds.4523941.zip

  inflating: PowerCLI_Core/PowerCLI.ViCore.4523941.zip

  inflating: PowerCLI_Core/__MACOSX/._PowerCLI.ViCore.4523941.zip

  inflating: PowerCLI_Core/README.md

  inflating: PowerCLI_Core/__MACOSX/._README.md

  inflating: PowerCLI_Core/Start-PowerCLI.ps1

  inflating: PowerCLI_Core/__MACOSX/._Start-PowerCLI.ps1

root@photon-pcli [ ~ ]# ls

PowerCLI_Core  PowerCLI_Core.zip

 

モジュールの配置するディレクトリを作成し、そこに解凍します。

root@photon-pcli [ ~ ]# mkdir -p ~/.local/share/powershell/Modules

root@photon-pcli [ ~ ]# unzip -d .local/share/powershell/Modules/ PowerCLI_Core/PowerCLI.ViCore.4523941.zip

root@photon-pcli [ ~ ]# unzip -d .local/share/powershell/Modules/ PowerCLI_Core/PowerCLI.Vds.4523941.zip

 

 

PowerShell の起動。

 

PowerShell を起動してみます。

root@photon-pcli [ ~ ]# powershell

PowerShell

Copyright (C) 2016 Microsoft Corporation. All rights reserved.

 

PS /root>

 

PowerShell のバージョンは 6.0 のようです。

PS /root> Get-Host | fl Version

 

 

Version : 6.0.0

 

 

 

PS /root>

 

PowerCLI の起動。

 

PowerCLI を起動してみます。
最初に zip ファイルを展開したディレクトリに含まれる、Start-PowerCLI.ps1 を実行します。

PS /root> ./PowerCLI_Core/Start-PowerCLI.ps1

          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.

 

 

PS /root>

 

PowerCLI のバージョンを表示してみます。

PS /root> Get-PowerCLIVersion

 

PowerCLI Version

----------------

  VMware PowerCLI Core 1.0 build 0

---------------

Component Versions

---------------

  VMware vSphere PowerCLI Component 1.21 build 4523941

  VMware VDS PowerCLI Component 1.21 build 4523941

 

 

PS /root>

 

vCenter への接続と、コマンドレットでの情報取得。

 

今回の環境では vCenter にちゃんとした証明書がインストールされていないので、

とりあえず証明書を無視するようにしてしまいます。

PS /root> Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false

 

vCenter (今回の環境の vCenter  は vc01.godc.lab) に「Connect-VIServer」 で接続してみます。

「administrator@vsphere.local」 ユーザでログインします。

PS /root> 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 /root>

 

クラスタの情報を取得してみます。

PS /root> Get-Cluster

 

Name                           HAEnabled  HAFailover DrsEnabled DrsAutomationLe

                                          Level                 vel

----                           ---------  ---------- ---------- ---------------

cluster-ha01                   True       1          False      FullyAutomated

cluster-ha02                   True       1          False      FullyAutomated

cluster-ivy                    False      1          False      FullyAutomated

cluster-vsan01                 True       1          True       FullyAutomated

 

cluster-vsan01 クラスタに含まれる、 ESXi ホストの情報を取得してみます。

PS /root> Get-Cluster cluster-vsan01 | Get-VMHost

 

Name                 ConnectionState PowerState NumCpu CpuUsageMhz CpuTotalMhz

----                 --------------- ---------- ------ ----------- -----------

hv-i21.godc.lab      Connected       PoweredOn       2         887        4606

hv-i22.godc.lab      Connected       PoweredOn       2        1202        4606

hv-i23.godc.lab      Connected       PoweredOn       2         532        4608

 

VM の情報を取得してみます。(photon0? という名前のもの)

PS /root> Get-VM photon0? | Sort-Object Name

 

Name                 PowerState Num CPUs MemoryGB

----                 ---------- -------- --------

photon01             PoweredOff 1        2.000

photon02             PoweredOff 1        2.000

photon03             PoweredOff 1        2.000

photon04             PoweredOff 1        2.000

 

vDS(分散仮想スイッチ) のモジュールも読み込まれているので、vDS の情報を取得してみます。

PS /root> Get-VDSwitch | ft -AutoSize

 

Name  NumPorts Mtu  Version Vendor

----  -------- ---  ------- ------

vds01 243      1600 6.0.0   VMware, Inc.

 

念願の、Linux での PowerCLI が使用できるようになりました。

ただ、Windows のままは使用できないコマンドレット(というかPowerShell のエイリアス) もあったりするようで、

いろいろ実行して特徴をつかみたいと思います。

 

以上。Linux で PowerCLI Core を使用してみる話でした。

最近、vRealize Network Insight (通称 vRNI) という製品がリリースされました。

これは元々 Arkin 社の製品で、VMware NSX によるネットワーク仮想化環境を可視化することができます。

 

vRealize Network Insight (製品情報)

Software-Defined Networking 向け vRealize Network Insight: VMware

 

製品マニュアルなど

VMware vRealize Network Insight Documentation

 

2016年10月時点の最新版は 3.1 のようです。

VMware vRealize Network Insight 3.1 Release Notes

 

 

いまのところ評価版は提供されていないようですが、

HoL には、すでににラボが用意されていて、動作を試すことができます。

 

VMware Hands-on Labs

http://labs.hol.vmware.com/HOL/catalogs/catalog/123

HOL-1729-SDC-1 - Introduction to vRealize Network Insight

 

ドキュメントは英語のみですが、vRNI にログインして、実際に Web UI を操作することができます。

vrni-hol-01.png

 

HoL ラボの内容も公開されています。

このラボ マニュアルだけでも、ある程度 vRNI でどのようなことができるかわかります。

VMware Hands-on Labs - HOL-1729-SDC-1

 

 

UI の様子について。


vRNI の UI は、可視化機能は強力なのですが、

なかなかオシャレで慣れるまでは目的の画面にたどり着くまで少し時間がかかかりそうな気がしました。

たとえば、ラボの最初に出てくる「Plan Security」画面(下記)ですが、

vrni-hol-02.png


ホーム画面のアイコンから呼び出せて・・・

vrni-hol-04a.png


上記のナビゲーションバーからでも呼び出せますが・・・

vrni-hol-03.png

 

サーチ バーから直接よびだすこともできます。
ちなみに HoL のラボでは、最初からこの方法で画面を表示していました。

しかも、サーチ バーには文字列を入力すると、自動補完が働いて候補が表示されます。

vrni-hol-04.png

 

vRNI の機能は、意外とサーチ バーから一気に表示することができそうなので、

オペレータの人に定期的に特定の画面を見てもらったりする場合にも、使用手順を簡素化できそうに思えました。

 

 

ネットワーク環境の可視化について。

 

これまで NSX 環境の可視化には、vRealize Operations Manager (vROps) の

NSX むけ Management Pack があり、ダッシュボードで論理ネットワーク構成を表示することができました。

しかし vROps では、ポートグループ同士が接続されているだけで機能していない経路

(ルーティングされていなかったり、実際には接続性がないような接続情報)が表示されてしまったり、

複雑な構成だとうまく認識されなかったりといったことが見受けられました。

 

まず、vROps の例です。

下記の vROps は、両端の VM をつなぐ論理パスが複数表示されていますが、

このうち一番上 の直線以外は、実は機能していないパスだったりします。

※そして実際のネットワーク構成とあってなかったりもします。

※これは、わざと変に構成した NSX 環境なので、実環境の vROps ではここまでにはならないと思います。

vrni-hol-05.png

 

以下は、でも画面などでも登場する vRNI の「VM Path Topology」 画面です。

vRNI だと、下記のように論理ネットワーク構成を見ることができます。

vRNI では、オブジェクト同士の接続だけでなく、VLAN 設定や ルーティングテーブルも含む

ネットワーク構成情報からネットワークを可視化しているようです。

vrni-hol-06a.png

 

図中のオブジェクトをクリックすると、そのオブジェクトの情報が分かります。

VXLAN の論理スイッチを表す棒をクリックすると、その論理スイッチの セグメント ID や ネットワークアドレス、

VXLAN の VTEP アドレスやアンダーレイの VLAN ID までまとめて表示されます。

vrni-hol-06b.png

 

上部の矢印ボア端をクリックすると、即座に逆方向のトポロジが描画されます。

vrni-hol-06c.png

 

このように、vSphere Web Client の NSX 管理画面や vROops では表現できなかったネットワーク可視化ができるツールです。

今回は HoL ですが、ぜひうちにもほしい・・・

 

以上、vRNI を HoL で使用してみた感想でした