Ldap主從配置解決方案

一、前沿:

    本文只是包含ldap的主從複製的配置解決方案,不包含HA功能,其中可以提供的一種解決方案就是LDAP+KeepAlived實現HA。

二、Master配置

  在master上啓用添加syncprov模塊來實現主從複製功能點,通過ldif文件來增加syncprov模塊,無需重啓ldap server。
  GX-BATCH-NN-01#  vim  mod_syncprov.ldif 
  #注意:ldap默認的ldif是存放在/etc/openldap/schema路徑下,如果你的*.ldif文件不在/etc/openldap/schema目錄下,執 行命令的時候使用絕對路徑(建議使用絕對路徑)。

文件內容:

create new

dn: cn=module,cn=config

objectClass: olcModuleList

cn: module

olcModulePath: /usr/lib/openldap

olcModuleLoad: syncprov.la
Ldap由於scheam的控制,文件裏的屬性有嚴格的控制,錯誤的或者不存在的屬性將無法執行ldif文件,所以ldif文件的字體顏色會幫助我們配置ldif文件(屬性:綠色,屬性值:紅色)。

GX-BATCH-NN-01#ldapadd -Y EXTERNAL -H ldapi:/// -f /ldif/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

GX-BATCH-NN-01#  vim  syncprov.ldif

文件內容:

create new

dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config

objectClass: olcOverlayConfig

objectClass: olcSyncProvConfig

olcOverlay: syncprov

olcSpSessionLog: 100

GX-BATCH-NN-01# ldapadd -Y EXTERNAL -H ldapi:/// -f /ldif/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}hdb,cn=config"

三、Slave配置

    同樣,在slave上也需要配置syncrepl,因爲syncrepl實現的主從複製是單向的,即master的所有操作都會同步到slave上,slave無法同步到master上,爲了避免master與slave上的數據不一致,slave上禁止對ldap信息的增刪改操作,只允許查詢操作。因爲是單向的,故slave需要一些master的認證信息,以便從master同步數據

GX-BATCH-NN-02# vim syncrepl.ldif

文件內容:

create new

dn: olcDatabase={1}hdb,cn=config

changetype: modify

add: olcSyncRepl

olcSyncRepl: rid=001

LDAP server's URI

  provider=ldap://172.20.52.148:389/

  bindmethod=simple

own domain name

  binddn="cn=Manager,dc=asiainfo,dc=com"

directory manager's password

 credentials=Ldap@123

 searchbase="dc=asiainfo,dc=com"

includes subtree

  scope=sub

 schemachecking=on

  type=refreshAndPersist

[retry interval] [retry times] [interval of re-retry][re-retry times]

  retry="30 5 3003"

replication interval

 interval=00:00:05:00

注意:一定要注意字體的顏色和上面一致,provider,bindmethod …… interval都是olcSyncRepl的屬性值,不是與olcSyncRepl同級別,故其爲紅色。
GX-BATCH-NN-02# vim ldapadd -Y EXTERNAL -H ldapi:/// -f /ldif/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}hdb,cn=config

四、測試

  1. 查看master/slave的監聽端口
    GX-BATCH-NN-01#netstat -tnlp | grep 389   #master

GX-BATCH-NN-02#netstat -tnlp | grep 389   #slave

命令執行完成界面提示
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      -                   
tcp        0      0 :::389     

  1. slave 中查看當前ldap用戶列表

GX-BATCH-NN-02#ldapsearch -x -b 'ou=People,dc=asiainfo,dc=com',就可以看到自動從master同步過來是數據

  1. 在master新增/刪除用戶,確認是否同步。首先,在master上,準備增加用戶的ldif腳本。

    腳本內容:

create new

replace to your own domain namefor "dc=,dc=" section

dn: uid=asiainfo,ou=People,dc=asiainfo,dc=com

objectClass: inetOrgPerson

objectClass: posixAccount

objectClass: shadowAccount

cn: ASIAINFO

sn: TEST

userPassword: {SSHA}c63ddiyMRaL2UjVtQZHBCu0fbdmX996F  #ssha加密後的值: suse

loginShell: /bin/bash

uidNumber: 1612

gidNumber: 1612

homeDirectory: /app11

 

dn: cn=asiainfo,ou=Group,dc=asiainfo,dc=com

objectClass: posixGroup

cn: ASIAINFO

gidNumber: 1612

memberUid:uid=asiainfo,ou=People,dc=asiainfo,dc=com
然後,在master上,導入ldif腳本:
GX-BATCH-NN-01# ldapadd -x -D cn=admin,dc=asiainfo,dc=com -W -f /tmp/ldap/ ldap_asiainfo-crm.ldif
執行完命令提示:
Adding new entry “uid=asiainfo,ou=People,dc=asiainfo,dc=com”
Adding new entry “cn=asiainfo,ou=Group,dc=asiainfo,dc=com”

在slave中查看是否同步完成

GX-BATCH-NN-02#ldapsearch -x -b 'ou=People,dc=asiainfo,dc=com'|grep asiainfo
執行完命令提示的內容裏包含了uid=asiainfo:

People, asiainfo.com

dn: ou=People,dc=asiainfo,dc=com

asiainfo, People, asiainfo.com

dn: uid=asiainfo,ou=People,dc=asiainfo,dc=com
uid: asiainfo
到此表示主從同步完成。


作者:蔣尐文
來源:CSDN
原文:https://blog.csdn.net/xiaowen_1990/article/details/79651099
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章