3.如何RedHat7上实现OpenLDAP的主主同步

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

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

描述

172.31.24.169

ip-172-31-24-169

OpenLDAP已安装并导入根域及用户和用户组

172.31.16.68

ip-172-31-16-68

OpenLDAP已安装未导入数据

这里我们将172.31.24.169做为OpenLDAP的主节点,172.31.16.68做为OpenLDAP的备节点。

1.ip-172-31-24-169节点的DN信息

ldapsearch -b "dc=fayson,dc=com" -D "cn=Manager,dc=fayson,dc=com" -W |grep dn

(可左右滑动)

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实操(gh_c4c535955d0f)

原文发表时间:2018-04-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

3.如何实现OpenLDAP的主主同步

前面Fayson文章讲《1.如何在CentOS6.5安装OpenLDAP并配置客户端》以及《2.OpenLDAP集成SSH登录并使用SSSD同步用户》,那么如何...

6015
来自专栏LinkedBear的个人空间

运用Oltu框架搭建OAuth的Demo工程 转

http://jinnianshilongnian.iteye.com/blog/2038646

1244
来自专栏Huramkin的归档库

Screen命令常见用法

5242
来自专栏Spark学习技巧

重磅:Flume1-7结合kafka讲解

本文主要是将flume监控目录,文件,kafka Source,kafka sink,hdfs sink这几种生产中我们常用的flume+kafka+hadoo...

7197
来自专栏程序猿DD

Spring Boot中使用RabbitMQ

复刻一篇老文,为后续要发的内容做一些铺垫 Message Broker与AMQP简介 Message Broker是一种消息验证、传输、路由的架构模式,其设计目...

27910
来自专栏惨绿少年

KICKSTART无人值守安装

1.1 环境说明 [root@test ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [roo...

2850
来自专栏分布式系统进阶

Kafka Manager实现原理与填坑

props.put("group.id", "KafkaManagerOffsetCache")这句说明不管启动了几个kafka manager, 消费"__c...

1K2
来自专栏Zachary46

Android直接用手机打包apk!

本人用的是Mac,以下操作都是在Mac环境下配置的,Windows环境的配置移步到Android使用Jenkins自动化构建测试打包apk

4413
来自专栏情情说

RabbitMQ实战:运行和管理RabbitMQ

上一篇 介绍了AMQP消息通信,包括队列、交换器和绑定,通过虚拟主机还可以隔离数据和权限,消息持久化和发送方确认模式确保了消息不丢失。

4906
来自专栏Hadoop实操

如何在CDH集群中部署Kafka Manager

为了能够方便的查看及管理Kafka集群,yahoo提供了一个基于Web的管理工具(Kafka-Manager)。这个工具可以方便的查看集群中Kafka的Topi...

9132

扫码关注云+社区

领取腾讯云代金券