Skip navigation
2015

VMware Photon Linux は、デフォルトだと英語圏向けなキーボード配列になています。

このままだと、コンソールからのアクセスでは日本語キーボードで使用しづらいので、

いわゆる「日本語 106 キーボード」に設定変更してみます。


localectl list-keymaps コマンドで確認すると、

「jp106」があります。

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

VMware Photon Linux 1.0 TP1

root [ ~ ]# localectl list-keymaps | grep jp

jp106


デフォルトのキーマップは、特に設定されていません。

root [ ~ ]# localectl

   System Locale: n/a

 

       VC Keymap: n/a

      X11 Layout: n/a


jp106 に変更してみます。

root [ ~ ]# localectl set-keymap jp106

root [ ~ ]# localectl

   System Locale: n/a

 

       VC Keymap: jp106

      X11 Layout: jp

       X11 Model: jp106

     X11 Options: terminate:ctrl_alt_bksp


コマンドの結果はすぐに反映されて、日本語キーボードが使用できるようになります。

そして Photon の OS 再起動後も、設定は維持されます。


ねんのためですが、SSH アクセスする場合は、SSH アクセスもとのキーボード設定によるので

特に今回の設定は関係ありません。

このキーボード設定が関係するのは、Photon ゲストへの VM のコンソールアクセス(下記)や、

物理サーバに Photon をインストールして物理モニタ & キーボード接続で操作する場合です。

photon-kbd-jp106.png

 

以上、Photon で日本語キーボードを使用する話でした。


今回は、VMware Photon Linux への SSH でのアクセスについてです。

「Photon Full OS (All) 」でインストールした Photon に SSH してみます。


Photon では、デフォルトで SSH(sshd) が有効化されていますが、

root ユーザでのログインは禁止されています。

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

VMware Photon Linux 1.0 TP1

root [ ~ ]# systemctl status sshd.service | grep Active

   Active: active (running) since Wed 2015-05-27 14:03:58 UTC; 36min ago

 

そこで、次のような方法で SSH ログインできるようにしてみます。

  • A: root ではない一般ユーザを作成する。
  • B: root での SSH ログインを許可する。

 

A: root ではない一般ユーザを作成する。

 

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

また、作成したユーザで docker コマンドを実行できるように

「docker」グループを作成してユーザを所属させています。


デフォルトだと UID/GID を指定しない場合は 1000 番から採番されますが、

今回はすでに他のユーザ / グループを作成していたので 1001 番になっています。

root [ ~ ]# groupadd docker

root [ ~ ]# useradd -m -g docker gowatana

root [ ~ ]# passwd gowatana

Changing password for gowatana

Enter the new password (minimum of 5 characters)

Please use a combination of upper and lower case letters and numbers.

New password:  ★設定するパスワードを入力。

Re-enter new password:  ★設定するパスワードを再入力。

passwd: password changed.

root [ ~ ]# id gowatana ★ユーザが作成できた。

uid=1001(gowatana) gid=1001(docker) groups=1001(docker)

 

追加作成したユーザであれば、SSH サーバの設定を変更せずに

ssh コマンドや TeraTerm などで SSH ログインすることができます。

ログインしたうえで、su コマンドで root ユーザになることもできます。

gowatana [ ~ ]$ who am i

gowatana pts/1        May 27 14:43 (192.168.1.3)

gowatana [ ~ ]$ su -

Password: ★root ユーザのパスワード入力。

root [ ~ ]#  ★root ユーザになれた。


ちなみに、docker  ユーザに所属していれば、

root ではないユーザのまま docker コマンドを実行できたりもします。

ただし、docker デーモンの起動や停止は root ユーザや sudo での実行が必要です。

※下記の例では、docker デーモンはすでに root ユーザで起動済みです。

gowatana [ ~ ]$ id

uid=1001(gowatana) gid=1001(docker) groups=1001(docker)

gowatana [ ~ ]$ systemctl status docker.service | grep Active

   Active: active (running) since Wed 2015-05-27 14:56:22 UTC; 25min ago

gowatana [ ~ ]$ docker info

Containers: 0

Images: 0

Storage Driver: overlay

Backing Filesystem: extfs

Execution Driver: native-0.2

Kernel Version: 3.19.2

Operating System: <unknown>

CPUs: 1

Total Memory: 993.8 MiB

Name: photon02

ID: 47AQ:EQNC:TIX5:UCSN:54QU:SJWQ:KPTF:5KLW:QGF3:MYZ5:ZFV7:H3UX

 

B: root での SSH ログインを許可する。


SSH サーバの設定を変更して、

sshd を再起動すると root ユーザでログイン可能になります。


まず、sshd の設定ファイル「/etc/ssh/sshd_config」の 134 行目あたりにある、

「PermitRootLogin」を「yes」に変更します。

変更前: PermitRootLogin no

変更前: PermitRootLogin yes


たとえば、下記のように設定ファイルを編集します。

root [ ~ ]# cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bk

root [ ~ ]# vi /etc/ssh/sshd_config

root [ ~ ]# diff /etc/ssh/sshd_config_bk /etc/ssh/sshd_config

134c134

< PermitRootLogin no

---

> PermitRootLogin yes


設定ファイル内には PermitRootLogin の記載が複数個所にありますが、

編集するのはコメントアウトされていない(行頭に # が無い)行の設定です。

root [ ~ ]# cat -n /etc/ssh/sshd_config | grep PermitRootLogin

    44  #PermitRootLogin yes

    93  # the setting of "PermitRootLogin without-password".

   134  PermitRootLogin yes ★変更したのはこの行。

 

そして、sshd を再起動します。

root [ ~ ]# systemctl restart sshd.service


これで、root ユーザでいきなり SSH ログインできるようになります。

 

以上、Photon Linux に SSH ログインする話でした。

VMware Photon Linux の Docker コンテナを、

簡易的に vSphere HA 対応にしてみました。


Docker では、run コマンドに、「--restart」オプションをつけることで、

コンテナを自動再起動されるように起動できます。

Docker run reference

https://docs.docker.com/reference/run/#restart-policies-restart

 

今回は、自動再起動の Docker コンテナをのせた Photon Linux(Docker ホスト)を、

vSphere HA の疑似障害でリセットしてみます。


Photon Linux と vSphere HA の関係。

 

vSphere HA と Docker コンテナの関係は、こんな感じになります。

Photon(Docker ホスト)は、普通の VM としてHA 保護されていて、

その上の Docker コンテナは、Docker の機能で自動再起動を有効化されています。

photon-vha-image-01.png

たとえば、Docker コンテナが障害などで停止した場合は、

そのコンテナが Docker の仕組みで(vSphere HA に関係なく)自動再起動されます。

photon-vha-image-02.png

 

Photon Linux(Docker ホスト)のゲスト OS や VM が停止してしまった場合は、

ゲスト OS の VMware Tools ハートビートが途切れて、

vSphere HA によって VM がリセットされます。

そして VM の自動起動に合わせて、コンテナも自動起動されます。

photon-vha-image-03.png

 

Photon の VM が起動している ESXi が停止した場合は、

他の ESXi で Photon の VM (Docker ホスト自体)が起動され

その VM に含まれるコンテナも自動起動されます。

vSphere HA では、保護対象の VM は共有ストレージ配置するので、

Docker ホストごと、別の ESXi で起動されます。

photon-vha-image-04.png

 

Photon Linux + vSphere HA してみる。

 

今回は、VMware Photon Linux 1.0 TP1 を

vSphere 5.5(vCenter 5.5 / ESXi 5.5)の VM にインストールしています。

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

VMware Photon Linux 1.0 TP1

root [ ~ ]# docker --version

Docker version 1.5.0, build a8a31ef

 

それでは、コンテナを自動再起動オプション付きで起動(docker run)してみます。

今回は「cont01」、「cont02」という名前で、2つのコンテナを起動しています。

  • 「cont01」コンテナは、自動再起動なし。
  • 「cont02」コンテナは、自動再起動あり。(--restart=always)

root [ ~ ]# docker run -d -p 8001:80 --name cont01 vmwarecna/nginx

21ed69a0e2508079e6381f5b52886c31941634c48393315f075a8017b8428dc6

root [ ~ ]# docker run -d -p 8002:80 --name cont02 --restart=always vmwarecna/nginx

941488dd344d7be3ed73aa7c456947826f6b152de8d8c980f99b56ff1366d943

root [ ~ ]# docker ps

CONTAINER ID        IMAGE                    COMMAND                CREATED             STATUS              PORTS                           NAMES

941488dd344d        vmwarecna/nginx:latest   "nginx -g 'daemon of   6 seconds ago       Up 6 seconds        443/tcp, 0.0.0.0:8002->80/tcp   cont02

21ed69a0e250        vmwarecna/nginx:latest   "nginx -g 'daemon of   15 seconds ago      Up 15 seconds       443/tcp, 0.0.0.0:8001->80/tcp   cont01

 

コンテナの情報を表示してみます。

「cont02」コンテナの「RestartPolicy」 に、「always」が設定されていることがわかります。

root [ ~ ]# docker inspect -f "{{ .HostConfig.RestartPolicy }}" cont01

map[MaximumRetryCount:0 Name:]

root [ ~ ]# docker inspect -f "{{ .HostConfig.RestartPolicy }}" cont02

map[MaximumRetryCount:0 Name:always]

 

Photon のゲスト OS は、vSphere HA が有効な状態にしてあります。

Photon Linux には VMware Tools (open-vm-tools)が含まれるので、

HA を有効化してあるクラスタの ESXi で起動されている Photon ゲストも HA で保護されます。

photon-vha-01.png

 

疑似障害を起こすため、Photon Linux の VMware Tools を停止します。

root [ ~ ]# systemctl status vmtoolsd | grep Active

   Active: active (running) since Wed 2015-05-13 22:58:11 UTC; 2 days ago

root [ ~ ]# systemctl stop vmtoolsd

root [ ~ ]# systemctl status vmtoolsd | grep Active

   Active: inactive (dead) since Sat 2015-05-16 14:33:15 UTC; 3s ago

 

少し待つと、VMware Tools のハートビートが途切れたことで障害検知され

vSphere HA により Photon の VM がリセットされました。

photon-vha-02.png

 

VM のイベントにも、

「この仮想マシンは vSphere HA によってリセットされました。

原因: VMware Tools のハートビート障害。~」と表示されます。

VM のリセットにより、Photon のゲスト OS は

(物理サーバでいうところの)電源 Off → On と同じような状態になっています。

photon-vha-03.png

 

Photon の VM が自動起動した後に

Photon に再度ログインしてコンテナの状態を確認すると、

自動起動にしておいた「cont02」コンテナだけ自動起動されています。

root [ ~ ]# docker ps

CONTAINER ID        IMAGE                    COMMAND                CREATED             STATUS              PORTS                           NAMES

941488dd344d        vmwarecna/nginx:latest   "nginx -g 'daemon of   15 minutes ago      Up 3 minutes        443/tcp, 0.0.0.0:8002->80/tcp   cont02

 

自動起動にしたコンテナは、docker stop コマンドなどで停止できます。

root [ ~ ]# docker ps

CONTAINER ID        IMAGE                    COMMAND                CREATED             STATUS              PORTS                           NAMES

941488dd344d        vmwarecna/nginx:latest   "nginx -g 'daemon of   50 minutes ago      Up 38 minutes       443/tcp, 0.0.0.0:8002->80/tcp   cont02

root [ ~ ]# docker stop cont02

cont02

root [ ~ ]# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

root [ ~ ]#  ★「cont02」が停止され、なにも表示されない。

 

以上、Photon を簡易的に vSphere HA 対応させる話でした。

vRealize Operations Manager(VROPS)6.x の Web UI は、

デフォルトだと 30 分でセッション タイムアウトしてしまい、再ログインが必要です。

※vCenter Operations Manager は製品名が変更されて、vRealize Operations Manager になっています。


監視卓みたいに、1日中ただ眺めていたいときには、

このタイムアウト期間を調整することができます。


以前の VCOPS 5.x だと、UI のタイムアウト期間は

VCOSP の OS にログインして設定ファイルを変更する必要がありましたが、

VROPS 6.x からは、Web UI から設定変更ができるようになりました。

 

以前のポスト。(VCOPS5.x)

VCOPS の UI タイムアウト時間を変更する。


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

vRealize Operations Manager カスタマイズおよび管理ガイド

vRealize Operations Manager 6.0.1

http://pubs.vmware.com/vrealizeoperationsmanager-6/topic/com.vmware.ICbase/PDF/vrealize-operations-manager-601-cust-admin-guide.pdf

※P.171 あたり。

 

セッション タイムアウト期間の設定変更方法

 

VROPS の Web UI にアクセスして、管理ユーザ「admin」などでログインします。

https:// <VROPS のアドレス> /vcops-web-ent/

 

今回の VROPS のバージョンは、6.0.1 です。

VROPS のバージョンは、UI 上部の「バージョン情報」で確認できます。

vrops60-timeout-00.png

 

「ホーム」→「管理」を開きます。

vrops60-timeout-01.png

 

「グローバル設定」を開くと、

「セッション タイムアウト」がデフォルトでは 30分になっています。

vrops60-timeout-02.png

 

「グローバル設定」の編集ボタンをクリックすると、設定変更できます。

セッション タイムアウトを、最大値の 34560 分にしてみます。

vrops60-timeout-03.png

 

設定は、即座に反映されます。

VCOPS 5.x の時とは異なり、VROPS のサービス再起動は不要なようです。

※30分間以上放置してもタイムアウトしませんでした。

vrops60-timeout-04.png

 

おまけ

セッション タイムアウトは、無期限にはできないようです。

ためしに「0 分」を入力してみると、

「このフィールドの最小値は 1 です」と表示されてしまいます。

vrops60-timeout-05.png

 

逆に、「34561 分」以上を入力してみると、

「このフィールドの最小値は 34560 です」と表示されてしまいます。

vrops60-timeout-06.png

 

ただ、34560 分もセッションが持続するのであれば充分と思われます・・・

 

以上、VROPS 6.x のセッション タイムアウト期間の変更でした。