本文由ilanniweb微信公众号提供友情赞助,首发于烂泥行天下
IT技术分享QQ群:571981257
openldap的备份我们在前篇文章已经介绍过,但是为了openldap的高可用,在此我们先搭建openldap的主从,有关openldap主主的搭建,我们在下一篇文章中进行介绍。
openldap的主从搭建还是比较简单的,这个和mysql的主从搭建类似,只需要修改相应的配置即可。
PS:在此master机器的IP为192.168.123.8,slave机器的IP为192.168.123.6。
一、master上安装openldap
要在master机器上配置openldap的主从,首先我们要安装openldap并进行相关配置,而且已经有相关的用户信息,如下:
有关openldap的安装与配置,我们可以参考这篇文章《烂泥:OpenLDAP安装与配置(二)》。
二、slave上安装openldap
而要在slave机器上配置openldap的主从,我们也要安装openldap并进行相关配置。
有关openldap的安装与配置,我们可以参考这篇文章《烂泥:OpenLDAP安装与配置(二)》。
不过对于在slave机器安装的openlap,不需要像master机器上那样进行全部的配置,我们只需要操作第一到第四章节即可。
其中后续的章节,比如:导入基础数据库、导入用户、导入用户组和用户加入到用户组都不需要。
Slave上openldap安装完毕。使用ldapadmin工具连接显示如下:
我们注意到ldapadmin连接后,是有报错信息的,这个是因为我们还没有配置主从,slave中现在还没有数据导致的。
三、master的上主从配置
现在正式开始openldap的master-slave配置,在master机器,我们需要进行导入相关的属性。如下:
cat > /root/syncprov_mod.ldif << “EOF”
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: syncprov.la
EOF
ldapadd -Y EXTERNAL -H ldapi:/// -f /root/syncprov_mod.ldif
cat > /root/syncprov.ldif << “EOF”
dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpCheckpoint: 1 1
olcSpSessionLog: 1024
EOF
ldapadd -Y EXTERNAL -H ldapi:/// -f /root/syncprov.ldif
以上就是master机器上的配置。
四、slave的上主从配置
在slave机器上配置master-slave,如下:
cat > /root/rp.ldif << “EOF”
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl:
rid=001
provider=ldap://192.168.123.8:389/
bindmethod=simple
binddn=”cn=root,dc=ilanni,dc=com”
credentials=ilanni
searchbase=”dc=ilanni,dc=com”
scope=sub
schemachecking=on
type=refreshAndPersist
retry=”30 5 300 3″
attrs=”*,+”
interval=00:00:00:02
–
add: olcDbIndex
olcDbIndex: uid eq,pres
olcDbIndex: uniqueMember eq,pres
olcDbIndex: uidNumber,gidNumber eq,pres
olcDbIndex: member,memberUid eq,pres
olcDbIndex: entryUUID eq
olcDbIndex: entryCSN eq
EOF
ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/rp.ldif
其中provider表示master的地址,其他的都是些基础信息。不过这里面需要注意的是认证用户一定要使用超级管理员,如果使用普通用户连接master的话,slave将不会同步用户的密码字段信息。
除此之外,为了优化openldap的查询速度,我们添加了相关字段属性的索引。
五、验证主从正确性
slave机器上配置完毕后,无需重启master机器和slave机器的slapd服务。
在slave机器上查看openldap日志,如下:
tail -f /var/log/slapd.log
通过上图,我们可以很明显的看到slave机器上slapd服务没有报错,而且已经在同步相关openldap数据。
现在切换到master机器上查看openldap日志,如下:
tail -f /var/log/slapd.log
通过上图我们也可以发现master没有报错,而且也看到slave机器已经在同步信息了。
现在我们再使用ldapadmin工具,连接slave查看相关信息,如下:
通过上图,我们可以看到slave机器上已经有master相关的信息。
这也就说明了openlap的master-slave已经在正常同步数据。
5.1 master上修改用户信息
现在我们再来继续验证同步信息,我们在master上修改ilanni用户的cn信息。
在master机器上查看ilanni用户信息,如下:
修改之前ilanni用户cn信息是烂泥,修改之后cn信息是烂泥行天下。
我们再切换到slave机器上查看ilanni用户的cn信息,如下:
通过上图,我们可以很明显的看出slave机器已经同步了master机器的信息。
5.2 master上添加用户和用户组
本来是打算再测试下,在master机器上添加用户和用户组,是不是会同步到slave上的功能。
但是根据前面的信息其实我们已经看到了,slave在没有用户和用户组的情况下,已经把master上的用户和用户组同步过来。
所以该项功能,在此我们就不在进行测试。
5.3 slave上修改用户组信息
因为我们在此做的是openldap的主从同步,所以我们现在再验证下,如果我们在slave机器上修改openldap相关的信息,是否是被允许的呢。
验证如下:
我们现在要把yunweizu这个用户组的描述信息由原来的运维组修改为运维组ces,通过上图,我们可以很明显的看到报错了。
这个报错信息其实是对的,因为openldap的master-slave本来就是不允许slave修改openlap的相关信息。
openldap的master-slave很重要,在其他应用系统连接openldap时,我们只提供slave让其连接即可。这样可以增加openldap的安全性,防止有人意外修改openldap相关信息。
未经允许不得转载:烂泥行天下 » 烂泥:openldap主从搭建与配置