ldap2.4.4版本集群模式配置,主从,主主模式

2023-10-11 21:39

本文主要是介绍ldap2.4.4版本集群模式配置,主从,主主模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

主从模式

官网文档:https://www.openldap.org/doc/admin24/replication.html#Set%20up%20the%20consumer%20slapd

前提两台服务器已经安装openldap并进行相关配置,并且master机器已经有相关用户信息

1.第一种方法 在master机器,我们需要进行导入相关的属性。如下

add_syncprov_module.ldif       ##加载syncprov.la 模块

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap 
olcModuleLoad: syncprov.la

add_olcOverlay.ldif      ## 同步数据库配置

dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpCheckpoint: 1 1
olcSpSessionLog: 1024

modify_syncrepl.ldif       ##从服务器添加配置信息

主服务器载入

ldapadd -Y EXTERNAL -H ldapi:/// -f add_syncprov_module.ldif 
ldapadd -Y EXTERNAL -H ldapi:/// -f add_olcOverlay.ldif 

modify_syncrepl.ldif       ##从服务器添加配置信息

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001 provider=ldap://192.168.119.125:389 binddn="cn=admin,dc=rockstics,dc=com" bindmethod=simplecredentials=rockstics searchbase="dc=rockstics,dc=com" type=refreshAndPersistretry="5 5 300 5" timeout=1
-
add: olcMirrorMode
olcMirrorMode: TRUE

从服务器载入

ldapmodify  -Y EXTERNAL -H ldapi:/// -f  modify_syncrepl.ldif 

 

2.第二种方法 在已经存在syncprov模块的情况下,从服务器配置文件如下:

 

#slapd.conf - Configuration file for LDAP SLAPD
##########
# Basics #
##########
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schemapidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.argsloglevel none
modulepath /usr/lib64/openldap
# modulepath /usr/local/libexec/openldap
#moduleload back_bdb
moduleload  syncprov.la# enable server status monitoring (cn=monitor)
database monitor
access to *by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" readby dn.exact="cn=admin,dc=rockstics,dc=com" readby * none
##########################
# Database Configuration #
##########################
database hdb
suffix  "dc=rockstics,dc=com"
rootdn  "cn=admin,dc=rockstics,dc=com"
rootpw  {SSHA}aAwdh+JnUunpTSLlIw/zQG3t6/rXNI58
directory /var/lib/ldap# directory /usr/local/var/openldap-data
index objectClass,cn,entryCSN,entryUUID  eq
#serverID 1
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100######从服务器添加以下代码
syncrepl rid=001provider=ldap://192.168.119.125:389         ##master地址bindmethod=simplebinddn="cn=admin,dc=rockstics,dc=com"         ##认证用户必须是管理员credentials="password"searchbase="dc=rockstics,dc=com"schemachecking=offscope=subtype=refreshAndPersistretry="5 5 300 5"
#mirrirmode on

 

镜像模式(双主)

分别在master01和master02上执行以下步骤

1.添加syncprov模块


[root@test1] vim mod_syncprov.ldif 
# create new
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: syncprov.la[root@test1 ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f mod_syncprov.ldif 
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=module,cn=config

2.配置需要同步的数据库

[root@test1] vim syncprov.ldif 
# create new
dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpSessionLog: 100[root@test1 ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov.ldif 
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcOverlay=syncprov,olcDatabase={2}hdb,cn=config"

3. 同步配置

[root@test1] vim master01.ldif 
# create new
dn: cn=config
changetype: modify
replace: olcServerID
# specify uniq ID number on each server
olcServerID: 0                      #主2上替换为1dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001              ##不用变provider=ldap://192.168.255.125:389/               #主2上替换为192.168.255.124:389bindmethod=simplebinddn="cn=root,dc=ztjy,dc=com"credentials=123456              #明文密码 可以选择加密的searchbase="dc=ztjy,dc=com"scope=subschemachecking=ontype=refreshAndPersistretry="30 5 300 3"interval=00:00:05:00
-
add: olcMirrorMode
olcMirrorMode: TRUEdn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov####[root@test1 ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f master01.ldif 
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"modifying entry "olcDatabase={2}hdb,cn=config"adding new entry "olcOverlay=syncprov,olcDatabase={2}hdb,cn=config"

不需要重启服务,自动生效

检查,日志如图,则说明配置没什么问题,看到closed 时数据已经同步

我在同步时master02上遇到了报错:

syncrepl_message_to_entry: rid=002 mods check (memberOf: attribute type undefined)

原因:

master01 上之前加载过memberof 模块,而master02 上没有导致

解决:

在master02上加载memberof模块

[root@ldap02 ~]# cat  update-module.ldif 
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: memberof.la
[root@ldap02 ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f  update-module.ldif 
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=module{0},cn=config"

老版本双主配置,分别在master01和master02  slapd.conf配置文件的最后一行追加如下配置

MirrorMode node 1:

       # Global sectionserverID    1# database section# syncrepl directivesyncrepl      rid=001provider=ldap://ldap-sid2.example.combindmethod=simplebinddn="cn=mirrormode,dc=example,dc=com"credentials=mirrormodesearchbase="dc=example,dc=com"schemachecking=ontype=refreshAndPersistretry="60 +"mirrormode on

MirrorMode node 2:

       # Global sectionserverID    2# database section# syncrepl directivesyncrepl      rid=001provider=ldap://ldap-sid1.example.combindmethod=simplebinddn="cn=mirrormode,dc=example,dc=com"credentials=mirrormodesearchbase="dc=example,dc=com"schemachecking=ontype=refreshAndPersistretry="60 +"mirrormode on

 

参考:

主从:

https://www.cnblogs.com/kevingrace/p/9052669.html

 https://www.ilanni.com/?p=14349 

主主:https://www.cnblogs.com/cy0917/p/10248260.html

官网:

https://www.openldap.org/doc/admin24/replication.html#Set%20up%20the%20consumer%20slapd

其他:

https://blog.51cto.com/jerry12356/1854509

这篇关于ldap2.4.4版本集群模式配置,主从,主主模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/190984

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

JDK8(Java Development kit)的安装与配置全过程

《JDK8(JavaDevelopmentkit)的安装与配置全过程》文章简要介绍了Java的核心特点(如跨平台、JVM机制)及JDK/JRE的区别,重点讲解了如何通过配置环境变量(PATH和JA... 目录Java特点JDKJREJDK的下载,安装配置环境变量总结Java特点说起 Java,大家肯定都

linux配置podman阿里云容器镜像加速器详解

《linux配置podman阿里云容器镜像加速器详解》本文指导如何配置Podman使用阿里云容器镜像加速器:登录阿里云获取专属加速地址,修改Podman配置文件并移除https://前缀,最后拉取镜像... 目录1.下载podman2.获取阿里云个人容器镜像加速器地址3.更改podman配置文件4.使用po

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame