Compose サービスの運用
UCIDM は Docker Compose を使い、複数のアプリケーションやミドルウェアのコンテナを起動して、それぞれのサービスが協調してシステムを構成しています。
ucidm ユーザーでログインしないときのユーザーの切り替え
systemd のユーザーモード、ならびに docker の rootless モードを使うには ucidm ユーザーでログインしたときに設定される環境変数が必要になります。直接 ucidm ユーザーでログインできないときは machinectl を使ってユーザーを切り替えるようにしてください。
machinectl コマンドを使うには systemd-container パッケージをインストールする必要があります。
sudo の実行権限をもつユーザーで次のように machinectl コマンドを実行してください。 
ucidm ユーザーにスイッチした後に次の環境変数が適切に設定されていることを確認します。
コンテナとアプリケーションを実行するユーザー/グループ
コンテナ内のアプリケーションは non-root ユーザーで実行されます。これはコンテナのセキュリティを向上させることに寄与します。
このときそれぞれのコンテナがマウントする volume ディレクトリ配下に作成されるディレクトリやファイルのオーナー/権限は次のようになります。
ホスト上から作成したファイルに対して適切な UID:GID をマッピングするには rootlesskit コマンドを使って操作します。
例えば、(rabbitmq を除く) ホスト上で作成したファイルにコンテナからアクセスできるオーナー/権限を設定するには次のコマンドを実行します。
- ${UID} はコンテナ内の UID にあわせて 1000, 1001 を設定する
実際にホスト上で作成した ucidm:ucidm オーナーのディレクトリとファイルをコンテナ内から UID=1001 で作成したようにオーナー/権限を設定するコマンド例を次に示します。
ホスト上にあるファイルを volume ディレクトリ配下に移動する
ユーザープロファイル画面で使うロゴ画像を管理するコマンド例を次に示します。
ucidm-ui は UID=1000 で作成したようにオーナー/権限を設定します。
安全な停止手順
オンプレミス版 UCIDM は冗長構成をサポートしない ため、原則としてメンテナンスなどで Compose サービスを停止するときは LDAP サーバーに対して更新を行わない、また ID 連携処理の途中段階で停止しないように運用してください。
次の手順で Compose サービスを停止してください。
- LDAP サーバーに更新を行わないようアクセスを遮断する
- 「ジョブ進捗概要」や「実行中ジョブ」画面で処理中のエントリーが大量にないかを確認する
- compose サービスを停止する
作業にあわせて各種ドキュメントを確認してください。
LDAP サーバーから ID 連携の処理が途中の状態で Compose サービスを停止するとエラーが発生します。エラーが発生しても、なるべく起動後に再処理するように振る舞います。どのような状況であっても完全に再処理できることは保証できませんが、多くのケースで自動的に再処理されます。起動後に少し待って履歴をご確認ください。
もし履歴から再処理できていなければ ID 情報の再同期 を行ってください。
LDAP サーバー -> Agent モジュール -> UCIDM API の処理
- ユーザー/グループエントリーの追加・更新
- 停止時にエラーは発生するが、エラーが発生したところから再処理する
- グループメンバーの追加/削除
- 同じグループへのメンバー追加/削除の順序は入れ替わるが、再処理する
- ユーザー/グループエントリーの削除
- Agent モジュールの停止中に削除されたエントリーは再処理できない
- 運用ツールにより不整合ユーザーを削除してください
UCIDM API -> 外部連携モジュールの処理
- エントリーの追加・更新・削除
- 正常にメッセージキューサービスを停止できていれば未処理のメッセージは永続化される
- 起動後に永続化されているメッセージを再処理する
Compose サービスのコンテナや環境の再作成
Compose サービスのコンテナや環境をクリーンに再作成する (永続化されているデータは消えません) ときは前節で安全に停止させた後に削除します。
down を実行したときにもしネットワークを削除できない状態になる場合があります。
そのときは docker サービスを再起動してから down を実行してください。
次のようなエラーが発生するときは DBUS_SESSION_BUS_ADDRESS の環境変数が適切に設定されているかを確認してください。
適切に設定されていない場合は次のようにユーザー情報にあわせて設定します。
環境変数の設定変更
デフォルトでは .env ファイルに Compose サービスが参照する環境変数を設定します。サービス稼働後に環境変数を変更したい場合は .env ファイルを更新した後にコンテナを再作成する必要があります。
たとえば、次の手順で api サービスの環境変数を変更します。
複数サービスの環境変数を変更するときは Compose サービスを停止 させた後に Compose サービスの環境を再作成 すると確実に反映できます。
Compose サービスの起動
次の手順で Compose サービスを起動してください。