OpenLDAP : レプリケーション2023/04/27 |
OpenLDAP レプリケーションの設定です。
LDAP スレーブサーバーを構築し、LDAP マスターサーバーダウン時も LDAP クライアントに対してサービスを継続できるようにします。 OpenLDAP では LDAP マスターサーバーを [プロバイダー], LDAP スレーブサーバーを [コンシューマー] と呼びます。 |
|
[1] |
LDAP プロバイダー および コンシューマーとするサーバー双方に、
こちらを参照して LDAP サーバーとしての基本設定をしておきます。
|
[2] | LDAP プロバイダーの設定です。syncprov モジュールを追加します。 |
root@dlp:~#
vi mod_syncprov.ldif # 新規作成 dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulePath: /usr/lib/ldap olcModuleLoad: syncprov.la 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@dlp:~#
vi syncprov.ldif # 新規作成 dn: olcOverlay=syncprov,olcDatabase={1}mdb,cn=config objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov olcSpSessionLog: 100 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={1}mdb,cn=config" |
[3] | LDAP コンシューマーの設定です。 |
root@node01:~#
vi syncrepl.ldif # 新規作成 dn: olcDatabase={1}mdb,cn=config changetype: modify add: olcSyncRepl olcSyncRepl: rid=001 # LDAP サーバーの URI provider=ldap://10.0.0.30:389/ bindmethod=simple # 自身のドメイン名 binddn="cn=admin,dc=srv,dc=world" # ディレクトリマネージャーのパスワード credentials=password searchbase="dc=srv,dc=world" # サブツリーも含める scope=sub schemachecking=on type=refreshAndPersist # [リトライ間隔] [リトライ回数] [再リトライまでの間隔] [再リトライ回数] retry="30 5 300 3" # レプリケーションの間隔 interval=00:00:05:00 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={1}mdb,cn=config" # データを検索して確認 root@node01:~# ldapsearch -x -b 'ou=people,dc=srv,dc=world' # extended LDIF # # LDAPv3 # base <ou=people,dc=srv,dc=world> with scope subtree # filter: (objectclass=*) # requesting: ALL # # people, srv.world dn: ou=people,dc=srv,dc=world objectClass: organizationalUnit ou: people # lunar, people, srv.world dn: uid=lunar,ou=people,dc=srv,dc=world objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount sn: lunar givenName: lunar cn: lunar displayName: lunar uidNumber: 1003 gidNumber: 1003 gecos: lunar loginShell: /bin/bash homeDirectory: /home/lunar shadowExpire: -1 shadowFlag: 0 shadowWarning: 7 shadowMin: 0 shadowMax: 99999 uid: lunar shadowLastChange: 19474 ..... ..... |
[4] | LDAP クライアント側でプロバイダーとコンシューマーの両方を参照先として設定します。 以上により、プロバイダーダウン時も、参照先がコンシューマーに切り替わり、LDAP サービスは継続されるようになります。 |
root@client:~#
vi /etc/nslcd.conf # 10行目 : LDAP コンシューマー追記 uri ldap://dlp.srv.world/ ldap://node01.srv.world/
systemctl restart nslcd |
Sponsored Link |
|