3.如何实现OpenLDAP的主主同步
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢
1.文档编写目的
前面Fayson文章讲《1.如何在CentOS6.5安装OpenLDAP并配置客户端》以及《2.OpenLDAP集成SSH登录并使用SSSD同步用户》,那么如何确保OpenLDAP服务的高可用?本篇文章主要介绍如何通过OpenLDAP的MorrorMode实现主主同步,即OpenLDAP的两个服务都可以读写,当主OpenLDAP节点宕机后,可以切换到备节点,可以通过Keepalived实现OpenLDAP故障转移。
•内容概述
1.测试环境描述
2.主主OpenLDAP配置
3.主主同步验证
•测试环境
1.CentOS6.5
2.OpenLDAP版本2.4.40
•测试环境
1.OpenLDAP已安装
2.测试环境描述
IP地址 |
HOSTNAME |
描述 |
---|---|---|
172.31.7.172 |
ip-172-31-7-172.fayson.com |
OpenLDAP已安装并导入根域及用户和用户组 |
172.31.9.33 |
cdh04.fayson.com |
OpenLDAP已安装未导入数据 |
这里我们将172.31.7.172做为OpenLDAP的主节点,172.31.9.33做为OpenLDAP的备节点。
1.172.31.7.172节点的DN信息,提示:代码块部分可以左右滑动查看噢
ldapsearch -h ip-172-31-7-172.fayson.com -b "dc=fayson,dc=com" -D "cn=Manager,dc=fayson,dc=com" -W |grep dn
2.172.31.9.33节点的DN信息,提示:代码块部分可以左右滑动查看噢
ldapsearch -h cdh04.fayson.com -b "dc=fayson,dc=com" -D "cn=Manager,dc=fayson,dc=com" -W |grep dn
这里我们不导入数据到备节点,通过配置主主同步的方式将主节点的数据同步至备节点。
3.主节点(172.31.7.172)配置
1.停止OpenLDAP服务,提示:代码块部分可以左右滑动查看噢
[root@ip-172-31-7-172 openldap]# service slapd stop
Stopping slapd: [ OK ]
[root@ip-172-31-7-172 openldap]#
2.修改/etc/openldap/slapd.conf文件,在文件末尾增加如下配置,提示:代码块部分可以左右滑动查看噢
index entryCSN,entryUUID eq
moduleload syncprov.la
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
serverID 1
syncrepl rid=111
provider=ldap://cdh04.fayson.com
binddn="cn=Manager,dc=fayson,dc=com"
credentials=123456
searchbase="dc=fayson,dc=com"
schemachecking=off
type=refreshAndPersist
retry="60 +"
mirrormode on
3.执行如下命令,重新生成OpenLDAP的配置并修改生成配置文件的属主,提示:代码块部分可以左右滑动查看噢
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
chown -R ldap:ldap /etc/openldap/slapd.d/
ll /etc/openldap/slapd.d/
4.启动OpenLDAP服务
service slapd start
5.验证服务是否正常,提示:代码块部分可以左右滑动查看噢
ldapsearch -h ip-172-31-7-172.fayson.com -b "dc=fayson,dc=com" -D "cn=Manager,dc=fayson,dc=com" -W |grep dn
4.备节点(172.31.9.33)配置
1.停止OpenLDAP服务
service slapd stop
2.修改/etc/openldap/slapd.conf文件,在文件末尾增加如下内容,提示:代码块部分可以左右滑动查看噢
index entryCSN,entryUUID eq
moduleload syncprov.la
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
serverID 2
syncrepl rid=123
provider=ldap://ip-172-31-7-172.fayson.com
binddn="cn=Manager,dc=fayson,dc=com"
credentials=123456
searchbase="dc=fayson,dc=com"
schemachecking=off
type=refreshAndPersist
retry="60 +"
mirrormode on
3.执行如下命令,重新生成OpenLDAP的配置并修改生成配置文件的属主,提示:代码块部分可以左右滑动查看噢
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
chown -R ldap:ldap /etc/openldap/slapd.d/
ll /etc/openldap/slapd.d/
4.启动OpenLDAP服务
5.验证OpenLDAP服务是否正常,提示:代码块部分可以左右滑动查看噢
ldapsearch -h cdh04.fayson.com -b "dc=fayson,dc=com" -D "cn=Manager,dc=fayson,dc=com" -W |grep dn
这里可以看到主节点的数据已同步到备节点的OpenLDAP数据库了。
5.主主同步验证
通过如下步骤来进行验证:
- 在主节点的OpenLDAP服务上导入faysonadd用户和用户组
- 在备节点的OpenLDAP服务上查找faysonadd用户是否同步
- 在备节点的OpenLDAP服务上将faysonadd用户删除
- 在主节点OpenLDAP服务上查找faysonadd用户是否删除
1.在主节点的OpenLDAP服务上导入faysonadd用户和用户组
faysonaddy用户的ldif文件,提示:代码块部分可以左右滑动查看噢
[root@ip-172-31-7-172 openldap-ldif]# vim user_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-7-172 openldap-ldif]# vim group_faysonadd.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 group_faysonadd.ldif
ldapadd -D "cn=Manager,dc=fayson,dc=com" -W -x -f user_faysonadd.ldif
2.在备节点的OpenLDAP服务上查找faysonadd用户,提示:代码块部分可以左右滑动查看噢
ldapsearch -h cdh04.fayson.com -b "dc=fayson,dc=com" -D "cn=Manager,dc=fayson,dc=com" -W |grep dn
3.在备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 cdh04.fayson.com -b "dc=fayson,dc=com" -D "cn=Manager,dc=fayson,dc=com" -W |grep dn
可以看到在主节点上也没有faysonadd用户和用户组信息。
到此为止已完成了OpenLDAP服务的主主同步。
6.总结
- 使用MorrorMode实现OpenLDAP主主同步需要注意配置文件中的ServerID两个节点不能相同。
- 文中选择的同步方式为Syncrepl即全量模式,也可以使用Delta-syncrepl即增量模式同步,可以避免修改条目中的一个属性将整个条目的属性都同步的缺点。
提示:代码块部分可以左右滑动查看噢 为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操
- jQuery扩展以及gzip压缩测试
- python2.6升级到3.3.0 的操作记录
- 由javascript中"匿名函数调用写法"引出的一些东东
- javascript中定义私有方法(private method)
- python升级后带来的几个小问题
- 分布式监控系统Zabbix-3.0.3-完整安装记录(1)
- centos6.8下安装部署LNMP-(nginx1.8.0+php5.6.10+mysql5.6.12)
- IE7下当position:fixed遇到text-align:center
- 数组-在Shell脚本中的基本使用介绍
- .Net Core下通过Proxy 模式 使用 WCF
- javascript中function调用时的参数检测常用办法
- squid代理http和https方式上网的操作记录
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(3)
- 域名hiku.com曾百万价格被交易,目前被加拿大大麻公司收购
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Datatables获取选中行的某一列的数据
- 终于懂了建造者模式
- (力扣)面试题04. 二维数组中的查找
- 一条命令查询电脑多久没关机
- Android Studio无法运行程序调试程序出现Unable to connect to ADB.Check the Event Log for possible issues.Verify th
- MySQL 中的 DML 语句执行流程,你理解的跟我一样吗?
- Android SharedPreferences的使用
- 【DB笔试面试846】在Oracle中,TWO_TASK环境变量的作用是什么?
- 分治策略之归并排序(Python实现)
- 分治策略之最大子数组(Python实现)
- 如何利用Gitlab-CI持续部署到远程机器?
- 动态规划之钢条切割问题:自顶向下(Python实现)
- 动态规划之钢条切割问题:自低向上(Python实现)
- Docker中安装Centos7操作系统
- 机器重启后 docker 容器启动报错 error creating overlay mount to