LoginSignup
1
1

More than 5 years have passed since last update.

XXX Directory Server でレプリケーション環境を作る

Last updated at Posted at 2018-08-22

はじめに

この投稿は RedHat Directory Server など、Netscape Directory Server を元にした LDAP 環境での設定のお話しです、OpenLDAP ではありません。

LDAP のマルチマスターレプリケーション環境が使いたいときに、どこから設定を始めればよいのか迷ったり、管理コンソールの操作に慣れていないと環境設定に手間取ってしまいます。
ここでは、単にマルチマスターレプリケーション環境を作ることだけを目的に説明を行っていきます。

インストール

必要なパッケージのインストールに関しては割愛させていただきます。
389 Directory Server Install Guide や、対象プラットホームに対応したインストールガイドをご参照ください。

基本設定

通常、ソフトウエアパッケージをインストールしたのち、setup-ds-admin.pl により、ベースとなる LDAP インスタンスが1つ作成されます。その設定まで完了している所から説明を始めます。

レプリケーション用に2つインスタンスを作成します、ベースとなる LDAP インスタンスを利用しても良いのですが簡単に消したり作ったりできないので、レプリケーションのテスト専用として2つのインスタンスを作成します。インスタンスとしてServerAとBとでレプリケーションします。設定後の管理コンソールの表示は以下のようになります。

create4.jpg

管理コンソールの起動

管理コンソールを起動するには、以下2つ必要です。
・ベースとなる LDAP インスタンスが動作していること
・LDAP 管理サーバが起動していること(多くは httpd プロセスで、デフォルトでは TCP/9830 ポートを利用)

RedHat7.4+389DirectoryServerの環境にて
# /usr/sbin/start-dirsrv
Starting instance "rhel74"
# /usr/sbin/start-ds-admin

簡易確認: 389 と 9830 の TCP ポートが Listen されています。
# netstat -an | grep tcp | grep -e 389 -e 9830
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:9830            0.0.0.0:*               LISTEN  

管理コンソール起動(製品名に依存して redhat-idm-console とか名前は変わります)
# /usr/bin/389-console 

User ID は、cn=Directory Manager、パスワードは setup-ds-admin.pl で設定したものでログインします。
※記憶によりますが User ID は、cn=Directory Manaegr,dc=example,dc=com の形式でも良かったような・・・また、単に admin ユーザでもログインできるはずです。

Server Group -> Create instance Of -> 389 Directory Server の順で選択します。

下記のウインドウが開きますので適当な名前で作成します、この場合 ServerA として TCP/10389 を指定しています。
create2.jpg
同様に ServerB tcp/20389 を作成します。
create3.jpg

レプリケーションの設定開始

●Replication Manager アカウントの作成 (ServerA,B)
レプリケーションのための通信は、サプライヤ -> コンシューマーの方向で接続されますが、この接続に利用するアカウントをコンシューマ側で作成しておく必要あがあります。そのアカウントとして "replication manager" を作成します。
※以下を多分コピペで OK なはず・・・

# ldapmodify -p 10389 -h localhost -D "cn=Directory Manager" -w パスワード
dn: cn=replication manager,cn=config
changetype: add
objectclass: top
objectclass: person
cn: Replication Manager
sn: Manager
userPassword: パスワード
#  CTRL +  D で終了。
ポート番号を変えて、同じ内容を ServerB にも設定します。
# ldapmodify -p 20389 -h localhost -D "cn=Directory Manager" -w パスワード
... 略 ...

●changelog を有効にする (ServerA,B)

なるべく考えなくて良いように番号を振ってみました。①をダブルクリックし、あとは順に設定します。
同じように、ServerB についても設定を行います。
replication1.jpg

●UserRootのデータベースのレプリカを有効にする (ServerA,B)
⑤はユニークな番号なら良いので、TCP ポート番号と同じにしました。ServerA は 10389, ServerB は 20389。
⑥欄は、レプリケーションの設定開始の一番最初で作成したアカウントを指定します。"Add" ボタンを押すことで Current Supplier DNs のリストへ加わります。
replication2.jpg

レプリケーションアグリーメントの作成 (ServerA,B)

agreement1.jpg

新しい画面が開くので順に設定を行います。
agreement3.jpg
さらに続きます。
agreement5.jpg

initialize consumer を選びます、つまりServerA の内容で ServerB をイニシャライズしますので ServerB のユーザーデータはなくなります。
レプリケーションする対象データベースは userRoot で、config じゃありませんから今まで設定したものが初期化されるわけではありません。

agreement7.jpg

成功すると以下のダイアログが表示されます。
agreement8.jpg

動作確認

ServerA でユーザを作成し、それが Server B へもレプリケーションされているか確認してみます。
check2.jpg

ServerB側で、View -> Refresh All としたのちに確認すると、正しく Server B へもレプリケーションされています。
check3.jpg

うまくいかない時は
・Statusタブ -> Replication Status のエラーの有無などを確認してみてください。
・それぞれのサーバの errors ファイルにエラーが記録されていないかも確認ポイントです。
 389 Directory Server の場合 /var/log/dirsrv/slapd-サーバ名/errors です。

以上です、何かのお役に立ちましたら幸いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1