Skip navigation
1 2 3 Previous Next

にほんごVMware

251 posts

NSX Manager のデータ バックアップは、FTP もしくは SFTP サーバに取得できます。

Back Up NSX Manager Data

 

たとえば、下記のように Linux サーバを簡易的なバックアップ先とすることもできます。

NSX-v の簡易バックアップサーバ (SFTP) を Linux で用意する。

 

ただ、NSX Manager のバックアップは自動削除されません。

下記のように、取得したバックアップ ファイルはひたすら残ります。

※これは NSX 6.3.1 の NSX Manager の画面です。

nsx-bk-cleanup-01.png

 

この「Backup History」に表示されているバックアップは、

バックアップ先でファイルを削除すれば、Web UI 側からも表示されなくなります。

 

そこで、Linux の cron を使用してバックアップをクリーンアップしてみます。

今回は、以前の投稿(下記)の環境で実施しています。

NSX-v の簡易バックアップサーバ (SFTP) を Linux で用意する。

 

1回の NSX Manager のバックアップでは、

バックアップ先に指定したフォルダ配下に、下記のような2つのファイルセットが作成されます。

<Backup Directory>/<Backup Prefix><タイムスタンプ>.backupproperties

<Backup Directory>/<Backup Prefix><タイムスタンプ>

 

具体的には、下記のような感じのファイル名になります。

/home/nsx-bk-user01/nsxmgr01-17_10_00_Sun18Jun2017.backupproperties

/home/nsx-bk-user01/nsxmgr01-17_10_00_Sun18Jun2017

 

これらのバックアップ ファイルを、cron で定期的に自動削除します。

今回は、下記のような corn 定義ファイルを作成してみました。

 

1行だけ記載した /etc/cron.d/nsx-backup-cleanup ファイルを新規作成しています。

内容は下記のような感じです。

  • 毎時 15分に自動実行。
    NSX Manager を毎時10分にバックアップ取得するように設定しているので、その少し後。
  • nsx-bk-user01 ユーザで実行。
    SFTP 接続用として作成したユーザにあわせて。root などでもよい。
  • 今回は 3世代のバックアップファイルを残す。
    世代数をわかりやすくするため、あえて GEN=3 と指定してみた。
  • バックアップファイル名は、NSX Manager の「Backup Directory」と「Backup Prefix」
    に合わせて「/home/nsx-bk-user01/nsxmgr01-」。
  • ls コマンドで、タイムスタンプ順にバックアップファイルをリスト。
    そして「残す世代数 * 1回のバックアップセット(2つ)」 以降のファイルを
    tail コマンドで取得して、xargs コマンドで削除(rm)する。

[root@nsx-work ~]# cat /etc/cron.d/nsx-backup-cleanup

15 * * * * nsx-bk-user01 GEN=3; ls -t /home/nsx-bk-user01/nsxmgr01-* | tail -n +`expr $GEN \* 2 + 1` | xargs rm

 

この cron ファイルを作成して、自動実行されるのを待つと、
下記のような感じで 3世代分のファイルだけ残して、他のバックアップ ファイルは削除されます。

[root@nsx-work ~]# ls -t /home/nsx-bk-user01/nsxmgr01-*

/home/nsx-bk-user01/nsxmgr01-17_10_00_Sun18Jun2017.backupproperties

/home/nsx-bk-user01/nsxmgr01-17_10_00_Sun18Jun2017

/home/nsx-bk-user01/nsxmgr01-16_10_00_Sun18Jun2017.backupproperties

/home/nsx-bk-user01/nsxmgr01-16_10_00_Sun18Jun2017

/home/nsx-bk-user01/nsxmgr01-15_10_00_Sun18Jun2017.backupproperties

/home/nsx-bk-user01/nsxmgr01-15_10_00_Sun18Jun2017

[root@nsx-work ~]#

 

NSX Manager から見える Backup History も、3世代分だけになっています。

nsx-bk-cleanup-02.png

 

このような感じで、バックアップ先のファイルを削除すれば、
NSX Manger から見たバックアップ履歴も削除されます。

ただ、ファイル削除はしっかり検証 / 動作確認したうえで実装してもらえればと思います。

 

以上、NSX Manager のデータ バックアップのクリーンアップをしてみる話でした。

NSX for vSphere を PowerCLI で操作する、PowerNSX  というツールが公開されています。

実は、PowerNSX は VMware の Docker Hub で公開されている

PowerCLI Core のコンテナイメージ「vmware/powerclicore」にも含まれています。

ということで、Docker コンテナから PowerNSX を起動してみます。

 

以前の投稿もどうぞ・・・

PowerCLI Core を Docker コンテナでためしてみる。

PowerNSX で VMware NSX の論理スイッチ (Logical Switch) を作成してみる。

 

 

Docker ホストの用意

今回の Docker ホストは、Photon OS です。

あらかじめ、下記からダウンロードした OVA ファイル(OVA with virtual hardware v11)をデプロイして、

ホスト名と root パスワードだけ変更してあります。

Downloading Photon OS · vmware/photon Wiki · GitHub

 

まずパッケージを最新化して、OS を再起動しておきます。

※Photon OS は、yum のかわりに、tdnf コマンドを使用します。

root@photon01 [ ~ ]# tdnf upgrade -y

root@photon01 [ ~ ]# reboot

 

Photon OS のバージョンです。

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

VMware Photon Linux 1.0

PHOTON_BUILD_NUMBER=62c543d

root@photon01 [ ~ ]# uname -r

4.4.70-3.ph1-esx

 

Docker のバージョンです。

root@photon01 [ ~ ]# rpm -q docker

docker-1.13.1-3.ph1.x86_64

 

そして Docker サービスを起動しておきます。

root@photon01 [ ~ ]# systemctl enable docker

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

root@photon01 [ ~ ]# systemctl start docker

root@photon01 [ ~ ]# docker version

Client:

Version:      1.13.1

API version:  1.26

Go version:   go1.8.1

Git commit:   092cba3

Built:        Fri May  5 02:08:33 2017

OS/Arch:      linux/amd64

 

Server:

Version:      1.13.1

API version:  1.26 (minimum version 1.12)

Go version:   go1.8.1

Git commit:   092cba3

Built:        Fri May  5 02:08:33 2017

OS/Arch:      linux/amd64

Experimental: false

 

PowerCLI Core コンテナの起動

Docker Hub から、vmware/powerclicore をダウンロード(pull)しておきます。

root@photon01 [ ~ ]# docker pull vmware/powerclicore

Using default tag: latest

latest: Pulling from vmware/powerclicore

93b3dcee11d6: Pull complete

64180fb7dedf: Pull complete

46c9ea8ba821: Pull complete

b0ad35240277: Pull complete

f537a588698e: Pull complete

b821ac08cbe0: Pull complete

a76c30f73a8e: Pull complete

e5d8130503e2: Pull complete

a72ad7270123: Pull complete

c6b89e0875bf: Pull complete

d1628dac3e00: Pull complete

57fb698e34cd: Pull complete

9a9d3505a642: Pull complete

bf20548eaf12: Pull complete

a27e923ed27a: Pull complete

f0ecdd77fe48: Pull complete

7b8113d29296: Pull complete

2590b0e2e842: Pull complete

e3b9ecfe2ca0: Pull complete

d4838036c9df: Pull complete

5a536d9f1f30: Pull complete

3f9566a85b2e: Pull complete

bdb2ac6e70be: Pull complete

Digest: sha256:ffe996f7d664b2d8d9cd25501a8cb0a2f7459871b09523c1d3545df780ace211

Status: Downloaded newer image for vmware/powerclicore:latest

 

イメージがダウンロードできました。

root@photon01 [ ~ ]# docker images

REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE

vmware/powerclicore   latest              a8e3349371c5        6 weeks ago         610 MB

 

コンテナを起動します。

root@photon01 [ ~ ]# docker run -it vmware/powerclicore

 

コンテナを起動すると、このような感じになります。

docker-powernsx-01.png

 

PowerCLI Core のバージョンです。

PS /powershell> Get-PowerCLIVersion

 

PowerCLI Version

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

   VMware PowerCLI Core 1.0 build 5327113

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

Component Versions

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

   VMware vSphere PowerCLI Component 1.22 build 5327113

   VMware VDS PowerCLI Component 5.1 build 5327113

   VMware VDS PowerCLI Component 1.21 build 5327113

 

 

 

PS /powershell>

 

PowerNSX での vCenter と NSX への接続

それでは、PowerNSX で vCenter / NSX に接続してみます。

 

PowerNSX のバージョンを見ておきます。

PS /powershell> Import-Module -Name PowerNSX

PS /powershell> Get-Module PowerNSX | select Name,Version

 

 

Name     Version

----     -------

PowerNSX 2.1.0

 

 

ちなみに、まだ安定版というわけではないこともあり

Import-Module -Name PowerNSX を実行したタイミングで赤字で注意書きが表示されます。

docker-powernsx-02.png

 

PowerNSX では NSX Manager と vCenter に接続してから実行します。

Connect-NSXServer では、vCenter に同時接続する機能がありますが、

いまのところちょっとうまくいかないので、vCenter と NSX Manager をそれぞれ別に接続します。

 

まず、vCenter に接続します。「vc-sv02」が今回の vCenter です。

PS /powershell> Connect-VIServer vc-sv02.go-lab.jp -Force

 

Specify Credential

Please specify server credential

User: gowatana ★VCにログインするユーザを入力。

Password for user gowatana: ******** ★パスワードを入力。

 

vCenter に接続できました。

PS /powershell> $Global:DefaultVIServer | fl Name,IsConnected

 

 

Name        : vc-sv02.go-lab.jp

IsConnected : True

 

 

NSX Manager に接続します。「nsxmgr01」が今回の NSX Manager です。

「Using existing PowerCLI connection to ~」にある IP アドレスは、
すでに接続済みのvCenter の IP アドレスです。

そして VIConnection を見ると、vCenter への接続を認識していることが分かります。

PS /powershell> Connect-NsxServer -NsxServer nsxmgr01.go-lab.jp -ValidateCertificate:$false

 

 

Windows PowerShell credential request

NSX Manager Local or Enterprise Admin SSO Credentials

User: admin ★NSX Manager のユーザを入力。

Password for user admin: ********** ★パスワードを入力。

 

Using existing PowerCLI connection to 192.168.1.96

 

 

Version             : 6.3.1

BuildNumber         : 5124716

Credential          : System.Management.Automation.PSCredential

Server              : nsxmgr01.go-lab.jp

Port                : 443

Protocol            : https

ValidateCertificate : False

VIConnection        : vc-sv02.go-lab.jp

DebugLogging        : False

DebugLogfile        : \PowerNSXLog-admin@nsxmgr01.go-lab.jp-2017_06_13_14_41_28.log

 

 

 

PS /powershell>

 

PowerNSX に含まれるコマンドレットで、情報取得できるようになります。

PS /powershell> Get-NsxManagerSystemSummary

 

ipv4Address       : 192.168.1.141

dnsName           : nsxmgr01.go-lab.jp

hostName          : nsxmgr01

domainName        : go-lab.jp

applianceName     : vShield Virtual Appliance Management

versionInfo       : versionInfo

uptime            : 2 days, 3 hours, 14 minutes

cpuInfoDto        : cpuInfoDto

memInfoDto        : memInfoDto

storageInfoDto    : storageInfoDto

currentSystemDate : Tuesday, 13 June 2017 11:41:50 PM JST

 

 

これで、便利な PowerNSX を手軽にためすことができます。

ただ PowerCLI Core も、まだ Technical Preview なので

まだメインで使う PowerNSX は Windows の PowerCLI とかなと思います。

 

以上、PowerCLI Core コンテナ同梱の PowerNSX を実行してみる話でした。

NSX for vSphere (NSX-v) では、NSX Manager からのデータバックアップ先として

FTP サーバ、もしくは SFTP サーバを指定できます。

Back Up NSX Manager Data

 

今回は、検証環境や自宅ラボなどで、

NSX Manager の簡易的なバックアップ先を用意する方法を紹介しようと思います。

 

Red Hat Enterprise Linux や、CentOS など、一般的な Linux ディストリビューションでは

SSH Server がデフォルトでセットアップされています。

その SSH Server に含まれる SFTP Server を利用すると便利ではないかと思います。

バックアップ先 として利用する Linux

今回は、Oracle Linux 7.3 を利用します。

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

Oracle Linux Server release 7.3

 

OS の Minimal Install でも、デフォルトで openssh-server がインストールされていて、

サービスが起動されています。

[root@nsx-work ~]# rpm -q openssh-server

openssh-server-6.6.1p1-35.el7_3.x86_64

[root@nsx-work ~]# systemctl is-enabled sshd

enabled

[root@nsx-work ~]# systemctl is-active sshd

active

 

そして sftp-server も含まれていて、

デフォルトで OS ユーザで接続することが可能になっています。

[root@nsx-work ~]# rpm -ql openssh-server | grep sftp

/usr/libexec/openssh/sftp-server

/usr/share/man/man8/sftp-server.8.gz

 

バックアップ先 SFTP Server での準備

バックアップ先の Linux は、OS ユーザを作成するだけで SFTP サーバとして利用できます。

 

それでは、バックアップ先の Linux で、SFTP 接続で利用する OS ユーザを作成しておきます。

今回は「nsx-bk-user01」という名前のユーザを作成します。

[root@nsx-work ~]# useradd nsx-bk-user01

[root@nsx-work ~]# passwd nsx-bk-user01

ユーザー nsx-bk-user01 のパスワードを変更。

新しいパスワード:  ★パスワードを入力。

新しいパスワードを再入力してください:

passwd: すべての認証トークンが正しく更新できました。

 

今回は、作成したユーザのホームディレクトリ「/home/nsx-bk-user01」をバックアップ先に指定するつもりです。

[root@nsx-work ~]# su - nsx-bk-user01

[nsx-bk-user01@nsx-work ~]$ echo $HOME

/home/nsx-bk-user01

[nsx-bk-user01@nsx-work ~]$ pwd

/home/nsx-bk-user01

 

NSX Manager でのバックアップ先指定

NSX Manager の 管理画面にアクセスして、バックアップ先を指定します。

ちなみに今回の NSX Manager は「nsxmgr01」という名前にしています。

 

NSX Manager の管理画面に admin ユーザでログインします。

nsx-mgr-bk-00.png

 

「Backup & Restore」画面の「FTP Server Settings」で「Change」ボタンをクリックして設定します。

nsx-mgr-bk-01.png

 

バックアップ先の設定をします。

  • IP/Host name → SFTP サーバのアドレスを指定。
  • Transfer Protocol → SFTP を指定。
  • Port → SFTP (SSH) なので 22。
  • User name / Password → 作成した nsx-bk-user01 ユーザを指定。
  • Backup Directory → バックアップ先ディレクトリを指定。
  • Backup Prefix → バックアップファイルの先頭文字列を指定。今回は「nsxmgr01-」
  • Pass Phrase → パスフレーズを指定。

nsx-mgr-bk-02.png

 

バックアップの実行

バックアップは Scheduling(定期実行)を設定できますが、今回は手動実行します。

「Bakcup」をクリックします。

nsx-mgr-bk-04.png

 

「Start」をクリックすると、バックアップが実行されます。

nsx-mgr-bk-05.png

 

バックアップ ファイルが表示されます。

nsx-mgr-bk-06.png

 

SFTP サーバでディレクトリを見ると、NSX Manager のバックアップファイルが作成されています。

2つファイルが作成されていますが、セットで 1回分のバックアップファイルです。

[nsx-bk-user01@nsx-work ~]$ pwd

/home/nsx-bk-user01

[nsx-bk-user01@nsx-work ~]$ ls -lh

合計 568K

-rw-rw-r--. 1 nsx-bk-user01 nsx-bk-user01 561K  6月 12 23:06 nsxmgr01-23_06_25_Mon12Jun2017

-rw-rw-r--. 1 nsx-bk-user01 nsx-bk-user01  230  6月 12 23:06 nsxmgr01-23_06_25_Mon12Jun2017.backupproperties

 

NSX Manager が壊れることもありうるので、

簡易的にでもバックアップを取得しておくと便利かなと思います。

 

以上、Linux SFTP サーバを NSX Manager のバックアップ先にしてみる話でした。

VMware NSX と その認定資格試験の勉強方法についてのヒントを、

いくつか紹介してみようと思います。

 

まず、NSX の技術認定資格についてですが、vSphere(DCV)とは別に

NV(Network Virtualization)というトラックがあり、DCV トラックと同様に

VCA / VCP / VCIX(VCAP 試験に合格すると認定される)/ VCDX があります。

NSX とはいっても、NSX for vSphere(NSX-v)のみを対象とした試験です。

つまり現時点の NSX の認定資格には NSX for Multi-Hypervisor については、まったく含まれません。

 

具体的な資格の体系や出題範囲などについては

VMware Education のサイトを参照いただければと思います。

※たまに変更があったり、具体的な出題内容には触れられなかったりするため。

VMware NSX Training and Certification

 

NSX の試験の勉強については、正攻法でいくとすると、

可能な限り VMware の認定トレーニングコースを受講するのがよいと思います。

たとえば、下記のような・・・

VMware NSX: Install, Configure, Manage [V6.2]

 

ただ、費用や受講時間帯などの問題で受講が難しいケースがあると思うので、

※ちなみに、私も NSX のトレーニングコースは受講できてません。

 

実は、私が NSX の資格(VCP-NV / VCIX-NV)を取得したのは 2014年
VMware Certified Implementation Expert 6 – Network Virtualization - Acclaim )で

ちょっとノウハウが古いかもしれませんが、

このあと紹介するコンテンツは最新化されているようです。

 

1. 知識習得について

 

基礎知識

NSX の基礎知識の習得については、マニュアル(ドキュメント)を読むことが一番だと思います。

対象の NSX のバージョン(6.2、6.3 ・・・)を選択してからドキュメントを参照します。

VMware NSX for vSphere のドキュメント

 

NSX の基本的なマニュアルは、日本語で公開されています。

これまでの VMware 製品のドキュメントよりも、図やスクリーンショットが多い印象があります。

洋書や、VMware 公式の日本語技術書(2014年11月頃)も出版されていますが、

正直なところ個人的には、それらよりマニュアルのほうが分かりやすい気がします。

 

設計 / 操作手順

NSX の設計や、具体的な操作についての勉強については、

VMTN の VMware NSX  フォーラムにあるドキュメント(「文章」タブ)を活用するとよいと思います。

 

まずおすすめなのは下記の 2つです。

ただし、NSX フォーラムのドキュメントやディスカッションは英語のみです。

特に VCP-NV の勉強では、「VMware NSX for vSphere Network Virtualization Design Guide」が役立ちます。

VMware® NSX for vSphere Network Virtualization Design Guide ver 3.0

NSX-v Operations Guide, rev 1.5

 

 

2. 実機操作について

 

VMware Hands-on Labs を利用する

NSX の実機環境を用意するのは、なかなかハードルが高いと思います。

 

Hands-on Labs(HoL)では、手軽に実機によるラボを使用することができます。

VMware Hands-on Labs

このページは VMTN の一部ですが、HoL を利用する場合は

あらたに VMTN アカウントとは別のアカウントを作成することになります。

 

HoL は、ラボ マニュアルのシナリオをもとに手順を進めるようになっていて、

ひと通りの機能を、実機で試すことができます。

VCIX の実技試験の準備としても、ラボ マニュアルのシナリオが参考になります。

 

下記のページに日本語化された主要なラボがまとめられています。
NSX については、まずは HOL-1703 から始まる名前のラボに取り組むとよいと思います。

VMware Hands-on Labs

 

HoL は無償で、何回でも同じラボを利用することができます。

私が VCIX-NV を取得した時には、20回以上 HoL-1403 を実行しました。

また、HoL ではラボ マニュアルのシナリオに沿わない操作も可能であり、

工夫すれば NSX API を試したりすることもできます。

※当時の NSX の基本的なラボは HoL-1703 ではなく、HoL-1403 でした。

※ラボを繰り返し利用する場合は、環境は初期化されてしまいます。

 

ただし、基本的に HoL で試せるのは NSX 自体の機能のみで、

物理的なネットワークにかかわる機能などは試せません。

 

評価用ライセンスを利用する

以前は、検証環境や自宅ラボなどで、実際に NSX 環境を構築しようとしても、

NSX は(vSphere などとは異なり)一般向けに無償評価ライセンスは提供されていませんでした。

 

しかし最近、有償ですが VMUG Advantage というサービスで
NSX の評価ライセンスが利用できるようになりました。

https://www.vmug.com/Join//EVALExperience

※ただし私は vExpert 用の評価ライセンスを利用させてもらっているので、これは利用してません。

 

 

NSX は技術要素としてはまだ新しめのもので、手探りで技術習得をしている人が多いと思いますので

なにかしら役立てていただければと思います。

 

以上、 NSX の勉強方法についてでした。

ためしに vCenter Server Appliance 6.0 (VCSA)  を、Datadog に登録してみました。

 

Datadog は、Datadog 社による 性能情報やイベントのモニタリングができるクラウドサービスです。

 

VMware vSphere のモニタリングにも対応しているようです。

Datadog-VMware Integration

Datadog-VMware Integration  (英語)

https://www.datadoghq.com/blog/unified-vsphere-app-monitoring-datadog/ (英語)

 

今回の環境について。

今回は、VCSA 6.0 U3 を使用しています。

Command> system.version.get

Version:

   Product: VMware vCenter Server Appliance

   Installtime: 2017-04-02T04:55:33 UTC

   Summary: VMware vCenter Server Appliance 6.0 Update 3

   Releasedate: February 23, 2017

   Version: 6.0.0.30000

   Build: 5112509

   Type: vCenter Server with an embedded Platform Services Controller

 

VCSA 6.0 は、SUSE Linux をベースとしています。

Command> shell.set --enabled True

Command> shell

    ---------- !!!! WARNING WARNING WARNING !!!! ----------

Your use of "pi shell" has been logged!

The "pi shell" is intended for advanced troubleshooting operations and while

supported in this release, is a deprecated interface, and may be removed in a

future version of the product.  For alternative commands, exit the "pi shell"

and run the "help" command.

The "pi shell" command launches a root bash shell.  Commands within the shell

are not audited, and improper use of this command can severely harm the

system.

Help us improve the product!  If your scenario requires "pi shell," please

submit a Service Request, or post your scenario to the

https://communities.vmware.com/community/vmtn/vcenter/vc forum and add

"appliance" tag.

 

vc02:~ # uname -n

vc02.go-lab.jp

vc02:~ # cat /etc/SuSE-release

SUSE Linux Enterprise Server 11 (x86_64)

VERSION = 11

PATCHLEVEL = 3

 

なお、この VCSA からは自宅ラボにあり、直接インターネットに出ることができます。

Datadog Agent インストール。

インストールは、DD_API_KEY を指定しつつ、curl コマンドで取得したスクリプトを実行します。
ちなみに このコマンドラインと DD_API_KEY は、Datadog の無料体験の登録時などにわかります。

vc02:~ # DD_API_KEY=182b0~ bash -c "$(curl -L https://raw.githubusercontent.com/DataDog/dd-agent/master/packaging/datadog-agent/source/install_agent.sh)"

 

スクリプトの内容は下記でわかります。

dd-agent/install_agent.sh at master · DataDog/dd-agent · GitHub

 

これで、Datadog Agent の RPM がインストールされました。

vc02:~ # rpm -qa | grep datadog

datadog-agent-5.13.2-1

 

デフォルトで Agent は起動します。

vc02:~ # chkconfig --list datadog-agent

datadog-agent             0:off  1:off  2:on   3:on   4:on   5:on   6:off

vc02:~ # service datadog-agent status

Datadog Agent (supervisor) is running all child processes

 

Datadog Agent 連携用ユーザの作成。

 

Datadog 連携用のユーザとして、今回は datadog-user@vsphere.local ユーザを

vCenter のもつ PSC のローカルユーザとして作成しています。

dd-01.png

 

作成したユーザには、vCenter の「読み取り専用」ロールを付与しています。

dd-02.png

 

Datadog Agent の連携設定。

Datadog Agent に含まれる /etc/dd-agent/conf.d/vsphere.yaml.example ファイルをもとに、
設定ファイルを作成します。

 

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

vc02:~ # vi /etc/dd-agent/conf.d/vsphere.yaml

vc02:~ # chown dd-agent:dd-agent /etc/dd-agent/conf.d/vsphere.yaml

vc02:~ # grep -E -v "#|^$" /etc/dd-agent/conf.d/vsphere.yaml

init_config:

instances:

  - name: vc02-home

    host: vc02.go-lab.jp

    username: 'datadog-user@vsphere.local'

    password: 'パスワード'

    ssl_verify: false

 

Datadog Agent を再起動します。

vc02:~ # service datadog-agent restart

* Stopping Datadog Agent (stopping supervisord) datadog-agent            [ OK ]

* Starting Datadog Agent (using supervisord) datadog-agent               [ OK ]

 

これで、vSphere の情報が Datadog に情報が転送されるようになります。
Datadog の Web UI (下記は Infrastructure → Infrastructure List を開いた画面)から、

VCSA と(赤枠のもの)、その vCenter が管理する ESXi と VM が自動検出されたことがわかります。
VM は、起動されているもののみ表示されるようです。

dd-03.png

 

以上、VCSA 6.0 を Datadog に登録してみる話でした。つづくかもしれない・・・

PowerCLI で vCenter / ESXi に接続する Connect-VIServer は以前に接続したサーバを記録していて、

「-Menu」オプションで過去に接続したサーバを表示、選択して接続することができます。

PowerCLI> Connect-VIServer -Menu

 

下記のような感じになります。

powercli-menu-01.png

 

このサーバリストは、PowerShell からみて下記のパスにあります。

$HOME\AppData\Roaming\VMware\PowerCLI\RecentServerList.xml

 

XML ファイルを見てみると、下記のような感じになっています。

Server ごとに指定されている Position の数字が、-Menu での表示順です。
すでに表示されない(おそらく 10件をこえたもの)は、Position 属性が削除されています。

<ServerList>

  <CurrentMonth>May</CurrentMonth>

  <Server Name="vc60n01.godc.lab" January="0" February="0" March="0" April="0" May="0" June="8" July="3" August="0" September="0" October="0" November="0" December="0" Position="1" />

  <Server Name="vc55n01.godc.lab" January="0" February="0" March="0" April="0" May="0" June="0" July="0" August="0" September="0" October="0" November="0" December="0" />

  <Server Name="vc60n02.godc.lab" January="0" February="0" March="0" April="0" May="0" June="3" July="2" August="0" September="0" October="0" November="0" December="0" Position="3" />

  <Server Name="192.168.5.75" January="0" February="0" March="0" April="0" May="0" June="0" July="0" August="0" September="0" October="0" November="0" December="0" />

  <Server Name="vc01.godc.lab" January="1" February="9" March="1" April="0" May="0" June="0" July="4" August="2" September="2" October="0" November="4" December="1" Position="5" />

  <Server Name="vc02.godc.lab" January="0" February="0" March="0" April="0" May="0" June="0" July="2" August="0" September="0" October="0" November="0" December="0" Position="6" />

  <Server Name="vcsa50-01.godc.lab" January="0" February="0" March="0" April="0" May="0" June="0" July="0" August="0" September="1" October="0" November="0" December="0" Position="7" />

  <Server Name="192.168.1.71" January="0" February="0" March="0" April="0" May="0" June="0" July="0" August="0" September="1" October="0" November="0" December="0" Position="8" />

  <Server Name="vc65-1.go-lab.jp" January="1" February="4" March="3" April="0" May="0" June="0" July="0" August="0" September="0" October="0" November="0" December="0" Position="9" />

  <Server Name="vc-sv01.go-lab.jp" January="0" February="0" March="4" April="9" May="10" June="0" July="0" August="0" September="0" October="0" November="0" December="0" Position="10" />

  <Server Name="vc02.go-lab.jp" January="0" February="0" March="0" April="1" May="0" June="0" July="0" August="0" September="0" October="0" November="0" December="0" Position="2" />

  <Server Name="vc-sv02.go-lab.jp" January="0" February="0" March="0" April="0" May="4" June="0" July="0" August="0" September="0" October="0" November="0" December="0" Position="4" />

</ServerList>

 

見やすく 接続先サーバ(Name)と Position を抜粋すると、下記のようになっています。

PS C:\> $sv_list = [xml](gc $HOME\AppData\Roaming\VMware\PowerCLI\RecentServerList.xml)

PS C:\> $sv_list.ServerList.Server | sort {[int]$_.Position} | ft -AutoSize Name,Position

 

 

Name               Position

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

192.168.5.75

vc55n01.godc.lab

vc60n01.godc.lab   1

vc02.go-lab.jp     2

vc60n02.godc.lab   3

vc-sv02.go-lab.jp  4

vc01.godc.lab      5

vc02.godc.lab      6

vcsa50-01.godc.lab 7

192.168.1.71       8

vc65-1.go-lab.jp   9

vc-sv01.go-lab.jp  10

 

最近使用してる vCenter 2台を残して、削除してみました。

<ServerList>

  <CurrentMonth>May</CurrentMonth>

  <Server Name="vc-sv01.go-lab.jp" January="0" February="0" March="4" April="9" May="10" June="0" July="0" August="0" September="0" October="0" November="0" December="0" Position="1" />

  <Server Name="vc-sv02.go-lab.jp" January="0" February="0" March="0" April="0" May="4" June="0" July="0" August="0" September="0" October="0" November="0" December="0" Position="2" />

</ServerList>

 

Connect-VIServer -Menu を実行してみると、2台だけ表示されるようになりました。

powercli-menu-02.png

 

ちなみに、不要になったサーバを Position=""  とするとリストを読まなくなるようで、
XML ファイルを編集してサーバを削除するには
今回のように Server 要素ごと削除するか、Position 属性を削除する必要があるようです。

 

なお、今回は PowerCLI 6.5 Release 1 を Windows 10 で実行しています。

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

VMware PowerCLI 6.5 Release 1 build 4624819

 

検証環境などで多数の vCenter に接続する場合には「-Menu」オプションが便利かもしれません。

 

以上、PowerCLI の -menu リストを更新してみる話でした。

VIC では、ESXi から Virtural Container Host (VCH) に対して ESXi Firewall のルール設定が必要です。

Environment Prerequisites for VCH Deployment · VMware vSphere Integrated Containers 1.1 Documentation

 

VIC 1.0 のときは下記のような感じで、悩ましい設定をしていました。

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

 

VIC 1.1 では、VIC で必要となる ESXi Firewall ルールの解放設定も、

vic-machine コマンドで実行できるようになっています。

 

 

それでは、ESXi Firewall を開放してみます。

 

VIC 1.1 の vic-machine-linux コマンドを使用してみます。

[gowatana@client01 vic]$ ./vic-machine-linux version

vic-machine-linux version v1.1.0-9852-e974a51

 

今回は、「vc-sv02.go-lab.jp」という vCenter の「cluster-01」クラスタにある ESXi の Firewall ルール設定を変更します。

vic-machine では、vCenter の thumbprint の指定をしないと下記のようなエラーになります。

[gowatana@client01 vic]$ ./vic-machine-linux update firewall --target vc-sv02.go-lab.jp --user gowatana --allow --compute-resource cluster-01

May 16 2017 08:58:11.738+09:00 INFO  vSphere password for gowatana:

May 16 2017 08:58:15.814+09:00 INFO  ### Updating Firewall ####

May 16 2017 08:58:15.857+09:00 ERROR Failed to verify certificate for target=vc-sv02.go-lab.jp (thumbprint=70:45:F3:C7:~省略)

May 16 2017 08:58:15.858+09:00 ERROR Update cannot continue - failed to create validator: x509: certificate signed by unknown authority

May 16 2017 08:58:15.858+09:00 ERROR --------------------

May 16 2017 08:58:15.858+09:00 ERROR vic-machine-linux update firewall failed: update firewall failed

 

thumbprint の指定をしつつ、ESXi Firewall を通信許可(allow)に設定します。
指定したクラスタに含まれるホスト 3台の設定が変更されました。

[gowatana@client01 vic]$ ./vic-machine-linux update firewall --target vc-sv02.go-lab.jp --user gowatana --allow --compute-resource cluster-01 --thumbprint 70:45:F3:C7:~省略

May 16 2017 08:58:44.670+09:00 INFO  vSphere password for gowatana: ★パスワードを入力

May 16 2017 08:58:47.196+09:00 INFO  ### Updating Firewall ####

May 16 2017 08:58:47.328+09:00 INFO  Validating target

May 16 2017 08:58:47.328+09:00 INFO  Validating compute resource

May 16 2017 08:58:47.343+09:00 INFO

May 16 2017 08:58:47.343+09:00 WARN  ### WARNING ###

May 16 2017 08:58:47.343+09:00 WARN     This command modifies the host firewall on the target machine or cluster

May 16 2017 08:58:47.343+09:00 WARN     The ruleset "vSPC" will be enabled

May 16 2017 08:58:47.343+09:00 WARN     This allows all outbound TCP traffic from the target

May 16 2017 08:58:47.343+09:00 WARN     To undo this modification use --deny

May 16 2017 08:58:47.343+09:00 INFO

May 16 2017 08:58:47.420+09:00 INFO  Ruleset "vSPC" enabled on host "HostSystem:host-29 @ /dc02/host/cluster-01/hv-n11.go-lab.jp"

May 16 2017 08:58:47.491+09:00 INFO  Ruleset "vSPC" enabled on host "HostSystem:host-32 @ /dc02/host/cluster-01/hv-n12.go-lab.jp"

May 16 2017 08:58:47.556+09:00 INFO  Ruleset "vSPC" enabled on host "HostSystem:host-34 @ /dc02/host/cluster-01/hv-n13.go-lab.jp"

May 16 2017 08:58:47.556+09:00 INFO

May 16 2017 08:58:47.556+09:00 INFO  Firewall changes complete

May 16 2017 08:58:47.556+09:00 INFO  Command completed successfully

[gowatana@client01 vic]$

 

ESXi のもともとの発信接続(outbound) のルールはこうなっていましたが・・・

vic11-fw-01.png

 

設定変更により vSPC のルールセットが解放されました。

vic11-fw-02.png

 

Firewall 設定後に Virtual Container Host (VCH) の作成をしてみると

ESXi Firewall の設定確認が OK になります。

※名前解決の都合上、vCenter はこちらでは IP アドレス(192.168.1.96)で指定しています。

[gowatana@client01 vic]$ ./vic-machine-linux create \

> --target 192.168.1.96 \

> --user gowatana \

> --compute-resource cluster-01 \

> --name vch02 \

> --public-network pg-vds02-0000 --bridge-network vic-bridge-02 \

> --image-store ds_nfs_219 \

> --no-tlsverify --force

May 17 2017 01:37:33.510+09:00 INFO  ### Installing VCH ####

May 17 2017 01:37:33.510+09:00 INFO  vSphere password for gowatana:

May 17 2017 01:37:36.594+09:00 WARN  Using administrative user for VCH operation - use --ops-user to improve security (see -x for advanced help)

May 17 2017 01:37:36.594+09:00 INFO  Generating self-signed certificate/key pair - private key in vch02/server-key.pem

May 17 2017 01:37:36.917+09:00 WARN  Configuring without TLS verify - certificate-based authentication disabled

May 17 2017 01:37:37.049+09:00 INFO  Validating supplied configuration

May 17 2017 01:37:37.154+09:00 INFO  vDS configuration OK on "vic-bridge-02"

May 17 2017 01:37:37.183+09:00 INFO  Firewall status: ENABLED on "/dc02/host/cluster-01/hv-n11.go-lab.jp"

May 17 2017 01:37:37.211+09:00 INFO  Firewall status: ENABLED on "/dc02/host/cluster-01/hv-n12.go-lab.jp"

May 17 2017 01:37:37.236+09:00 INFO  Firewall status: ENABLED on "/dc02/host/cluster-01/hv-n13.go-lab.jp"

May 17 2017 01:37:37.242+09:00 INFO  Firewall configuration OK on hosts:

May 17 2017 01:37:37.242+09:00 INFO     "/dc02/host/cluster-01/hv-n11.go-lab.jp"

May 17 2017 01:37:37.242+09:00 INFO     "/dc02/host/cluster-01/hv-n12.go-lab.jp"

May 17 2017 01:37:37.242+09:00 INFO     "/dc02/host/cluster-01/hv-n13.go-lab.jp"

May 17 2017 01:37:37.354+09:00 INFO  License check OK on hosts:

May 17 2017 01:37:37.354+09:00 INFO    "/dc02/host/cluster-01/hv-n11.go-lab.jp"

May 17 2017 01:37:37.354+09:00 INFO    "/dc02/host/cluster-01/hv-n12.go-lab.jp"

May 17 2017 01:37:37.354+09:00 INFO    "/dc02/host/cluster-01/hv-n13.go-lab.jp"

May 17 2017 01:37:37.357+09:00 INFO  DRS check OK on:

May 17 2017 01:37:37.357+09:00 INFO    "/dc02/host/cluster-01"

May 17 2017 01:37:37.378+09:00 INFO

May 17 2017 01:37:38.444+09:00 INFO  Creating virtual app "vch02"

May 17 2017 01:37:38.469+09:00 INFO  Creating appliance on target

May 17 2017 01:37:38.487+09:00 INFO  Network role "public" is sharing NIC with "management"

May 17 2017 01:37:38.487+09:00 INFO  Network role "client" is sharing NIC with "management"

May 17 2017 01:37:41.062+09:00 INFO  Uploading images for container

May 17 2017 01:37:41.062+09:00 INFO     "bootstrap.iso"

May 17 2017 01:37:41.062+09:00 INFO     "appliance.iso"

May 17 2017 01:37:49.197+09:00 INFO  Waiting for IP information

May 17 2017 01:38:07.152+09:00 INFO  Waiting for major appliance components to launch

May 17 2017 01:38:07.204+09:00 INFO  Obtained IP address for client interface: "192.168.1.2"

May 17 2017 01:38:07.204+09:00 INFO  Checking VCH connectivity with vSphere target

May 17 2017 01:38:07.315+09:00 INFO  vSphere API Test: https://192.168.1.96 vSphere API target responds as expected

May 17 2017 01:38:37.345+09:00 INFO  Initialization of appliance successful

May 17 2017 01:38:37.345+09:00 INFO

May 17 2017 01:38:37.345+09:00 INFO  VCH Admin Portal:

May 17 2017 01:38:37.345+09:00 INFO  https://192.168.1.2:2378

May 17 2017 01:38:37.345+09:00 INFO

May 17 2017 01:38:37.345+09:00 INFO  Published ports can be reached at:

May 17 2017 01:38:37.345+09:00 INFO  192.168.1.2

May 17 2017 01:38:37.345+09:00 INFO

May 17 2017 01:38:37.345+09:00 INFO  Docker environment variables:

May 17 2017 01:38:37.345+09:00 INFO  DOCKER_HOST=192.168.1.2:2376

May 17 2017 01:38:37.346+09:00 INFO

May 17 2017 01:38:37.346+09:00 INFO  Environment saved in vch02/vch02.env

May 17 2017 01:38:37.346+09:00 INFO

May 17 2017 01:38:37.346+09:00 INFO  Connect to docker:

May 17 2017 01:38:37.346+09:00 INFO  docker -H 192.168.1.2:2376 --tls info

May 17 2017 01:38:37.346+09:00 INFO  Installer completed successfully

[gowatana@client01 vic]$

 

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

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

vSphere Integrated Containers (VIC) 1.1 の VIC Appliance デプロイの様子。

 

以上、VIC 1.1 で改善された ESXi Firewall 設定方法の様子についてでした。

vSphere Integrated Containers (VIC) 1.1 がリリースされました。

VMware vSphere Integrated Containers 1.1 Release Notes

 

VIC 1.1 では、1.0 とはソフトウェアの提供形式が変更され、

これまでバラバラだった下記 3コンポーネントが

1つの仮想アプライアンス(vSphere Integrated Containers Appliance)にまとめられました。

  • VMware vSphere Integrated Containers Engine 1.1
  • VMware vSphere Integrated Containers Registry 1.1 (harbor)
  • VMware vSphere Integrated Containers Management Portal 1.1 (admiral)

 

ということで、VIC Appliance を vCenter にデプロイしてみました。

仮想アプライアンスの ova ファイルは、MyVMware からダウンロードします。

 

Download VMware vSphere Integrated Containers 1.1.0

https://my.vmware.com/en/web/vmware/details?downloadGroup=VIC110&productId=614

 

マニュアルは、下記のあたりです。

Deploy the Appliance · VMware vSphere Integrated Containers 1.1 Documentation

 

 

VIC Appliance のデプロイ。

 

今回は、vCenter Server Appliance 6.5 d にデプロイしています。

 

vSphere Web Client でデプロイ先のクラスタを右クリックして「OVF テンプレートのデプロイ」。

vic-11-deploy-01.png

 

ダウンロードした .ova ファイルを選択します。

今回は、vic-v1.1.0-bf760ea2.ova というファイルを使用しています。

vic-11-deploy-02.png

 

デプロイする仮想アプライアンスにつける名前を入力します。
vCenter インベントリでのデプロイ場所も指定します。

※今回は「lab」という仮想マシン フォルダを指定しています。

vic-11-deploy-03.png

 

デプロイ先のリソースを選択します。

※今回は「vsan-cluster-01」という名前の DRS 有効クラスタを指定しています。

vic-11-deploy-04.png

 

仮想アプライアンスの情報です。シン プロビジョニングであれば、5GB 弱です。

vic-11-deploy-05.png

 

使用許諾契約書です。

vic-11-deploy-06.png

 

データストアを選択します。

デフォルトでは「シック プロビジョニング (Lazy Zeroed)」ですが、今回は「シン プロビジョニング」にします。

「vsanDatastore-01」というデータストアを選択しています。

ちなみに、VIC で Docker コンテナを起動するときに Docker Volume で vSAN を利用できますが、
それは VIC Appliance を vSAN に配置することとは特に関係しません。

vic-11-deploy-09.png

 

ポートグループを選択します。

VIC で作成する Virtual Container Host (VCH) では vDS の分散ポートグループが必要になりますが、

VIC Appliance は vSS の標準ポートグループでもデプロイできます。

vic-11-deploy-10.png

 

Appliance Security で、VIC Appliance の Root Password 入力します。

vic-11-deploy-11.png

 

Networking Properties で IP アドレスなどのネットワーク設定を入力します。

「2.6. FQDN」はあとで Web UI での Registry / 管理ポータル のリンクとして使用されるので、

実際に DNS / hosts ファイルなどで名前解決できるものを入力するとよいと思います。

vic-11-deploy-12.png

 

Registry Configuration で、Registry の admin パスワードと DB のパスワードを入力します。

※パスワード以外の項目はデフォルトのままでもデプロイ可能です。

スクリーンショットで見えない項目としては、
Registry の Garbage Collection の有効/無効、SSL Cert / SSL Cert Key を指定できます。

vic-11-deploy-13.png

 

Management Portal Configuration は、今回はデフォルトのままにします。

vic-11-deploy-15.png

 

Fileserver Configuration も、今回はデフォルトのままにします。

vic-11-deploy-16.png

 

最後に、これまでの設定値を確認します。

vic-11-deploy-18.png

 

VIC Appliance のデプロイが完了したら、手動で VM を起動します。

vic-11-deploy-21.png

 

VIC Appliance が起動されました。

vic-11-deploy-24.png

 

VIC Appliance へのアクセス。

Web ブラウザから HTTPS で、アプライアンスの TCP 9443 番ポートにアクセスすると、

VIC のコマンドラインツールと Web Client Plug-in のファイルがダウンロードできます。

※この環境では、すでに VIC Appliance デプロイ時に指定した FQDN を名前解決できるようにしてあります。

vic-11-deploy-26.png

 

これは、Linux などから curl コマンドなどでダウンロードすることも可能です。

ためしに適当な Linux からダウンロードしてみました。

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

Oracle Linux Server release 7.3

[gowatana@client01 ~]$ mkdir work

[gowatana@client01 ~]$ cd work/

 

curl で Web ブラウザ同様 9443 番ポートにアクセスしてみると、
目視でも簡単にわかるシンプルな応答が返ってきます。

[gowatana@client01 work]$ curl -k https://vic01.go-lab.jp:9443/

<pre>

<a href="com.vmware.vic-v1.1.0.zip">com.vmware.vic-v1.1.0.zip</a>

<a href="com.vmware.vic.ui-v1.1.0.zip">com.vmware.vic.ui-v1.1.0.zip</a>

<a href="vic_1.1.0.tar.gz">vic_1.1.0.tar.gz</a>

</pre>

 

curl で vic のコマンドラインツールをダウンロードしてみます。

[gowatana@client01 work]$ curl -ks https://vic01.go-lab.jp:9443/vic_1.1.0.tar.gz -o vic_1.1.0.tar.gz

[gowatana@client01 work]$ tar zxf vic_1.1.0.tar.gz

[gowatana@client01 work]$ ls vic/

LICENSE  appliance.iso  ui                  vic-machine-linux        vic-ui-darwin  vic-ui-windows.exe

README   bootstrap.iso  vic-machine-darwin  vic-machine-windows.exe  vic-ui-linux

 

このように、VIC 1.0 ではバラバラに提供されていた vic-machine コマンドも VIC Appliance に同梱されています。

[gowatana@client01 work]$ cd vic/

[gowatana@client01 vic]$ ./vic-machine-linux help

NAME:

   vic-machine-linux - Create and manage Virtual Container Hosts

USAGE:

   vic-machine-linux [global options] command [command options] [arguments...]

VERSION:

   v1.1.0-9852-e974a51

COMMANDS:

     create   Deploy VCH

     delete   Delete VCH and associated resources

     ls       List VCHs

     inspect  Inspect VCH

     upgrade  Upgrade VCH to latest version

     version  Show VIC version information

     debug    Debug VCH

     update   Modify configuration

     help, h  Shows a list of commands or help for one command

 

GLOBAL OPTIONS:

   --help, -h     show help

   --version, -v  print the version

 

HTTPS で TCP 443 番ポートにアクセスすると、Registry (Harbor) の画面が表示されます。

この Web UI には、admin / デプロイ時に指定したパスワード でログインできます。

※ 443 番ポートの指定は、Web ブラウザの都合上表示されていません。

vic-11-deploy-27.png

 

HTTPS で TCP 8282 番ポートにアクセスすると、VIC Management Portal (Admiral) の画面が表示されます。
なんと、トップページは日本語です。

vic-11-deploy-28.png

 

バージョンは 「.1」 上がっただけですが、製品っぽい形になってきたなと思いました。

 

そして、この後の VCH 作成~ Docker コンテナ起動はこんな感じです。

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

 

以上、VIC 1.1 の VIC Appliance をデプロイしてみる話でした。

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 をインストールしてみる話でした。