OpenLDAP レプリケーションの設定です。
LDAP スレーブサーバーを構築し、LDAP マスターサーバーダウン時も LDAP クライアントに対してサービスを継続できるようにします。 OpenLDAP 用語で LDAP マスターサーバーを「プロバイダー」、LDAP スレーブサーバーを「コンシューマー」と呼びます。
[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" |
[root@localhost ~]# vi syncrepl.ldif |
# 新規作成 |
dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcSyncRepl olcSyncRepl: rid=001 # LDAPサーバーのURI provider=ldap://10.0.0.30: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
[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f syncrepl.ldif |
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "olcDatabase={2}hdb,cn=config" |
# データを検索して確認 |
[root@localhost ~]# ldapsearch -x -b 'ou=People,dc=hoge,dc=com' |
# People, hoge.com dn: ou=People,dc=hoge,dc=com objectClass: organizationalUnit ou: People ... ... |
# カンマ区切りで指定する (実際の設定ファイルにはスペース区切りで登録される) |
[root@localhost ~]# authconfig --ldapserver=centos.hoge.com,slave.hoge.com --update |