• Openldap/ldap 双向同步/复制/Mastsr/slave


    1.     环境说明

    用于做openldap同步的两台电脑的IP192.168.0.181192.168.0.182

    其中192.168.0.181 为主服务器,192.168.0.182为从服务器

    两台电脑的系统都为fedora6,并且已经装好openldap,其管理员为cn=Manager,dc=my-domain,dc=com,密码为secret

    Openldap的详细配置请参考:openldap 的配置

    2.     配置目的

    使用openldap本身的配置来完成openldap之间的同步,包括在openldap的主服务器上添加,修改,删除用户时,从服务器上也和主服务器上完成相同的操作。在从服务器上添加,修改,删除用户时,主服务器上也完成一样的操作。从而保证数据在主从openldap服务器上的一致

    3.     实现原理

    其实现原理如下图,当在主服务器上更新数据时,该更新通过更新日志记录,并将更新复制到从服务器上。当在从服务器上更新数据时,该更新请求将重定向给主服务器,然后主服务器将更新数据复制到从服务器

     

    4.     配置过程

    注意:在进行下面的操作前请先确保你的openldap已经正常安装。

    4.1.   Openldap前期配置准备

    =====  DB_CONFIG文件配置

    该文件配置在主从服务器上的配置相同,其步骤如下:

    l        进入openldap配置文件路径

    # cd /etc/openldap

    l        复制DB_CONFIG.example openldap数据文件所在位置,并命名为DB_CONFIG

    # cp DB_CONFIG.example /var/lib/ldap/DB_CONFIG并命名为DB_CONFIG

    l        进入数据文件所在位置

    #cd /var/lib/ldap

    l        修改DB_CONFIG所属的用户和用户组

    #chown ldap:ldap DB_CONFIG

    l        赋予ldap以执行权限

    #chmod +x DB_CONFIG

    =====  同步数据初始化

    在主服务器192.168.0.181上将如下内容保存为ldap.ldif

     #该文件的关键点是每行后面不能有空格

    dn: dc=my-domain,dc=com

    objectclass: dcObject

    objectclass: organization

    o: Example Company

    dc: my-domain

     

    dn: cn=Manager,dc=my-domain,dc=com

    objectclass: organizationalRole

    cn: Manager

     /*该文件的关键点是每行后面不能有空格* /

    通过ldap工具连接到ldap主服务器,将ldap.ldif文件导入。

    =====创建操作用户

    在根目录下新建用户cn=admin,其密码设为secret

    然后将主服务器的数据导出为181.ldif

    通过ldap工具连接到ldap从服务器,将181.ldif文件导入。

    =====创建复制数据文件

    vi /var/lib/ldap/replog

    wq 保存该空文件

    =====数据文件授权

    chmod 777 /var/lib/ldap/replog

    4.2.   主服务器配置

    配置主服务器,保证当在主服务器上更新数据时,该数据能复制到从服务器

    Ø        连接到ldap主服务器181,并停用主服务器的ldap

    # service ldap stop

    Ø        编辑ldap 配置文件

    # vi /etc/openldap/slapd.conf

    Ø        在文件最下面加入如下内容

    # 赋予ldap里的admin用户对整个ldap的写权限,赋予ldap里的每个用户认证权限

    #注意:不要使用openldap默认的管理员来进行下面的授权,用系统默认管理员授权无效

    access to *

            by dn="cn=admin,dc=my-domain,dc=com" write

            by anonymous auth

    # 复制数据库

    # 复制的日志文件存放的路径

    replogfile /var/lib/ldap/replog

    # 要复制到的主机

    replica host=192.168.0.182:389 binddn="cn=admin,dc=my-domain,dc=com"  credentials=secret  bindmethod=simple

    4.3.   从服务器配置

    配置从服务器,保证当要在从服务器上更新数据时,该请求重定向到主服务器,然后数据再从主服务器复制到从服务器

    Ø        连接到ldap从服务器182,并停用主服务器的ldap

    # service ldap stop

    Ø        编辑ldap 配置文件

    # vi /etc/openldap/slapd.conf

    Ø        在文件最下面加入如下内容

    #赋予ldap里的admin用户对整个ldap的写权限,赋予ldap里的每个用户认证权限

    access to *

            by dn="cn=admin,dc=my-domain,dc=com" write

            by anonymous auth

    #重定向数据请求

    #用来进行复制操作的用户,与主服务器的用户需要一致

    updatedn "cn=admin,dc=my-domain,dc=com"

    #当有请求过来是将请求重定向的位置

    updateref ldap://192.168.0.181:389

    4.4.   openldap同步检查

    Ø        启动ldap主从服务器。在主从服务器上运行

    #service ldap start

    使用ldap工具连接到openldap主从两个服务器。

    在主服务上添加一个组织单元如ou=unit181,在从服务器上刷新,从服务器上出现组织单元ou=unit181.

    在从服务上添加一个组织单元如ou=unit182,在主服务器上刷新,主服务器上出现组织单元ou=unit182.

     对于编译安装的openldap,需要使用/usr/local/openldap/libexec/slurpd -f /usr/local/openldap/etc/openldap/slapd.conf,启动数据复制。

  • 相关阅读:
    DockerFile体系结构
    Nignx(二) server_name 规则
    解决Redis分布式锁——死锁问题
    redis缓存穿透,缓存击穿,缓存雪崩原因+解决方案
    Docker_Linux
    正则例子
    部属流程
    Mysql insert语句的优化
    MySQL innodb_fast_shutdown参数讲解
    MySQL技术内幕InnoDB存储引擎(表&索引算法和锁)
  • 原文地址:https://www.cnblogs.com/moonson/p/1337775.html
Copyright © 2020-2023  润新知