温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
Fayson的github:https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1.文档编写目的
前面Fayson文章讲《
1.如何在RedHat7上安装OpenLDA并配置客户端
》以及《
2.如何在RedHat7中实现OpenLDAP集成SSH登录并使用sssd同步用户
》,那么如何确保OpenLDAP服务的高可用?本篇文章主要介绍如何通过OpenLDAP的MorrorMode实现主主同步,即OpenLDAP的两个服务都可以读写,当主OpenLDAP节点宕机后,可以切换到备节点,也可以通过Keepalived实现OpenLDAP故障转移。
- 文章概述
1.测试环境描述
2.主主OpenLDAP配置
3.主主同步验证
- 测试环境
1.RedHat7.3
2.OpenLDAP版本2.4.40
- 前置条件
1.主备节点OpenLDAP已安装
2.测试环境描述
IP地址
HOSTNAME
描述
2.安装备OpenLDAP节点时需要注意,由于Fayson的文档中主OpenLDAP启用了TLS,所以需要将主节点的/etc/openldap/certs目录下的ldap.key和ldap.crt文件拷贝至备节点相应目录下
[root@ip-172-31-16-68 ~]# cp ldap.* /etc/openldap/certs/ [root@ip-172-31-16-68 ~]# ll /etc/openldap/certs/
(可左右滑动)
3.ip-172-31-16-68节点的DN信息
[root@ip-172-31-16-68 ~]# ldapsearch -h ip-172-31-16-68 -b "dc=fayson,dc=com" -D "cn=Manager,dc=fayson,dc=com" -W |grep dn Enter LDAP Password: [root@ip-172-31-16-68 ~]#
(可左右滑动)
这里我们不导入数据到备节点,通过配置主主同步的方式将主节点的数据同步至备节点。
3.主备OpenLDAP配置
在主备OpenLDAP服务上进行如下操
1.修改/etc/sysconfig/slapd文件,在文件中增加如下配置
SLAPD_LDAPI=yes
(可左右滑动)
2.重启slapd服务
[root@ip-172-31-24-169 ldap-sync]# systemctl restart slapd [root@ip-172-31-24-169 ldap-sync]# systemctl status slapd
(可左右滑动)
4.主节点(ip-172-31-24-169)配置同步
注意:ldif文件的导入顺序,在主节点(ip-172-31-24-169)执行如下步骤。
1.创建mod_syncprov.ldif文件加载syncprov模块,内容如下
# create new dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulePath: /usr/lib64/openldap olcModuleLoad: syncprov.la
(可左右滑动)
2.创建serverid.ldif文件,定义主备OpenLDAP的ServerID
dn: cn=config changetype: modify add: olcServerId olcServerId: 1 ldap://ip-172-31-16-68.ap-southeast-1.compute.internal olcServerId: 2 ldap://ip-172-31-24-169.ap-southeast-1.compute.internal
(可左右滑动)
3.创建syncprov.ldif文件,同步配置日志信息
dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov olcSpSessionLog: 100
(可左右滑动)
4.创建sync-ha.ldif文件,添加主备同步信息
dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcSyncRepl olcSyncRepl: rid=001 provider=ldap://ip-172-31-16-68.ap-southeast-1.compute.internal bindmethod=simple binddn="cn=Manager,dc=fayson,dc=com" credentials=123456 searchbase="dc=fayson,dc=com" scope=sub schemachecking=on type=refreshAndPersist retry="30 5 300 3" interval=00:00:05:0 olcSyncrepl: rid=002 provider=ldap://ip-172-31-24-169.ap-southeast-1.compute.internal bindmethod=simple binddn="cn=Manager,dc=fayson,dc=com" credentials=123456 searchbase="dc=fayson,dc=com" scope=sub schemachecking=on type=refreshAndPersist retry="30 5 300 3" interval=00:00:05:00 - add: olcMirrorMode olcMirrorMode: TRUE
(可左右滑动)
5.在主备节点上分别执行导入创建的ldif文件
ldapadd -Y EXTERNAL -H ldapi:/// -f mod_syncprov.ldif ldapmodify -Y EXTERNAL -H ldapi:/// -f serverid.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f sync-ha.ldif
(可左右滑动)
6.导出主节点(ip-172-31-24-169)的配置文件config.ldif
[root@ip-172-31-24-169 ldap]# slapcat -bcn=config -F/etc/openldap/slapd.d/ -l config.ldif [root@ip-172-31-24-169 ldap]# ll
(可左右滑动)
5.备节点(ip-172-31-16-68)配置同步
1.将主节点导出的config.ldif文件拷贝至备节点
[root@ip-172-31-16-68 ldap-sync]# scp ip-172-31-24-169:/root/ldap-sync/config.ldif . [root@ip-172-31-16-68 ldap-sync]# ll
(可左右滑动)
2.初始化备节点OpenLDAP的配置
[root@ip-172-31-16-68 ldap-sync]# rm -rf /etc/openldap/slapd.d/* [root@ip-172-31-16-68 ldap-sync]# slapadd -bcn=config -F/etc/openldap/slapd.d/ -l config.ldif [root@ip-172-31-16-68 ldap-sync]# chown -R ldap. /etc/openldap/slapd.d/ [root@ip-172-31-16-68 ldap-sync]# systemctl restart slapd
(可左右滑动)
3.重启slapd服务
[root@ip-172-31-16-68 ldap-sync]# systemctl restart slapd [root@ip-172-31-16-68 ldap-sync]# systemctl status slapd
(可左右滑动)
至此完成主备节点的主主同步配置。
6.主主同步验证
通过如下步骤来进行验证:
- 在主节点的OpenLDAP服务上导入faysonadd用户和用户组
- 在备节点的OpenLDAP服务上查找faysonadd用户是否同步
- 在备节点的OpenLDAP服务上将faysonadd用户删除
- 在主节点OpenLDAP服务上查找faysonadd用户是否删除
1.查看ip-172-31-16-68备的LDAP服务上是否已同步数据
[root@ip-172-31-16-68 ~]# ldapsearch -h ip-172-31-16-68 -b "dc=fayson,dc=com" -D "cn=Manager,dc=fayson,dc=com" -W |grep dn
(可左右滑动)
可以看到ip-172-31-16-68节点上的OpenLDAP服务已同步主节点的数据。
2.在主节点的OpenLDAP服务上导入faysonadd用户和用户组
faysonadd用户的ldif文件
[root@ip-172-31-24-169 ldap]# vim faysonadd.ldif dn: uid=faysonadd,ou=People,dc=fayson,dc=com uid: faysontadd cn: faysonadd objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword: {SSHA}KYgsfyI/uny0dKPNeMRNG54BdwV6KlWA shadowLastChange: 17493 shadowMin: 0 shadowMax: 99999 shadowWarning: 7 loginShell: /bin/bash uidNumber: 5500 gidNumber: 5500 homeDirectory: /home/faysonadd
(可左右滑动)
faysonadd用户组的ldif文件
[root@ip-172-31-24-169 ldap]# vim faysonadd_group.ldif dn: cn=faysonadd,ou=Group,dc=fayson,dc=com objectClass: posixGroup objectClass: top cn: faysonadd userPassword: {SSHA}KYgsfyI/uny0dKPNeMRNG54BdwV6KlWA gidNumber: 5500
(可左右滑动)
导入faysonadd用户和用户组
ldapadd -D "cn=Manager,dc=fayson,dc=com" -W -x -f faysonadd_group.ldif ldapadd -D "cn=Manager,dc=fayson,dc=com" -W -x -f faysonadd.ldif
(可左右滑动)
3.在备节点的OpenLDAP服务上查找faysonadd用户
ldapsearch -h ip-172-31-16-68 -b "dc=fayson,dc=com" -D "cn=Manager,dc=fayson,dc=com" -W |grep dn
(可左右滑动)
4.在备OpenLDAP服务上删除faysonadd用户和用户组
ldapdelete -x -D "cn=Manager,dc=fayson,dc=com" -W "cn=faysonadd,ou=Group,dc=fayson,dc=com" ldapdelete -x -D "cn=Manager,dc=fayson,dc=com" -W "uid=faysonadd,ou=People,dc=fayson,dc=com"
(可左右滑动)
在备OpenLDAP服务上已不能查找到faysonadd用户和用户组
ldapsearch -h ip-172-31-16-68 -b "dc=fayson,dc=com" -D "cn=Manager,dc=fayson,dc=com" -W |grep dn
(可左右滑动)
5.在主OpenLDAP服务查看faysonadd用户和用户组
ldapsearch -b "dc=fayson,dc=com" -D "cn=Manager,dc=fayson,dc=com" -W |grep dn
(可左右滑动)
7.总结
- 使用MorrorMode实现OpenLDAP主主同步需要注意配置文件中的ServerID两个节点不能相同。
- 文中选择的同步方式为Syncrepl即全量模式,也可以使用Delta-syncrepl即增量模式同步,可以避免修改条目中的一个属性将整个条目的属性都同步的缺点。
- 这里在配置OpenLDAP HA的方式与RedHat6有区别大家需要注意,在配置HA是需要使用到同步账号, Fayson使用的是默认的管理员账号同步。
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操
,