7.3 OpenText eDirectoryコンテナのデプロイ

OpenText eDirectory DockerイメージのOSベースイメージはopenSUSE Leap 15.4です。OpenText eDirectoryイメージのアーカイブファイルをDockerホストマシンにダウンロードする必要があります。アーカイブファイルをダウンロードした後、それを抽出し、次のコマンドを使用してイメージをローカルDockerレジストリにロードする必要があります。

tar -xvf eDirectory_93x_Container.tar.gz
docker load --input eDirectory_93x/eDirectory_93x.tar.gz

上記のコマンドでは、edirectory:9.3.xという名前のDockerイメージがロードされます。

OpenText eDirectory Dockerコンテナは、Docker Runコマンドでndsconfigユーティリティのすべてのパラメータを受け入れます。ndsconfigユーティリティの詳細については、dsconfigユーティリティを使用してOpenText eDirectoryレプリカサーバを追加または削除するを参照してください。

メモ:Docker Runコマンドでndsconfigユーティリティの-wオプションを使用してパスワードを設定することはお勧めできません。このオプションを使用して設定したパスワードは、Docker inspectコマンドを使用してプレーンテキストで表示できます。管理者の資格情報を設定するには、管理者のFDNと管理者パスワードをプロンプトで指定する方法がより安全です。

OpenText eDirectory Dockerコンテナでは、次のndsconfigパラメータに対してデフォルト値が使用されます。したがって、Docker runコマンドではこれらのパラメータを設定しないでください。

  • 設定ファイル: /config/eDirectory/inst/conf/nds.conf

  • インスタンスの場所: /config/eDirectory/inst/data/data

  • DIB保存先: /config/eDirectory/inst/data/data/dib

メモ:インスタンスデータと環境設定をコンテナの/configフォルダに含めることが大切です。これは、OpenText eDirectoryコンテナの永続的な保存とアップグレードの機能を有効にするためです。詳細については、OpenText eDirectoryデータストレージの管理を参照してください。

OpenText eDirectoryコンテナのデフォルトのログファイルの場所は、/config/eDirectory/inst/data/logです。

OpenText eDirectoryをデプロイする前に、次の推奨事項を考慮する必要があります。

  • Dockerコンテナには、デフォルトではリソースの制約がありません。そのため、すべてのコンテナには、ホストのカーネルによって提供されるすべてのCPUリソースおよびメモリリソースへのアクセスが提供されます。コンテナで使用できるリソースの量に制限を設定することにより、実行中の1つのコンテナによってより多くのリソースが消費され、実行中の他のコンテナがリソース不足になることがないようにする必要があります。

    • Docker runコマンドの--memoryフラグを使用して、Dockerコンテナで、コンテナによって使用されるメモリに対してハード制限が適用されるようにする必要があります。

    • Docker runコマンドの--cpuset-cpusフラグを使用して、Dockerコンテナで、実行中のコンテナによって使用されるCPUの容量に制限が適用されるようにする必要があります。

  • --pids-limitには300を設定して、任意の時点でコンテナ内で生成されるカーネルスレッドの数を制限する必要があります。これは、DoS攻撃を防ぐためです。

  • Docker runコマンドで--restartフラグを使用して、コンテナ再起動ポリシーをon-failureに設定し、再試行回数を5に設定する必要があります。ホストマシン上のDockerデーモンが再起動された場合は、コンテナを手動で再起動する必要があります。

  • OpenText eDirectoryコンテナは、必ず、コンテナの起動後にヘルスステータスが[良好]と表示されてから使用する必要があります。コンテナのヘルスステータスを確認するには、次のコマンドを実行します。

    docker ps --filter status="running"
  • 通常、DockerコンテナではLinux機能のデフォルトリストが有効になっています。OpenText eDirectoryコンテナで次の機能のみが有効になっていることを確認し、その他の機能をドロップする必要があります。

    • AUDIT_WRIT

    • CHOWN

    • DAC_OVERRIDE

    • SETGID

    • SETUID

    • NET_BIND_SERVICE

    • SYS_CHROOT (SLPサービスを有効にしている場合のみ)

    • SYS_PTRACE (Linux ptraceを活用するユーティリティを使用する場合のみ。gdbなど)

    機能の追加とドロップの詳細については、「Runtime privilege and Linux capabilities」を参照してください。

  • eDirectoryコンテナは、常にroot以外のユーザ(nds)として起動されます。追加のセキュリティ対策として、デーモンでのユーザ名前空間の再マッピングを有効にして、コンテナ内からの特権昇格攻撃を防止します。ユーザ名前空間の再マッピングの詳細については、「ユーザ名前空間でコンテナを分離する」を参照してください。

  • Docker runコマンドで、--stop-timeoutオプションの値を180に設定する必要があります。これは、ndsサービスが正常にシャットダウンするのに十分な時間を確保するために必要です。

メモ:以前のバージョンのスタンドアロンOpenText eDirectoryを使用している場合は、OpenText eDirectory 9.3 Dockerコンテナを使用して、セットアップをDocker環境に移行することはできません。

OpenText eDirectory Dockerコンテナでは、マルチホストのDocker環境にデプロイするためのホストおよびオーバーレイネットワークドライバがサポートされています。

7.3.1 ホストネットワークでのOpenText eDirectoryコンテナのデプロイ

OpenText eDirectoryコンテナは、Linux上でのみホストネットワークドライバを使用してハイブリッド環境にデプロイできます。Dockerネットワークの詳細については、「Configure Networking」を参照してください。

メモ:ホストネットワークはWindowsではサポートされていません。

ハイブリッド環境は、同じツリーにOpenText eDirectoryサーバのレガシデプロイメントおよびコンテナベースのデプロイメントの両方を組み合わせたものです。ハイブリッドネットワークを使用すると、レガシOpenText eDirectoryデプロイメントをすでにホストしている既存の運用環境に、OpenText eDirectory Dockerコンテナをシームレスに導入できます。Dockerホストネットワーキングでは、ホストのネットワークスタックがレガシeDirectoryデプロイメントとコンテナ化されたeDirectoryデプロイメントの両方によって共有されているため、サービスポートを再使用することはできません。また、コンテナ化されたOpenText eDirectoryサーバは、クライアントとツリー内の他のサーバに対して、レガシOpenText eDirectoryサーバとして表示されます。

次の例は、OpenText eDirectoryコンテナを使用して新しいツリーを作成する方法を示しています。

docker run -it --name eDir-container-1 --stop-timeout 180 --restart on-failure:5 --memory="700M" --cpuset-cpus="1" --pids-limit="300" --volume eDir-volume1:/config --network=host edirectory:9.3.0 new -t docker-tree1 -n novell -S m1 -B 164.99.1.1@524 -o 1028 -O 1030 -L 389 -l 636 --configure-eba-now yes

次の例は、OpenText eDirectoryコンテナレプリカサーバを既存のツリーに追加する方法を示しています。

docker run -it --name eDir-container-2 --stop-timeout 180 --restart on-failure:5 --memory="700M" --cpuset-cpus="1" --pids-limit="300" --volume eDir-volume2:/config --network=host edirectory:9.3.0 add -t docker-tree1 -n novell -S m2 -B 164.99.10.10@2524 -o 2028 -O 2030 -L 2389 -l 2636 --configure-eba-now yes -p 164.99.1.1@1524

EBAの詳細については、『OpenText™ CE 24.4 (v9.3) eDirectory管理ガイド』の「EBAに関する情報の表示」を参照してください。

次のリストでは、OpenText eDirectoryコンテナレプリカサーバを既存のツリーに追加するためのパラメータについて説明します。

表 7-1 環境設定パラメータの説明

環境設定パラメータ

説明

--name eDir-container-1

dockerコンテナの名前

--volume eDir-volume1

OpenText eDirectoryデータの保存に使用されるdockerボリュームの名前

edirectory:9.3.0

ダウンロードしてロードしたDockerイメージ。バージョン番号に注意してください。ダウンロードした実際のバージョンではない可能性があっても、警告は表示されません。

-t docker-tree1

OpenText eDirectoryツリー名

-n novel

サーバオブジェクトが配置されるOpenText eDirectoryコンテナ

-S m1

OpenText eDirectoryに作成されるサーバオブジェクトの名前

-B164.99.1.1

dockerホストのIPアドレス

-o 1028

OpenText eDirectoryのHTTPポート

-O1030

OpenText eDirectoryのHTTPSポート

-L 389OpenText

eDirectoryのLDAPポート

-l 636

OpenText eDirectoryのLDAPSポート

--configure-eba-now Yes

Yes - EBAを今すぐインストールします

メモ:

  • --networkフラグは、ホストネットワーキングドライバを使用してコンテナをデプロイするために使用します。

  • 同じDockerホスト上で実行されているOpenText eDirectoryコンテナ間で、サービスのポート番号を繰り返すことはできません。

  • 上記のコマンドで使用するIPアドレスは、コンテナが実行されることを想定しているDockerホストマシンのものです。

図 7-1 ホストネットワークでのOpenText eDirectoryコンテナのデプロイ

7.3.2 ユーザ定義のオーバーレイネットワークでのOpenText eDirectoryコンテナのデプロイ

ユーザ定義のオーバーレイネットワークを使用して、複数のDockerデーモンホスト上で実行される、OpenText eDirectoryコンテナの分散ネットワークを作成できます。ユーザ定義のオーバーレイネットワーク内のOpenText eDirectoryコンテナは、LinuxとWindowsの両方にデプロイできます。DockerホストをSwarmに参加させ、それらのホスト上で実行されているOpenText eDirectoryコンテナがシームレスに通信できるようにするには、Docker Swarmサービスを使用する必要があります。Dockerオーバレイネットワークドライバの詳細については「Use Overlay Networks」を参照してください。

メモ:Docker Swarmのスケーリングとスケジューリングの機能は、OpenText eDirectoryコンテナでは認定されていません。Swarmサービスによるホスト間でのOpenText eDirectoryコンテナのマイグレーションもサポートされていません。

前提条件

  • 少なくとも1つのDockerホストをmanagerとして設定し、他のホストをworkerとして設定してDocker Swarmを作成する必要があります。

  • myOverlayという名前のアタッチ可能なオーバーレイネットワークを作成します。

  • Docker Swarm内でクラスタ管理と通信を行うため、Dockerホスト間のファイアウォールで次のポートを開きます。

    • TCPポート2377

    • TCPおよびUDPポート7946

    • UDPポート4789

  • オーバーレイネットワークにデプロイされたコンテナには、myOverlayサブネットに属するスタティック内部IPアドレスを割り当てる必要があります。

Swarmをデプロイし、ユーザ定義のオーバーレイネットワークを作成する方法については、「Networking with overlay networks」を参照してください。

ユーザ定義のオーバーレイネットワークにOpenText eDirectoryコンテナをデプロイする前に、次の推奨事項を考慮する必要があります。

  • OpenText eDirectoryコンテナのマスタレプリカサーバとそのR/Wレプリカを同じオーバレイネットワーク内にデプロイする必要があります。オーバーレイネットワークの外部で実行されている他のスタンドアロンのOpenText eDirectoryサーバまたはコンテナとの通信はサポートされません。

  • Identity Console Dockerコンテナは、OpenText eDirectory管理用の同じユーザ定義のオーバーレイネットワークにデプロイすることをお勧めします。Identity Console Dockerコンテナのデプロイ方法の詳細については、「Installing OpenText Identity Console as Docker Container」を参照してください。

  • 次のコマンドを実行すると、ユーザ定義のオーバーレイネットワークのネットワークに関する詳細を確認できます。

    docker inspect myOverlay

次のコマンドは、OpenText eDirectoryコンテナを使用して新しいツリーを作成する方法を示しています。

docker run -it --name eDir-container-1 --stop-timeout 180 --restart on-failure:5 --memory="700M" --cpuset-cpus="1" --pids-limit="300" --volume eDir-volume1:/config --network=myOverlay --ip=10.0.0.5 edirectory:9.3.0 new -t docker-tree1 -n novell -S m1 –B @524 -o 8028 -O 8030 -L 389 -l 636 --configure-eba-now yes

次のコマンドは、上で作成したOpenText eDirectoryコンテナのIPアドレスを取得する方法を示しています。

docker inspect eDir-container-1 --format {{.NetworkSettings.Networks.myOverlay.IPAddress}}

表示されたIPアドレスは、OpenText eDirectoryコンテナのレプリカサーバをツリーに追加するときに、remote_IP_Addressとして使用できます。

次のコマンドは、eDirectoryコンテナレプリカサーバを既存のツリーに追加する方法を示しています。

docker run -it --name eDir-container-2 --stop-timeout 180 --restart on-failure:5 --memory="700M" --cpuset-cpus="1" --pids-limit="300" --volume eDir-volume2:/config --network=myOverlay --ip=10.0.0.6 edirectory:9.3.0 add -t docker-tree1 -n novell -S m2 –B @524 -o 8028 -O 8030 -L 389 -l 636 --configure-eba-now yes -p <remote_IP_Address>

メモ:

  • --networkフラグは、オーバーレイネットワークドライバを使用してmyOverlayというユーザ定義のオーバーレイネットワーク内にコンテナをデプロイするために使用されます。

  • 上の例では、--ipフラグを使用して、myOverlayサブネットに属するコンテナにスタティック内部IPアドレスを割り当てます。

  • -B @524 オプションを使用すると、NCP、http、およびhttpsサービスを、使用可能なすべてのインターフェイスにバインドできるようになります。

図 7-2 ユーザ定義のオーバーレイネットワークでのOpenText eDirectoryコンテナのデプロイ