博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ldap主从配置解决方案
阅读量:17424 次
发布时间:2019-09-18

本文共 3884 字,大约阅读时间需要 12 分钟。

一、前沿:

    本文只是包含ldap的主从复制的配置解决方案,不包含HA功能,其中可以提供的一种解决方案就是LDAP+KeepAlived实现HA。

二、Master配置

  在master上启用添加syncprov模块来实现主从复制功能点,通过ldif文件来增加syncprov模块,无需重启ldap server。

  GX-BATCH-NN-01#  vim  mod_syncprov.ldif 
  #注意:ldap默认的ldif是存放在/etc/openldap/schema路径下,如果你的*.ldif文件不在/etc/openldap/schema目录下,执 行命令的时候使用绝对路径(建议使用绝对路径)。

文件内容:

# create new

dn: cn=module,cn=config

objectClass: olcModuleList

cn: module

olcModulePath: /usr/lib/openldap

olcModuleLoad: syncprov.la

Ldap由于scheam的控制,文件里的属性有严格的控制,错误的或者不存在的属性将无法执行ldif文件,所以ldif文件的字体颜色会帮助我们配置ldif文件(属性:绿色,属性值:红色)。

GX-BATCH-NN-01#ldapadd -Y EXTERNAL -H ldapi:/// -f /ldif/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

GX-BATCH-NN-01#  vim  syncprov.ldif

文件内容:

# create new

dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config

objectClass: olcOverlayConfig

objectClass: olcSyncProvConfig

olcOverlay: syncprov

olcSpSessionLog: 100

GX-BATCH-NN-01# ldapadd -Y EXTERNAL -H ldapi:/// -f /ldif/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={1}hdb,cn=config"

三、Slave配置

    同样,在slave上也需要配置syncrepl,因为syncrepl实现的主从复制是单向的,即master的所有操作都会同步到slave上,slave无法同步到master上,为了避免master与slave上的数据不一致,slave上禁止对ldap信息的增删改操作,只允许查询操作。因为是单向的,故slave需要一些master的认证信息,以便从master同步数据

GX-BATCH-NN-02# vim syncrepl.ldif

文件内容:

# create new

dn: olcDatabase={1}hdb,cn=config

changetype: modify

add: olcSyncRepl

olcSyncRepl: rid=001

# LDAP server's URI

  provider=ldap://172.20.52.148:389/

  bindmethod=simple

# own domain name

  binddn="cn=Manager,dc=asiainfo,dc=com"

# directory manager's password

 credentials=Ldap@123

 searchbase="dc=asiainfo,dc=com"

# includes subtree

  scope=sub

 schemachecking=on

  type=refreshAndPersist

# [retry interval] [retry times] [interval of re-retry][re-retry times]

  retry="30 5 3003"

# replication interval

 interval=00:00:05:00

注意:一定要注意字体的颜色和上面一致,provider,bindmethod …… interval都是olcSyncRepl的属性值,不是与olcSyncRepl同级别,故其为红色。
GX-BATCH-NN-02# vim ldapadd -Y EXTERNAL -H ldapi:/// -f /ldif/syncrepl.ldif
执行完界面提示内容:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0

modifying entry "olcDatabase={1}hdb,cn=config

四、测试

1. 查看master/slave的监听端口

GX-BATCH-NN-01#netstat -tnlp | grep 389   #master

GX-BATCH-NN-02#netstat -tnlp | grep 389   #slave

命令执行完成界面提示

(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      -                   
tcp        0      0 :::389     

2. slave 中查看当前ldap用户列表

GX-BATCH-NN-02#ldapsearch -x -b 'ou=People,dc=asiainfo,dc=com',就可以看到自动从master同步过来是数据

3. 在master新增/删除用户,确认是否同步。首先,在master上,准备增加用户的ldif脚本。

    脚本内容:

# create new

# replace to your own domain namefor "dc=***,dc=***" section

dn: uid=asiainfo,ou=People,dc=asiainfo,dc=com

objectClass: inetOrgPerson

objectClass: posixAccount

objectClass: shadowAccount

cn: ASIAINFO

sn: TEST

userPassword: {SSHA}c63ddiyMRaL2UjVtQZHBCu0fbdmX996F  #ssha加密后的值: suse

loginShell: /bin/bash

uidNumber: 1612

gidNumber: 1612

homeDirectory: /app11

 

dn: cn=asiainfo,ou=Group,dc=asiainfo,dc=com

objectClass: posixGroup

cn: ASIAINFO

gidNumber: 1612

memberUid:uid=asiainfo,ou=People,dc=asiainfo,dc=com

然后,在master上,导入ldif脚本:

GX-BATCH-NN-01# ldapadd -x -D cn=admin,dc=asiainfo,dc=com -W -f /tmp/ldap/ ldap_asiainfo-crm.ldif
执行完命令提示:
Adding new entry “uid=asiainfo,ou=People,dc=asiainfo,dc=com”
Adding new entry “cn=asiainfo,ou=Group,dc=asiainfo,dc=com”

在slave中查看是否同步完成

GX-BATCH-NN-02#ldapsearch -x -b 'ou=People,dc=asiainfo,dc=com'|grep asiainfo
执行完命令提示的内容里包含了uid=asiainfo:
# People, asiainfo.com
dn: ou=People,dc=asiainfo,dc=com
# asiainfo, People, asiainfo.com
dn: uid=asiainfo,ou=People,dc=asiainfo,dc=com
uid: asiainfo
到此表示主从同步完成。

转载地址:http://nvxthz.baihongyu.com/

你可能感兴趣的文章
Leetcode C++《热题 Hot 100-28》19.删除链表的倒数第N个节点
查看>>
Leetcode C++《热题 Hot 100-29》22.括号生成
查看>>
Leetcode C++《热题 Hot 100-44》102.二叉树的层次遍历
查看>>
Leetcode C++《热题 Hot 100-47》236.二叉树的最近公共祖先
查看>>
Leetcode C++《热题 Hot 100-48》406.根据身高重建队列
查看>>
《kubernetes权威指南·第四版》第二章:kubernetes安装配置指南
查看>>
Leetcode C++《热题 Hot 100-49》399.除法求值
查看>>
Leetcode C++《热题 Hot 100-51》152. 乘积最大子序列
查看>>
Leetcode C++ 《第181场周赛-1》 5364. 按既定顺序创建目标数组
查看>>
Leetcode C++ 《第181场周赛-2》 1390. 四因数
查看>>
阿里云《云原生》公开课笔记 第一章 云原生启蒙
查看>>
阿里云《云原生》公开课笔记 第二章 容器基本概念
查看>>
阿里云《云原生》公开课笔记 第三章 kubernetes核心概念
查看>>
阿里云《云原生》公开课笔记 第四章 理解Pod和容器设计模式
查看>>
阿里云《云原生》公开课笔记 第五章 应用编排与管理
查看>>
阿里云《云原生》公开课笔记 第六章 应用编排与管理:Deployment
查看>>
阿里云《云原生》公开课笔记 第七章 应用编排与管理:Job和DaemonSet
查看>>
阿里云《云原生》公开课笔记 第八章 应用配置管理
查看>>
阿里云《云原生》公开课笔记 第九章 应用存储和持久化数据卷:核心知识
查看>>
linux系统 阿里云源
查看>>