2020年5月4日月曜日

Sameime 11 インストール

私は Notes/Domino のインストール経験はありますが、OSは Windows ばかりで、Linux へは誰の手も借りずにインストールしたことがありませんでした。


そんな私が Linux で稼働する Domino へ Sametime Community Server をインストールする機会がありました。

また Sametime Meetings Preview がもうすぐ始まりそうです。=>登録ページ


Sametime のインストールについて、前バージョンの経験者からは「非常に面倒」と聞いていました。V11 では、インストーラのサイズが小さくかつ簡単になった、といったようなことが公式ブログの記事(下のURL)にも書かれています。

『HCL Sametime 11 Chat 導入ガイドを公開しました』
https://hcljapan.co.jp/software/blog/hcl-sametime-11-chat-%E5%B0%8E%E5%85%A5%E3%82%AC%E3%82%A4%E3%83%89%E3%82%92%E5%85%AC%E9%96%8B%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F



私はそんな記事を鵜吞みにしていたこともあり、完全に舐めてました。

Linux の操作も Sametime のインストールも経験の無い私が、インストールガイド(以降「ガイド」と呼びます)を読みつつ、わからないことをちまちまと調べたりサポートに問い合わせしたりした結果、Domino が既に導入済みの環境にもかからわず、完了までに約 2 人日もかかってしまったのです...



このエントリーでは、その顛末を記載します。ここでは、インストールの方法ではなく主に「はまったポイント」を取り上げます。ガイドの補足としてお読みください。



まずは Sametime V11 について知りたい方には、次の資料をご覧になることをおすすめします。

『製品情報: HCL Sametime V11 の製品紹介資料』
https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0078419



公開されているガイドは2種類あります。

ひとつが Windows と Linux の両方に触れている英語のものです。

『HCL Sametime 11 Installation and Administration Guide』
https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0074599



もうひとつは、Windows版のみ解説されている日本語のもの、

『HCL Sametime 11 Chat のインストール手順』
https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0074706



今回私は不慣れな Linux (CentOS7) 上へ Domino 11.0.1 、 Sametime 11.0 FP1 Community Server、Sametime 11.0 FP1 Proxy Server をインストールしてみようと思い立ち、前者のガイドを使用しています。




ガイドを読み進めてみたのですが、私にはわからないことがありました。

Standard と Limited Use の違い、Mux server、GSKit、Proxy Server、などなど...

これらは環境構築の前提として選択することが必要ですが、何を選択すればいいのかわからないので困りました。


現時点では、こういった用語について説明された V11 の文書が分散しているようで、V10 のようにまとまったヘルプがまだ存在していません。とは言え次の文書になんとなくまとまっています。

『HCL Sametime 11.0 Administrator Documentation』
https://help.hcltechsw.com/sametime/11.0.0/administrator_doc.html


公式のオンラインヘルプにある V10 の文書を参考にすることはできると思います。

『Sametime 10.0 Installation and Administration』
https://help.hcltechsw.com/sametime/10.0/index.html



V11 固有の機能について知りたい場合、カスタマーサポートのトップページから「Sametime 11 <知りたい事>」といった感じで検索してみて、さらに絞り込んでいくのも良いと思います。

https://support.hcltechsw.com/csm?id=csm_index




では、インストールしていきます。


ガイド中で Domino をインストールする項の冒頭に「Linux OS が "en_US" ロケールにインストールされていることを確認してください」(意訳)とボールド体で強調されている部分があります。ロケールを "ja_JP.UTF-8" で進めてしまった私は、のちのちドはまりすることになりました。少なくとも Sametime のインストール前には、次のコマンドでロケールを "en_US" に変えましょう。

> localectl set-locale LANG=en_US

ロケールを変えた後は念のためログインし直しましょう。
ロケールを変えずに進めるとどうなったかについては、後述します。

なお Domino のインストールについてガイドには手順が書かれていますが、インストールとセットとなるOS側の設定(ユーザーとグループを追加するなど)には触れられていません。「domino 11 centos install」でググるとヒットする海外の HCL Master のブログがありました。

ちなみに、Domino 11.0.1 のインストーラは、まっさらの環境に新規にインストールすることできます。


Sametime Community Server (以降「Sametime」と呼びます)では、Persistent Chat (永続的なチャット)が有効の状態でインストールされます。Persistent Chat は MongoDB (に格納された chat logging 情報)を利用します。そのため Sametime インストールの前に MongoDB のインストールを済ませておくことが必要です。ただし、Sametime インストール後はガイドの記載に従って Persistent Chat と MongoDB の要件を無効にすることができます。


という訳で先に MongoDB をインストールします。


MongoDB は yum(=パッケージ管理ツール)でインストールするのですが、MongoDB の最新バージョンではなく、サポートされている 3.6 というバージョンをインストールするために、ファイル mongodb-org-3.6.repo を作成しておきます。ここが私にとって一つ目のハマりポイントでした。

作成したファイルの内容はガイドに記載されていますので、それをコピペすることができます。内容の一部に、ページ幅で収まらず途中で改行されている長い1行があります。その行の右端にあるハイフンが、ペーストしたときに欠落する場合がありました。ハイフンが欠落したままだと yum によるインストールが失敗します。ご注意ください。

yum では MongoDB と依存関係にある他のパッケージを自動でインストールしてくれ、非常に便利です。



ガイドでは、インストールの後 MongoDB を起動します。私は Linux に慣れてないこともあり大文字小文字をガイドのとおりにタイプするよう注意しています。ガイドには次のコマンドの 1 文字目は大文字の S で記載されていますが、これでは MongoDB は起動しません。

Service mongod start

小文字の s に読み替えましょう。



次、めちゃくちゃ重要です。



ガイドに従い MongoDB の設定を進めていくと「db.createUser({」で始まるコマンドを実行する手順の前に、次の記述があります。

Exit the mongo shell (type ‘exit’) and restart the MongoDB server with ‘service mongod restart’ and then continue with the commands below -

【日本語訳】

mongo シェルを終了して('exit' と入力)、'service mongod restart' で MongoDB サーバーを再起動してから、以下のコマンドを実行します。

ここでは、MongoDB サーバーを再起動した後、「db.createUser({」で始まるコマンドを投入するのですが、コマンド投入の前には、

> mongo

の実行後、

> use admin

忘れずに実行しておきます。

ここで use admin を実行しない場合、作成されるユーザーが admin.sametimeUser ではなく test.sametimeUser となります。

「db.createUser({」で始まるコマンドを投入したあとに、admin.sametimeUser で作成されていることを確認するには、次のコマンドを投入します。

> mongo

> use admin

> db.system.users.find()


もし test.sametimeUser で作成されていた場合、次のコマンドで削除した後、admin に切り替えて作成しなおしましょう。

> mongo

> use test

> db.dropUser("sametimeUser")


ここで test.sametimeUser のまま進めてしまった私の環境では、MongoDB のログ(/var/log/mongodb/mongod.log)に認証関連のエラーが大量に記録されてしまい、たった8日間でファイルサイズが 24GB まで膨れ上がりました。ディスク容量が圧迫され、Domino の夜間タスク等で「空きが無い」ことに由来するエラーを頻発する事態となりました。



さらに導入を進めて MongoDB の設定が完了したら、いよいよ Sametime Community 11.0 FP1 のインストールです。
※Sametime Community 11.0 FP1 のインストーラは Sametime 11.0 がインストールされていない環境へのインストールが可能です。



インストーラパッケージを解凍すると「Server」サブディレクトリが作成され、その中にファイル install.bin が追加されています。このファイルでインストールを実行しますが、その前に install.bin があるディレクトリへ移動して、パーミッション(実行権限)を変更します。次のコマンドでパーミッションを変更できます。

> chmod 777 install.bin


この install.bin をオプションなしで実行すると、インストーラの GUI が起動します。

GUIのインストールを進めていくと、私の環境では、テキストが無く縦に3つのラジオボタンだけが表示される画面がありました。日本語のガイドには説明がありますが、上から Standard, Limited Use, Dynamic の三択です。



日本語のガイドには「HCL Sametime サーバーは LDAP を使用します」とありますが、次のブログにも書かれているとおり V11 は Domino ディレクトリだけで構成することも可能です。今回私は LDAP を使いませんでした。

https://hcljapan.co.jp/software/blog/why-you-need-to-upgrade-to-sametime-v11-right-now



インストールが成功すると、データディレクトリ直下にあるファイル  stsetup_exit_status.txt に 0 が入ります。

ロケールを "en_US" に変更してインストールすると書きましたが、私のように "ja_JP.UTF-8" のまま進めると、ファイル stsetup_exit_status.txt に 0 がセットされていても実はインストールに失敗している、といったことがありました。この問題は次の技術情報で公開されています。

『Installing Sametime Community Server in Linux fails with no error』
https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0078564


もし stsetup.log 内のエラーが合致する場合、上の技術情報に従い対応した後、Sametime を上書きインストールしましょう。



さて、Sametime のインストールまで終われば、クライアントから接続できそうです。



私は 接続を確認するクライアントとして、Notesクライアントに内臓の Sametime アドイン(右のサイドバーに「Sametime 連絡先」として表示されるやつ)を使いました。

このクライアントのデフォルトは Sametime サーバーへのアクセスにポート 1533/tcp を使います。そのためポート 1533/tcp を Linux(CentOS7) 側で開ける必要があります。
※この時点では、80/tcp, 443/tcp, 1352/tcp, 1533/tcp 等のポートを開けていました


Sametime のクライアントは Notesに内臓のアドイン以外にも、Webブラウザや iPhone/Android のアプリ、Windows/Mac へインストールするタイプのものがあります。使用するクライアントや機能によって使用するポートがいろいろあります。次のURLはV10の情報ですが参考になると思います。

『Ports to open in firewalls』
https://help.hcltechsw.com/sametime/10.0/plan/plan_portstoopeninfirewalls.html?hl=firewall



Sametime を起動するには、Dominoデータディレクトリにある ststart スクリプトを実行します。

> su notes

> ./ststart

実際は Domino が起動した時に、Domino のタスクのひとつ(notes.ini の servertasks= に追加されている staddin)として Sametime が起動します。

ststart スクリプトでは、Sametime の実行に必要な環境変数などを設定します。 Sametime の設定を変更して再起動しなければならない場合、Domino コンソールから quit を実行する、またはシェルから

> ./ststart stop

として停止させてから再度起動します。

Domino まで停止しなくて良い場合は、Domino コンソールから次のコマンドで終了と起動を行うほうが手間がありません。

tell staddin q

load staddin



Limited use ライセンスの場合は、機能制限を反映させるためにポリシーファイルを手動で変更します、との記載が次の技術情報にあります。

『Manual settings required for HCL Sametime 11 Limited Use after installation』
https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0075403


この他、ガイドにも、永続的なチャット(persistent chat)を許可する「ポリシー」を設定する方法が記載されてもいます。

これらポリシーの変更は、Domino データディレクトリ直下にあるファイル "policies.user.xml" を編集します。ガイドに記載のファイル名(...users.xml)は誤りですので検索にヒットしません。それから、Domino データディレクトリ下の policy ディレクトリにも同名のファイルがありますが、こちらは変更しないように。


policies.user.xml 内をポリシーの id で検索すると "im.v10sample.policy", "im.default.policy", "im.anonymous.policy" の3か所でヒットします。

"im.v10sample.policy" はコメントアウトされており無効です。

Webブラウザからの匿名アクセスを許可している場合に "im.anonymous.policy" が使用されます。ログインを前提とする場合は使用しません。

ちなみに、Domino ディレクトリに登録したグループ(のメンバー)へ適用するポリシーを設定することが可能との事。



MongoDB のログはデフォルトでは /var/log/mongodb/mongod.log に作成されます。前述のとおり私の環境では設定ミスにより肥大化する現象が発生しましたが、正しく設定された状態でもログファイルは mongod.log に追記される設定です。

MongoDBでは、ログをローテーションする設定が可能です。次の文書が参考になります。

https://docs.mongodb.com/manual/reference/command/logRotate/


ローテーションを設定すれば、コマンド発行によりログファイルを切り替え可能です。Sametime 稼働中にも切替できます。定期的にコマンド発行を実施することで、過去ログを圧縮したり古すぎるログを削除する、といった運用も可能と思います。



私は今回、GUIインストールとサイレントインストールのどちらも試しました。そのどちらにも Sametime のアンインストーラ uninstall.bin が存在しないのは私だけでしょうか...

【2020/5/11 追記】次の技術情報が公開されました。Linux 版の 11.0, 11.0FP1 ともにアンインストーラは無いようです...
How one can uninstalls Sametime v11/v11FP1 community server & then reinstalls it?
https://hclpnpsupport.hcltech.com/csm?id=kb_article&sysparm_article=KB0079104&sys_kb_id=31bbc8841bfcdc54c48197d58d4bcb14



Domino の起動直後、Domino コンソールに「重大: Failed to read from file」が表示されることがありますが、これは無視できるエラーらしいのですが、消すことができないようです。※SAME-32778 として問題が報告されています



Sametime Mux Server は、コネクションを管理できるものらしいのですが、ここでは不要なためインストールしませんでした。



Sametime 11.0 FP1 Proxy Server (以降「Proxy」と呼びます)のインストーラは、Sametime Communinty Server のとは別です。インストーラを解凍すると sametimeproxy サブディレクトリ内にファイル install.sh があります。これもパーミッションを変更しておきます。

> chmod 777 install.sh


Proxy のインストール時に "Sametime Server Host" や "Mongo Host" などを聞かれます。"Sametime Server Host" に FQDN を指定し、同一ホストにある "Mongo Host" にも同じ FQDN を指定したところインストールは失敗しました。その後、私の環境では setenv.sh に保存されていた "MONGO_HOST" の値を "127.0.0.1" と書き直し、再度インストールすることで成功しました。


Proxy Server までインストールが完了すると Web ブラウザやモバイルアプリから接続できます。※接続に必要なポートは firewall-cmd で追加しましょう



以上です。



検証環境の Sametime サーバーは、Windows 10 PC上の VMware Workstation 15 Player に作成した仮想マシンへ Linux(CentOS) を起動したものです。

iPad 上の Web ブラウザから PC 内のゲスト OS 上の Sametimeへアクセス

最終的には iPad にインストールした Sametime アプリから Windows 10 PC へ接続すると、仮想マシンへポートフォワーディングされ Sametime サーバーへアクセスできるようになりました。


iPad の Sametime アプリからPC内のゲストOS上の Sametime へアクセス


0 件のコメント:

コメントを投稿