美文网首页
LDAP-HA部署文档-keepalived

LDAP-HA部署文档-keepalived

作者: 大数据技术进阶 | 来源:发表于2017-05-25 18:55 被阅读0次

    1、概述

    本文使用MirrorMode双主镜像的同步机制,实现两个节点间的数据同步。两台服务器互相以推的方式实现数据的同步。

    2、OpenLDAP同步的条件

    (1)OpenLDAP服务器之间需要保持时间同步
    (2)OpenLDAP软件包版本保持一致
    (3)OpenLDAP节点之间域名可以相互解析
    (4)OpenLDAP各节点需要提供完全一样的配置及目录树信息(BaseDn需要保证一致)。

    3、安装OpenLDAP环境

    (1)假设有两台机器A和B,节点A的IP为10.133.47.225,节点B的IP为

    10.133.47.224
    

    (2)各节点的OpenLDAP的版本信息:使用rpm -qa |grep openldap查看:

    openldap-clients-2.4.23-32.el6_4.1.x86_64
    openldap-2.4.23-32.el6_4.1.x86_64
    openldap-devel-2.4.23-32.el6_4.1.x86_64
    openldap-servers-2.4.23-32.el6_4.1.x86_64
    

    (3)OpenLDAP安装及初始化数据
    注:一般地,一台HControl已安装,只需要手动部署一台即可。安装步骤及初始化数 据可参考:http://223.105.0.132:8090/pages/viewpage.action?pageId=25929739

    4、OpenLDAP HA配置

    4.1 A节点配置

    (1)检查OpenLDAP是否running,service slapd status
    如果是 running,则先停掉服务: service slapd stop
    (2)修改OpenLDAP配置文件,
    编辑/etc/openldap/sldap.conf,
    找到“modulepath /usr/lib/openldap,

    modulepath /usr/lib64/openldap,
    moduleload syncprov.la”,将前面的#号去掉
    

    (3) 在/etc/openldap/sldap.conf 文件末添加以下内容:

    index entryCSN,entryUUID eq   ##增加索引
    overlay syncprov
    syncprov-checkpoint 1 1  ##执行的条件,修改1个条目或满足1分钟时执行
    syncprov-sessionlog 100  
    serverID    1   ##保证唯一
    syncrepl      rid=123    ##同步进程id,必须为三位数
                  provider=ldap://10.133.47.224    ##另一节点的IP
                  bindmethod=simple    ##认证方式为简单模式
                  binddn="cn=Manager,dc=hadoop,dc=apache,dc=org"  ##用户名 
                  credentials=123123      ##密码
                  searchbase="dc=hadoop,dc=apache,dc=org"   ##BaseDn
                  schemachecking=off
                  type=refreshAndPersist
                  retry="60  +"     ##尝试时间,切记之间有空格
    mirrormode on
    

    (4)重新初始化

    rm -rf /etc/openldap/slapd.d/*
    slaptest  -f /etc/openldap/slapd.conf  -F /etc/openldap/slapd.d
    chown -R ldap:ldap /etc/openldap/*
    service slapd start
    

    4.2 B节点配置

    (1)检查OpenLDAP是否running,service slapd status
    如果是 running,则先停掉服务: service slapd stop
    (2)修改OpenLDAP配置文件,
    编辑/etc/openldap/sldap.conf,
    找到“modulepath /usr/lib/openldap,

    modulepath /usr/lib64/openldap,
    moduleload syncprov.la” ,将前面的#号去掉
    

    (3)在/etc/openldap/sldap.conf 文件末添加以下内容:

    index entryCSN,entryUUID eq   ##增加索引
    overlay syncprov
    syncprov-checkpoint 1 1  ##执行的条件,修改1个条目或满足1分钟时执行
    syncprov-sessionlog 100  
    serverID    2    ##保证唯一
    syncrepl      rid=123    ##同步进程id,必须为三位数
                  provider=ldap://10.133.47.225    ##另一节点的IP
                  bindmethod=simple    ##认证方式为简单模式
                  binddn="cn=Manager,dc=hadoop,dc=apache,dc=org"  ##用户名 
                  credentials=123123      ##密码
                  searchbase="dc=hadoop,dc=apache,dc=org"   ##BaseDn
                  schemachecking=off
                  type=refreshAndPersist
                  retry="60  +"     ##尝试时间,切记之间有空格
    mirrormode on
    

    (4)重新初始化

    rm -rf /etc/openldap/slapd.d/*
    slaptest -f /etc/openldap/slapd.conf  -F /etc/openldap/slapd.d
    chown -R ldap:ldap /etc/openldap/*
    service slapd start
    

    4.3 安装验证

    假设10.133.47.225节点有数据,而10.133.47.224节点无数据,配置安装好后,那么10.133.47.224节点会同步10.133.47.225节点的数据;或无论两个节点的数据发生改变,两个节点的数据会保持同步。

    5、Keepalived安装配置

    5.1 Keepalived安装

    使用Keepalived实现LDAP的两个节点的切换。CentOS自带了Keepalived,直yum install keepalived即可。如果是其它linux,需要下载keepalived rpm包,然后进行安装。假设虚拟IP为10.133.47.180.

    5.2 Keepalived配置

    5.2.1 OpenLDAP A节点配置

    修改keepalived的配置文件 /etc/keepalived/keepalived.conf如下:

     ! Configuration File for keepalived
    global_defs {
        notification_email {
           xhh@cmss.chinamobile.com
        }
       notification_email_from  root@cmss.chinamobile.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id ldap_A   #节点标识
    }
    vrrp_instance VI_1 {
       state MASTER
       interface eth0             #使用的网卡为eth0
       virtual_router_id 150      #虚拟路由标识,两个节点必须一致
       priority 100               #优先级,两个节点的优先级高者为master
       nopreempt                  #不抢占
       advert_int 1
      authentication {
         auth_type PASS
         auth_pass 1111
      }
      virtual_ipaddress {
        10.133.47.180
      }
       notify_master "/etc/keepalived/to_master.sh"
       notify_backup "/etc/keepalived/to_master.sh"
       notify_stop "/etc/keepalived/to_stop.sh"
       track_script {
          check_ldap_server_status
       }
    }
    vrrp_script check_ldap_server_status {
      script "/etc/keepalived/check-ldap-server.sh"
      interval 3     # 脚本检测时间间隔
      weight -5      # 脚本返回失败值时 优先级权重减5
    }
    ```shell
    check-ldap-server.sh的内容为:
    ```shell
    #!/bin/bash
    ldapPid=$(ps -ef |grep slapd|grep -v grep|awk '{print $2}'|grep -v PID)
    if [ "$ldapPid" == "" ]; then
       service keepalived stop
       exit 1
    else
       exit 0
    fi
    

    to_master.sh 的内容为:

    #!/bin/bash
    service slapd start
    

    to_stop.sh的内容为:

    #!/bin/bash
    service slapd stop
    

    5.2.2 OpenLDAP B节点配置

    修改keepalived的配置文件 /etc/keepalived/keepalived.conf如下:

     ! Configuration File for keepalived
    global_defs {
        notification_email {
           xhh@cmss.chinamobile.com
        }
       notification_email_from  root@cmss.chinamobile.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id ldap_B   #节点标识
    }
    vrrp_instance VI_1 {
       state BACKUP
       interface eth0             #使用的网卡为eth0
       virtual_router_id 150      #虚拟路由标识,两个节点必须一致
       priority 98                #优先级
       nopreempt                  #不抢占
       advert_int 1
      authentication {
         auth_type PASS
         auth_pass 1111
      }
      virtual_ipaddress {
        10.133.47.180
      }
       notify_master "/etc/keepalived/to_master.sh"
       notify_backup "/etc/keepalived/to_master.sh"
       notify_stop "/etc/keepalived/to_stop.sh"
       track_script {
          check_ldap_server_status
       }
    }
    vrrp_script check_ldap_server_status {
      script "/etc/keepalived/check-ldap-server.sh"
      interval 3     # 脚本检测时间间隔
      weight -5      # 脚本返回失败值时 优先级权重减5
    }
    

    check-ldap-server.sh的内容为:

    #!/bin/bash
    ldapPid=$(ps -ef |grep slapd|grep -v grep|awk '{print $2}'|grep -v PID)
    if [ "$ldapPid" == "" ]; then
       service keepalived stop
       exit 1
    else
       exit 0
    fi
    

    to_master.sh 的内容为:

    #!/bin/bash
    service slapd start
    

    to_stop.sh的内容为:

    #!/bin/bash
    service slapd stop
    

    5.3 测试验证
    可以使用如下步骤验证OpenLDAP HA。步骤如下:
    1、主从两个节点上启动keepalived,OpenLDAP

       先启动keepalived命令:service keepalived start
       再启动OpenLDAP命令:service slapd start
    

    2、A节点上查看虚拟IP情况
    使用命令:ip a 查看
    (1)OpenLDAP A节点:

    Paste_Image.png

    (2)OpenLDAP B节点:

    Paste_Image.png

    (3)发现虚拟IP绑定在OpenLDAP A节点,因为OpenLDAP A优先级高。
    3、假设OpenLDAP A节点的ldap server已停止,3s后OpenLDAP A节点的keepalived的server会停止,此时可以查看OpenLDAP B节点(keepalived此时是开启状态)有虚拟IP,如下图所示:

    Paste_Image.png

    相关文章

      网友评论

          本文标题:LDAP-HA部署文档-keepalived

          本文链接:https://www.haomeiwen.com/subject/yrmzxxtx.html