Skip navigation
2015

Photon Linux の Docker は、RPM で導入されます。

そして、Photon Linux は、RPM を yum のかわりに tdnf で管理できます。

Photon Linux の RPM パッケージ管理。(yum / tdnf)

 

そこで、tdnf コマンドで docker をアップデートしてみました。

 

VMware Photon Linux 1.0 TP1 は、デフォルトだと Docker 1.5 です。

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

VMware Photon Linux 1.0 TP1

root [ ~ ]# docker -v

Docker version 1.5.0, build a8a31ef

root [ ~ ]# docker version

Client version: 1.5.0

Client API version: 1.17

Go version (client): go1.4.1

Git commit (client): a8a31ef

OS/Arch (client): linux/amd64

Server version: 1.5.0

Server API version: 1.17

Go version (server): go1.4.1

Git commit (server): a8a31ef

 

tdnf コマンドで RPM をダウンロードするリポジトリの設定は、

下記のようにしています。

※設定方法は Yum と同じです。(Yum リポジトリを参照します。)

root [ ~ ]# cat /etc/yum.repos.d/*.repo | grep -E "^\[|baseurl|enable"

[lightwave]

baseurl=https://dl.bintray.com/vmware/lightwave

enabled=0

[photon-extras]

baseurl=https://dl.bintray.com/vmware/photon_extras

enabled=1

[photon-iso]

baseurl=file:///media/cdrom/usr/src/photon/RPMS

enabled=1

[photon-updates]

baseurl=https://dl.bintray.com/vmware/photon_updates_1.0_TP1_x86_64

enabled=1

[photon]

baseurl=https://dl.bintray.com/vmware/photon_release_1.0_TP1_x86_64

enabled=1

 

Docker のアップデートがあるか見てみます。

現状でインストールされているのは、docker 1.5.0-3 @System)で、

リポジトリにある現時点での最新版は、photon-extras にある docker 1.7.0-1 でした。

root [ ~ ]# tdnf list docker

docker.x86_64                                1.5.0-3                     @System

docker.x86_64                                1.5.0-3                  photon-iso

docker.x86_64                                1.6.0-2              photon-updates

docker.x86_64                                1.7.0-1               photon-extras

docker.x86_64                                1.5.0-3                      photon

 

Docker をアップデートします。

root [ ~ ]# tdnf update docker

Upgrading:

docker x86_64  1.7.0-1

Is this ok [y/N]:y

Downloading 4450014.00 of 4450014.00

Testing transaction

Running transaction

 

Docker のバージョンを確認してみます。

RPM のアップデート直後で、まだ Docker サービスを再起動していないため

Client と Server でバージョンが違うとエラーが表示されます。

※Docker のバージョン 1.5 / 1.7 とは違う部分でのバージョン番号についてのエラー表示のようです。

root [ ~ ]# docker -v

Docker version 1.7.0, build 0baf609

root [ ~ ]# docker version

Client version: 1.7.0

Client API version: 1.19

Go version (client): go1.4.2

Git commit (client): 0baf609

OS/Arch (client): linux/amd64

Error response from daemon: client and server don't have same version (client : 1.19, server: 1.17)

 

Systemd で管理されている Docker サービスを再起動します。

Systemd の Unit ファイルも更新されているようで、

systemctl daemon-reload を実行しておきます。

root [ ~ ]# systemctl restart docker

Warning: Unit file of docker.service changed on disk, 'systemctl daemon-reload' recommended.

 

Docker サービスの再起動

root [ ~ ]# systemctl daemon-reload

root [ ~ ]# systemctl restart docker

 

バージョン確認でも、エラー表示がなくなりました。

root [ ~ ]# docker version

Client version: 1.7.0

Client API version: 1.19

Go version (client): go1.4.2

Git commit (client): 0baf609

OS/Arch (client): linux/amd64

Server version: 1.7.0

Server API version: 1.19

Go version (server): go1.4.2

Git commit (server): 0baf609

OS/Arch (server): linux/amd64

 

以上、Photon の Docker をアップデートする話でした。

VMware Lightwave の、ドメインコントローラとクライアント(ドメイン参加しているサーバ)ですが、

それぞれのサーバで vmafd-cli コマンドを実行することで確認できます。

 

これのコマンドは、 Lightwave の RPM をインストールすると一緒にインストールされる

vmware-afd-client という RPM に含まれます。

「afd」というのは、VMware Authentication Framework Service のデーモンということのようです。

root [ ~ ]# rpm -qf /opt/vmware/bin/vmafd-cli

vmware-afd-client-6.0.0-0.x86_64

 

Lightwave ドメインコントローラ側の見え方。


「photon-lw01」 というホスト名の Photon Linux を Lightwave ドメインコントローラにしています。

root [ ~ ]# uname -n

photon-lw01

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

VMware Photon Linux 1.0 TP1

root [ ~ ]# rpm -qa | grep lightwave

vmware-lightwave-server-6.0.0-0.x86_64

 

vmafd-cli get-domain-state ~ というコマンドで確認すると、

「Controller」 と表示されます。

そして、ドメイン名が「lightwave.local」 だということもわかります。

root [ ~ ]# /opt/vmware/bin/vmafd-cli get-domain-state --server-name localhost

Controller

root [ ~ ]# /opt/vmware/bin/vmafd-cli get-domain-name --server-name localhost

lightwave.local

root [ ~ ]# /opt/vmware/bin/vmafd-cli get-dc-name --server-name localhost

photon-lw01

 

ドメイン参加しているクライアント側の見え方。

 

lightwave.local ドメインに参加している、「photon01」というホスト名の Photon を見てみます。

root [ ~ ]# uname -n

photon01

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

VMware Photon Linux 1.0 TP1

root [ ~ ]# rpm -qa | grep lightwave

vmware-lightwave-clients-6.0.0-0.x86_64

 

こちらは、vmafd-cli get-domain-state コマンドで「Client」と表示されます。

そして参加しているドメイン名と、ドメインコントローラもわかります。

root [ ~ ]# /opt/vmware/bin/vmafd-cli get-domain-state --server-name localhost

Client

root [ ~ ]# /opt/vmware/bin/vmafd-cli get-domain-name --server-name localhost

lightwave.local

root [ ~ ]# /opt/vmware/bin/vmafd-cli get-dc-name --server-name localhost

photon-lw01.godc.lab

 

ちなみに、RPM インストールしただけの状態だと、

vmafd-cli  を実行してもまだエラーになるだけです。

root [ ~ ]# /opt/vmware/bin/vmafd-cli get-domain-name --server-name localhost

Error 1021: Could not connect to the local service VMware AFD.

Verify VMware AFD is running.

 

こちらもどうぞ・・・

VMware Lightwave をためしてみる。Part 1(Lightwave Server インストール)

VMware Lightwave をためしてみる。Part 2(Lightwave Client インストール)

VMware Lightwave をためしてみる。Part 3(Lightwave のユーザ作成)

 

以上。Lightwave ドメインコントローラとメンバの見分け方でした。

これまで、いくつか VMware Photon Linux のログ出力先を変更してみました。

そして今回は Log Insight に転送してみます。

 

これまでの話と、Log Insight への転送イメージ。

 

Photon のログ出力についてですが・・・

 

1. デフォルトでは、メモリ領域へログ出力される。

Journald でログ出力されるため、デフォルトでは /run/log/journal ディレクトリに出力される。

メモリベースの領域なので、OS 再起動するとログはリセットされる。

 

2. ディスクに永続化されるように構成変更。

ディスクベースの /run/log/journal ディレクトリ配下に出力変更してみた。

ログは永続化されて、OS 再起動しても消えないようになる。

Photon Linux のシステムログの永続化。(Journald)

 

3. Syslog サーバへ転送。

logger コマンドで Syslog サーバへ転送してみた。

Photon Linux のシステムログを Syslog サーバへ転送。(logger コマンド)

 

ここまでは、こんなイメージです。

photon-logger-01.png

今回は、Log Insight 2.5 を使用しています。

Log Insight への転送は、Syslog サーバへの転送と同じ方法を使います。

logger コマンドで、Log Insight の UDP 514番ポートへ転送してみます。

※Log Insight Agent は Photon 対応っぽくなかったので、とりあえず logger で・・・

photon-logger-02.png

 

Photon Linux のログを Log Insight へ転送。

まずは、Photon Linux に、前回と同様の logger スクリプトを配置しておきます。

※スクリプトの内容は下記にて。

Photon Linux のシステムログを Syslog サーバへ転送。(logger コマンド)

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

VMware Photon Linux 1.0 TP1

root [ ~ ]# ls -l /etc/systemd/scripts/logger.sh

-rwxr-xr-x 1 root root 225 Jul 31 08:27 /etc/systemd/scripts/logger.sh

 

Systemd に Log Insight 転送用のサービスを登録するため、Unit ファイルを作成します。

root [ ~ ]# vi /etc/systemd/system/logger-loginsight.service

 

/etc/systemd/system/logger-loginsight.service の内容。

※「vli25n01.godc.lab」が転送先の Log Insight です。

[Unit]

Description=Journald Logger

ConditionFileIsExecutable=/etc/systemd/scripts/logger.sh

After=network-online.target

 

[Service]

ExecStart=/etc/systemd/scripts/logger.sh vli25n01.godc.lab

 

[Install]

WantedBy=multi-user.target

 

Systemd にサービスを登録~起動します。

root [ ~ ]# systemctl enable logger-loginsight.service

Created symlink from /etc/systemd/system/multi-user.target.wants/logger-loginsight.service to /etc/systemd/system/logger-loginsight.service.

root [ ~ ]# systemctl start logger-loginsight.service

 

これで Log Insight に Journald のログが転送されます。

 

Log Insight で見てみる。

 

今回は、3台の Photon (192.168.1.31 ~ 33)からログ転送してみています。

logger コマンドの「-t」オプションで「PHOTON_LOGGER」とタグ付しているため、

Photon から転送されたログを識別しやすくなっています。

 

ためしに Docker コンテナの起動(「docker run」 コマンド)を検索してみましたが、

せっかく 3台あるのに、ほとんど 1号機しか使っていなそうな様子が見受けられます。

photon-loginsight.png


以上、Photon のログを Log Insight に転送してみる話でした。

他にも使い道を模索してみたいと思います・・・

VMware Flings に、Host Client が公開されました。

ESXi を Web ブラウザで管理できるようにする HTML5 ベースのツールです。

 

ESXi Embedded Host Client

https://labs.vmware.com/flings/esxi-embedded-host-client

 

VMware vSphere Blog などでも紹介されています。

 

Introducing the vSphere Host Client fling

https://blogs.vmware.com/vsphere/2015/08/introducing-vsphere-host-client-fling.html

 

ESXi に VIB ファイルをインストールすることで使用できるようになり、

従来の vSphere Client(通称 C# 版と呼ばれる)のかわりに ESXi の操作ができます。

host-client.png


ためしに、インストールしてみました。

 

ESXi Embedded Host Client のインストール。

 

今回は、少し前のバージョンですが ESXi 6.0 GA にインストールしてみます。

[root@hv60n01:~] vmware -vl

VMware ESXi 6.0.0 build-2494585

VMware ESXi 6.0.0 GA

 

今回インストールする VIB ファイルは「esxui-2976804.vib」です。

SSH などで、ESXi に配置しておきます。

[root@hv60n01:~] ls /vmfs/volumes/datastore1/

esxui-2976804.vib

 

VIB ファイルの情報を見てみます。

なんと、VIB Fling ですが Acceptance Level の設定は VMwareCertified になっていました。

[root@hv60n01:~] esxcli software sources vib get -v /vmfs/volumes/datastore1/esxui-2976804.vib

VMware_bootbank_esx-ui_0.0.2-0.1.2976804

  Name: esx-ui

  Version: 0.0.2-0.1.2976804

  Type: bootbank

  Vendor: VMware

  Acceptance Level: VMwareCertified

  Summary: vSphere Host Client

  Description: An embedded web UI for ESXi

  ReferenceURLs:

  Creation Date: 2015-08-11

  Depends: esx-version >= 5.0.0

  Conflicts:

  Replaces:

  Provides:

  Maintenance Mode Required: False

  Hardware Platforms Required:

  Live Install Allowed: True

  Live Remove Allowed: True

  Stateless Ready: True

  Overlay: False

  Tags:

  Payloads: esx-ui

 

VIB ファイルをインストールします。

[root@hv60n01:~] esxcli software vib install -v /vmfs/volumes/datastore1/esxui-2976804.vib

Installation Result

  Message: Operation finished successfully.

  Reboot Required: false

  VIBs Installed: VMware_bootbank_esx-ui_0.0.2-0.1.2976804

  VIBs Removed:

  VIBs Skipped:

 

Web ブラウザからアクセスしてみます。

これまで vSphere Client でアクセスしていたアドレスで接続可能で、下記のような URL でアクセスできます。

https://<ESXi の管理ネットワークのアドレス>/ui/

 

ESXi のローカルユーザ(root など)でログインできるはずです。

host-client-flings-01.png

 

ESXi Embedded Host Client の見た目。

 

ログインすると、下記のような画面です。Web Client をシンプルにした感じです。

host-client-flings-02.png

 

VM の画面はこんな感じです。

host-client-flings-03.png

 

ストレージ(データストアなど)の画面はこんな感じです。

host-client-flings-04.png

 

ネットワークの画面はこんな感じです。

host-client-flings-05.png

 

ネットワークの画面には、TCP / IP stacks のタブがあったりします。

host-client-flings-06.png

 

ただし、(まだ?) Flings なので、製品サポートは受けられないと思います。

vSphere Client が将来的にはなくなるらしいと話題になっていますが、

こんな感じに落ち着くのかもしれません。

 

VMTN Community のページはこちら。

https://communities.vmware.com/community/vmtn/vsphere/hostclient

 

以上、Host Client の Fling を試してみた話でした。

今回は、Lightwave ドメインにユーザを作成して、

Docker コマンドを実行できるようにしてみます。


これまでの流れはこちら。

VMware Lightwave をためしてみる。Part 1(Lightwave Server インストール)

VMware Lightwave をためしてみる。Part 2(Lightwave Client インストール)


環境は前回と同様で、Lightwave Server / Client どちらも Photon Linux です。

  • Lightwave Server → ホスト名は photon-lw01.godc.lab
  • Lightwave Client & Docker Host → ホスト名は photon01.godc.lab


1. Lightwave サーバでのユーザ / グループ作成。


まずは、Lightwave サーバで作業します。

root [ ~ ]# uname -n

photon-lw01

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

VMware Photon Linux 1.0 TP1

root [ ~ ]# rpm -qa | grep lightwave

vmware-lightwave-server-6.0.0-0.x86_64

 

Lightwave Server は、ドメインコントローラとしてセットアップ済みです。

VMware Lightwave をためしてみる。Part 1(Lightwave Server インストール)

 

Lightwave に、「docker」という名前のグループを作成します。

Lightwave のグループとユーザの作成や設定変更では、dir-cli コマンドを使用します。

dir-cli は、/opt/vmware/bin ディレクトリに格納されています。

※dir-cli の実行時には Lightwave 管理者のパスワードを入力します。

root [ ~ ]# cd /opt/vmware/bin/

root [ /opt/vmware/bin ]# ./dir-cli ssogroup create --name docker

Enter password for administrator@lightwave.local: ★管理者のパスワードを入力。

Service [docker] created successfully

 

作成した直後のグループには、まだユーザが所属していません。

root [ /opt/vmware/bin ]# ./dir-cli group list --name docker

Enter password for administrator@lightwave.local:

group [docker] has no members

 

次に、Lightwave にユーザを作成します。

今回は「lw_user01」というユーザを作成します。

root [ /opt/vmware/bin ]# ./dir-cli user create --account lw_user01 --first-name user01 --last-name lw

Enter password for administrator@lightwave.local:

Enter password for lw_user01@lightwave.local: ★作成するユーザに設定するパスワードを入力。

User account [lw_user01] created successfully

 

「dir-cli user find-by-name  ~」で、作成したユーザの情報を表示できます。

root [ /opt/vmware/bin ]# ./dir-cli user find-by-name --account lw_user01 --level 0

Enter password for administrator@lightwave.local:

Account: lw_user01

UPN: lw_user01@lightwave.local

 

「--level」の数字により、表示される情報が異なります。

Level 1 では、First Name と Last Name が表示されます。

root [ /opt/vmware/bin ]# ./dir-cli user find-by-name --account lw_user01 --level 1

Enter password for administrator@lightwave.local:

Account: lw_user01

UPN: lw_user01@lightwave.local

First Name: user01

Last Name: lw

 

Level 2 では、アカウントのロック状態やパスワード期限が表示されます。

root [ /opt/vmware/bin ]# ./dir-cli user find-by-name --account lw_user01 --level 2

Enter password for administrator@lightwave.local:

Account: lw_user01

UPN: lw_user01@lightwave.local

Account disabled: FALSE

Account locked: FALSE

Password never expires: FALSE

Password expired: FALSE

Password expiry: 89 day(s) 23 hour(s) 59 minute(s) 42 second(s)

 

そして、「lw_user01」を、Lightwave に作成した「docker」グループに追加します。

root [ /opt/vmware/bin ]# ./dir-cli group modify --name docker --add lw_user01

Enter password for administrator@lightwave.local:

Account [lw_user01] added to group [docker]

 

ユーザが追加されました。

ただし、ユーザ名ではなく First Name と Last Name が表示されます。

root [ /opt/vmware/bin ]# ./dir-cli group list --name docker

Enter password for administrator@lightwave.local:

CN=user01 lw,cn=users,dc=lightwave,dc=local

 

2. Lightwave クライアント側での設定

今回作成した Lightwave グループ「docker」(lightwave.local\docker)に所属するユーザが

「sudo docker ~」コマンドを実行できるようにします。

 

ここでは、Lightwave クライアント側の Photon で作業します。

この Photon は、Docker Host でもあります。

root [ ~ ]# uname -n

photon01

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

VMware Photon Linux 1.0 TP1

root [ ~ ]# rpm -qa | grep lightwave

vmware-lightwave-clients-6.0.0-0.x86_64

 

Lightwave クライアントの Photon は、既に Lightwave ドメインに参加ずみです。

VMware Lightwave をためしてみる。Part 2(Lightwave Client インストール)


sudo を許可するため、sudoers ファイルを新規作成します。

今回作成する「/etc/sudoers.d/lightwave-docker」ファイルでは、

「lightwave.local\\docker」グループの「/bin/docker」コマンドを、パスワードなしで実行許可しています。

root [ ~ ]# echo '%lightwave.local\\docker ALL=(ALL) NOPASSWD: /bin/docker' > /etc/sudoers.d/lightwave-docker

root [ ~ ]# cat /etc/sudoers.d/lightwave-docker

%lightwave.local\\docker ALL=(ALL) NOPASSWD: /bin/docker

 

ちなみに、Lightwave ドメインの Administrator ユーザに対しての sudo 設定例が

GitHub にある README で紹介されています。

lightwave/README-SSH.md at master · vmware/lightwave · GitHub

 

3. Lightwave ユーザでの Docker 操作。

Lightwave ユーザで Photon にログインして、docker コマンドを実行してみます。

 

まず、ssh コマンドや TeraTerm などから Lightwave クライアントに、

Lightwave ドメインのユーザでログインします。

 

ユーザ名は、下記のどちらかで指定します。

<Lightwaveドメイン>\<ユーザ名> ※Linux 等のシェルで指定する場合は「\」を「\\」にします。

<ユーザ名>@<Lightwaveドメイン>


ssh コマンドでログインする場合は、下記のようにユーザ名を指定します。

# ssh -l lightwave.local\\lw_user01 photon01.godc.lab

 

TeraTerm でログインする場合は、下記のようにユーザ名を指定します。

lightwave-login.png


ログインすると、プロンプトにユーザ名が表示されます。

そして、「id」コマンドでユーザ情報を表示すると

「lightwave.local\docker」グループに所属していることがわかります。

lightwave.local\lw_user01 [ ~ ]$ uname -n

photon01

lightwave.local\lw_user01 [ ~ ]$ id

uid=16778249(lightwave.local\lw_user01) gid=545(lightwave.local\Users) groups=545(lightwave.local\Users),16778250(lightwave.local\docker)

 

docker コマンドは、sudo コマンド(sudo docker ~)で実行します。

ためしに Oracle Linux のコンテナイメージを起動してみました。

lightwave.local\lw_user01 [ ~ ]$ sudo docker run -it oraclelinux:6 /bin/bash

Unable to find image 'oraclelinux:6' locally

Pulling repository oraclelinux

cfc75fa9f295: Download complete

8c3e49cb06dc: Download complete

c96aadb57deb: Download complete

Status: Downloaded newer image for oraclelinux:6

[root@64c52aebde0f /]#  ★ここからコンテナの中。

[root@64c52aebde0f /]# cat /etc/oracle-release

Oracle Linux Server release 6.7

[root@64c52aebde0f /]# lightwave.local\lw_user01 [ ~ ]$ ★Ctrl+p+q でコンテナから抜ける。

lightwave.local\lw_user01 [ ~ ]$ sudo docker ps

CONTAINER ID        IMAGE              COMMAND            CREATED            STATUS              PORTS              NAMES

64c52aebde0f        oraclelinux:6      "/bin/bash"        33 seconds ago      Up 32 seconds                          mad_ritchie

 

たとえば、Docker Engine を利用する目的だけで Photon にログインするユーザを多めに作るとしたら、

こんな感じにすると、Lightwave でのユーザ作成→グループ参加だけで済むようになるはずです。

 

以上、Lightwave ユーザを作成して docker コマンドを実行してみる話でした。

今回は、以前の Photon Linux ネットワーク設定の続きです。

Photon Linux の Network 設定変更について。(IP / DNS / Hostname...)

 

Photon にネットワーク関連の設定をするとき、

「/etc/systemd/network/~.network」ファイルの

[Network] セクション → Gateway でデフォルトゲートウェイが設定できました。

 

(例)

root [ ~ ]# cat /etc/systemd/network/10-static-eth0.network

[Match]

Name=eth0

 

[Network]

DHCP=no

Address=192.168.1.33/24

Gateway=192.168.1.1

DNS=192.168.1.254

 

そしてデフォルトゲートウェイ以外の経路も設定したかったのですが、

Photon には Red Hat 系でなじみのある

/etc/sysconfig/network/network-scripts 配下のファイルは見当たりませんでした。

 

そこで、前掲のネットワーク設定ファイルに [Route] セクションを追記してみました。

 

(参考)

systemd.network — Network configuration

http://www.freedesktop.org/software/systemd/man/systemd.network.html

 

まず、現状はデフォルトゲートウェイだけ設定されています。

root [ ~ ]# ip route

default via 192.168.1.1 dev eth0  proto static

192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.33


ネットワーク設定をしたファイルに、[Route] セクションを追記して、ルーティング情報を記載します。

root [ ~ ]# vi /etc/systemd/network/10-static-eth0.network

 

/etc/systemd/network/10-static-eth0.network ファイルの内容。

※ためしに2つ追記してみました。

[Match]

Name=eth0

 

[Network]

DHCP=no

Address=192.168.1.33/24

Gateway=192.168.1.1

DNS=192.168.1.254

 

[Route]

Gateway=192.168.1.251

Destination=192.168.4.0/24

 

[Route]

Gateway=192.168.1.252

Destination=192.168.5.0/24


systemd-networkd を再起動します。

root [ ~ ]# systemctl restart systemd-networkd

 

経路情報が2つが追加されました。

root [ ~ ]# ip route

default via 192.168.1.1 dev eth0  proto static

192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.33

192.168.4.0/24 via 192.168.1.251 dev eth0  proto static

192.168.5.0/24 via 192.168.1.252 dev eth0  proto static

 

ちなみに、追加したスタティックルートを消したい場合は、

ファイルから [Route] セクションを削除して、

「ip route del 宛先 via ゲートウェイアドレス」 といったコマンドを実行すると削除できます。

(例)

root [ ~ ]# ip route del 192.168.4.0/24 via 192.168.1.251

 

逆に、コマンドラインで一時的にスタティックルートを追加する場合は、

「ip route add 宛先 via ゲートウェイアドレス」 といったコマンドラインになります。

(例)

root [ ~ ]# ip route add 192.168.4.0/24 via 192.168.1.251

 

以上、Photon Linux へのスタティックルート追加でした。