ページへ戻る

− Links

 印刷 

Gentoo Linuxな生活​/LDAPのレプリケーション :: Nest Of Hawk

xpwiki:Gentoo Linuxな生活/LDAPのレプリケーション

ページ内コンテンツ
  • LDAPのデータベースをコピーする
  • レプリケーションの基本
  • 設定
    • 事前準備
    • マスターサーバ側のslapd.conf
    • スレーブサーバ側のslapd.conf
  • 仕上げ

LDAPのデータベースをコピーする anchor.png[1]

LDAPのデータベースは、重要なデータが入っているはずです。というか、普通データベースは、なくすと困る重要データが入ってるもんですよね。このため、自動でレプリケーションされる設定をしておきます。ちなみに、うちの場合は、メインサーバがダウンした場合に、レプリカされる側をバックアップサーバとして使用する目的もありますね。比較的簡単ですので、やってみましょう~

Page Top

レプリケーションの基本 anchor.png[2]

マスターサーバ
コピーされるもととなるサーバです。
スレーブサーバ
コピーを保持するサーバです。

また、データベースを変更する側(ldapadd/ldapdelete/ldapmodifyする側)は基本マスターサーバ側。スレーブ側はデータを保持するだけの運用とします。

Page Top

設定 anchor.png[3]

Page Top

事前準備 anchor.png[4]

マスターサーバの/etc/openldap/slapd.confをスレーブサーバ側にコピーしておきます。

# scp /etc/openldap/slapd.conf slave:/etc/openldap/slapd.conf

また、データベースの同期専用に、ユーザを作成しておいてやりましょう。誰彼にでもコピーされちゃうと困るので、ってことでね。 ここではsyncuserっていうアカウント作成して、この人の権限でコピー出来るようにしておきましょう。

dn: cn=syncuser,dc=example,dc=com
objectClass: person
cn: syncuser
sn: replication user
userPassword: {SSHA}LbcQRqSCgamVLsRD9PJvJvIeGmhTnlKX

こんな内容で、repl.ldifて作ったとします。これをLDAPのマスターサーバに追加。

# ldapadd -D "cn=Manager,dc=example,dc=com" -W -f repl.ldif
Page Top

マスターサーバ側のslapd.conf anchor.png[5]

slapd.confに以下の行を追加します。

overlay syncprov

おわり

Page Top

スレーブサーバ側のslapd.conf anchor.png[6]

slapd.confに以下の設定を追加いたします。

syncrepl rid=123
   provider=ldap://foo.example.com
   type=refreshAndPersist
   retry="5 10 60 +"
   searchbase="dc=example,dc=com"
   bindmethod=simple
   binddn="cn=syncuser,dc=example,dc=com"
   credentials="secret"

credentialsは、syncuserのパスワード。平文で書きこんでおくのを注意してくださいね。

また、ここでは、typeにrefreshAndPersistを指定しています。これは、極力リアルタイムに変更をレプリケーションする設定。定期的にポーリングする場合は、refreshOnlyを指定します。これだと、定期的にポーリングすることによって、レプリケーションの負荷を軽減します。 その場合はこんな感じ。

syncrepl rid=123
   provider=ldap://foo.example.com
   type=refreshOnly                      # レプリケーション方式(定期的な更新確認)
  interval=00:00:05:00                  # 接続間隔(5分)
   searchbase="dc=example,dc=com"
   bindmethod=simple
   binddn="cn=syncuser,dc=example,dc=com"
   credentials="secret"

また、工夫点としては、providerにldap://ではなく、ldaps://を指定して、暗号化して通信する、という手もありますね。

Page Top

仕上げ anchor.png[7]

最後に、マスターサーバ、スレーブサーバの順ででslapdを再起動してあげます。

# /etc/init.d/slapd restart

さて、スレーブサーバ側で、ldapsearchしてみましょう。ちゃんとLDAPデータベース読み出せましたかね?


Last-modified: 2011-01-09 (日) 12:31:29 (JST) (4848d) by maruo