CentOS7

OpenLDAPマルチマスターレプリケーション

OpenLDAP マルチマスターレプリケーションの設定です。

プロバイダー/コンシューマー構成の場合、 コンシューマー側ではデータの登録はできませんが、マルチマスター構成とすることで、いずれのサーバーでもデータ登録可能となります。

LDAP マスターとするサーバー全てで、 こちらを参照し、LDAP サーバーとしての基本設定をしておきます。

LDAP マスターとするサーバー全てで syncprov モジュールを追加します

[root@localhost ~]# vi mod_syncprov.ldif
# 新規作成
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: syncprov.la
[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f mod_syncprov.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=module,cn=config"
[root@localhost ~]# vi syncprov.ldif
# 新規作成
dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpSessionLog: 100
[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcOverlay=syncprov,olcDatabase={2}hdb,cn=config"

LDAP マスターとするサーバー全てで、以下の設定をします。 ただし、それぞれのサーバーで「olcServerID」は一意の ID を、「provider=***」には相手側のサーバーを指定してください

[root@localhost ~]# vi master01.ldif
# 新規作成
dn: cn=config
changetype: modify
replace: olcServerID
# ID はサーバー毎に異なるものを指定
olcServerID: 0

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001
# 相手側のLDAPサーバーのURI
provider=ldap://10.0.0.50:389/
bindmethod=simple

# 自身のドメイン名
binddn="cn=Manager,dc=hoge,dc=com"
# ディレクトリマネージャーのパスワード
credentials=password
searchbase="dc=hoge,dc=com"
# サブツリーも含める
scope=sub
schemachecking=on
type=refreshAndPersist
# リトライ間隔 リトライ回数 再リトライまでの間隔 再リトライ回数
retry="30 5 300 3"
# レプリケーションの間隔
interval=00:00:05:00
-
add: olcMirrorMode
olcMirrorMode: TRUE

dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
[root@localhost ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f master01.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

adding new entry "olcOverlay=syncprov,olcDatabase={2}hdb,cn=config"

LDAP クライアント側で全てのマスターを参照先として設定します。

以上で設定完了です。データの登録はいずれのサーバーからでも可能となっています。

# カンマ区切りで指定する (実際の設定ファイルにはスペース区切りで登録される)
[root@localhost ~]# authconfig --ldapserver=slapd01.hoge.com,slapd02.hoge.com --update

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-08-22 (水) 12:24:46