LDAP 双主 MirrorMode

因为公司的的单点登陆使用及其余平台(gitlab,sentry,wiki,jira)等都使用LDAP做为用户认证,因此LDAP的服务高可用就显得很重要git

为了能达到高可用,搭建LDAP的双主模式,使用负载均衡分发到LDAP的服务上负载均衡

因为官方文档写得也不是很全面,加上英文理解有限,调研大概半个月的时间,最后仍是摸索出来啦,不容易,分享给须要的朋友ide


  1. LDAP的搭建请参考另一篇博客 :http://www.javashuo.com/article/p-ftsnjgpu-bv.htmlgitlab

  2. 2.若是已经上线LDAP服务,须要先将数据同步ui

        a. 在sever A,即便已经提供服务的LDAP,而且有LDAP帐号数据,备份数据spa

              # ldapsearch -x -b "dc=test,dc=test,dc=com" -D "cn=Manager,dc=test,dc=com" -w "password" > ldap.ldif  (在sever A,即便已经提供服务的LDAP,而且有LDAP帐号数据)日志

              #cn=Manager,dc=test,dc=com 为管理员的登陆dn,-w 后为密码orm

          b.在新搭建的LDAP server B上导入server A 的数据 server

                #ldapadd -x -c -D "cn=Manager,dc=test,dc=com" -w "password" -f ldap.ldifblog

3.修改配置文件(serverA,serverB 都修改)

      a.搭建完成LDAP以后,停服 systemctl stop  slapd 

      b.在原有的sladp.ldif配置文件中添加如下内容:

                开启选项(原配置是注释)

                 olcModuleload: syncprov.la

                 olcModulepath:    /usr/lib64/openldap

         修改及添加配置文件(对应的dn为olcDatabase=mdb,cn=config)

                 olcDbIndex: objectClass pres,eq
                 olcDbIndex: ou,cn,mail,surname,givenname pres,eq,sub
                olcDbIndex: uidNumber,gidNumber,loginShell pres,eq
                olcDbIndex: uid,memberUid pres,eq
                olcSyncRepl: rid=004 provider="ldap://*.*.*.*:389/" binddn="cn=Manager,dc=test,dc=com" bindmethod=simple credentials="****"  searchbase="o=yongqianbao,dc=yongqianbao,dc=com" filter="(objectClass=*)" scope=sub attrs="*,+" type=RefreshAndPersist retry="5 5 300 5" timeout=1 schemachecking=on
                olcMirrorMode: TRUE

           须要注意的地方:

      • rid要相同

      • provider 是对方ldap的地址及端口

      •  binddn 是admin登陆的dn

      • credentials 为登陆密码    


         配置文件末尾添加如下内容(dn之间须要有空行隔开):

                 dn: olcOverlay=syncprov,olcDatabase={2}mdb,cn=config
                objectclass: olcSyncProvConfig
                olcOverlay: syncprov

      

    • 修改完配置文件以后,须要从新生成

      1. rm -rf  slapd.d/*  r(已上线的环境,最好先备份再删除)

      2. cat slapd.ldif | slapadd -v -F /etc/openldap/slapd.d -n 0

      3. chown -R ldap:ldap /etc/openldap/slapd.d

      4. systemctl start slapd

验证,在server A上建立一个帐户,检查是否同步到server B上,也能够查看日志信息 /var/log/slapd/slapd.log,看下同步信息及有无报错

相关文章
相关标签/搜索