安装逻辑

1,安装配置master

  初始化数据+将系统账户导入ldap(详细见openldap自我整理下的  openldap安装注意)

配置master slapd.conf文件

replogfile /var/lib/ldap/openldap-master-replog

replica host=192.168.206.130:389

    #下面2行要有空格

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

    bindmethod=simple credentials=secret 

2,修改slave配置

updatedn "cn=Manager,dc=wyh,dc=com"

updateref ldap://192.168.206.11:389

其中,第1行必须与主服务器配置文件中的binddn对应。指定了在更新从服务器的数据时主服务器的slurpd守护进程使用的dn。

第2行的updateref设置的是主服务器。

当客户端对从LDAP提交更新请求时,从服务器就将客户端重定向到这个主服务器上。

3,将master上的/var/lib/ldap 下的数据传到slave服务器上对应位置

具体操作:

master上

1,编辑slapd.conf文件

database bdb

suffix "dc=pincer,dc=com"

rootdn "cn=Manager,dc=pincer,dc=com"

# Cleartext passwords, especially for the rootdn, should

# be avoided. See slappasswd(8) and slapd.conf(5) for details.

# Use of strong authentication encouraged.

rootpw redhat


将DB_CONFIG.example文件复制到/var/lib/ldap

cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/

chown  ldap.ldap /var/lib/ldap/*


2,启动服务

service ldap start

(配置syslog见 openldap自我整理下的  openldap安装注意

也可以使用slurpd-d 64 查看是否有报错


3,初始化数据

编写base.ldif

[root@localhost ldap]# cat test.ldif 
dn: dc=pincer,dc=com 
dc: pincer 
objectClass: top 
objectClass: dcObject 
objectClass: organization 
o: pincer 

dn: cn=Manager,dc=pincer,dc=com 
objectClass: organizationalRole 
cn: Manager

这里是创建树的top

ldapadd -x -D 'cn=Manager,dc=pincer,dc=com' -w redhat -f base.ldif   

4,测试是否可以查询和添加信息

ldapsearch -x -D 'cn=Manager,dc=pincer,dc=com' -w redhat -b 'dc=pincer,dc=com' 

ldapsearch -x  -b 'dc=pincer,dc=com' 

添加数据

5,自己添加OU

[root@localhost ldap]# cat test1.ldif 
dn: ou=qian,dc=pincer,dc=com 
ou: qian 
objectClass: organizationalUnit

ldapadd -x -D 'cn=Manager,dc=pincer,dc=com' -w redhat -f test1 ldif   

测试成功进行下一步

6, 添加master复制配置

vim slapd.conf

加入

replogfile /var/lib/ldap/openldap-master-replog

replica host=192.168.206.130:389

    #下面2行要有空格

   #这里也可以不使用管理员账号,

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

    bindmethod=simple credentials=redhat

7,编辑slave配置文件

vim slapd.conf

updatedn "cn=Manager,dc=wyh,dc=com"

updateref ldap://192.168.206.11:389

其中,第1行必须与主服务器配置文件中的binddn对应。指定了在更新从服务器的数据时主服务器的slurpd守护进程使用的dn。

第2行的updateref设置的是主服务器。

当客户端对从LDAP提交更新请求时,从服务器就将客户端重定向到这个主服务器上

8,最关键一步, 将master上的/var/lib/ldap 下的数据传到slave服务器上对应位置

然后修改chown

重启master和slave的服务,

如果没同步

可以分别在master

和slave上执行slurpd-d 64 查看是否有报错




不使用管理员账号同步

在master上

1,创建本地账号(添加到ldap,然后给read权限)

useradd pincerqian

passwd pincerqian 

redhat

redhat


2,使用迁移工具,将本地账号都添加到ldap


 /usr/share/openldap/  下有迁移数据的migration脚本

如果没有这个脚本,需要安装

yum install migrationtools -y

/usr/share/migrationtools/下

./migrate_group.pl /etc/passwd passwd.ldif

./migrate_group.pl /etc/group group.ldif

以后创建新用户什么的,可以参考这里的内容

注意,要修改里面的dc,跟自己的dc对应

然后,里面包含2个ou,我们需要自己添加下,然后倒入本地的

cat  ou.ldif

dn: ou=People,dc=pincer,dc=com 
ou: People 
description: All people in organization 
objectClass: organizationalUnit

dn: ou=Group,dc=pincer,dc=com

ou: Group

description: All people in organization

objectClass: organizationalUnit

导入ldap

ldapadd -x -w 123456 -D 'cn=Manager,dc=pincer,dc=com' -f ou.ldif

然后修改master配置文件,添加权限控制

access to attrs=userPassword  #这个地方是因为倒入本地账号的时候,就有userPassword属性,所以用来匹配

        by self write

#--#CHANGE SYNC ACCOUNT HERE#--#

        by dn="uid=pincerqian,ou=People,dc=pincer,dc=com" read

        by * auth

access to attrs=shadowLastChange

        by self write

        by * read

access to *

        by * read

保存,重启服务

然后测试,看看是否能够查询

 ldapsearch -x -D 'uid=pincerqian,ou=People,dc=pincer,dc=com' -w redhat -b 'dc=pincer,dc=com' 

在slave上

因为修改了用户,所以要修改slave上的配置文件

添加

updatedn "uid=pincerqian,ou=People,dc=pincer,dc=com"

updateref ldap://192.168.92.131:389

关键处,关闭master 和slave的服务

然后在master上

将/var/lib/ldap下的所有文件传到slave的这个目录下

scp -r /var/lib/ldap/* slave@:/var/lib/ldap/

然后到slave上

chown -R ldap.ldap /var/lib/ldap/*

然后全部启动服务

日志相关

下面的为同步成功的日执像显示(这个日志是配置了loglevel 296 ,然后/etc/syslog.conf下加入了 local4.debug /var/log/slapd.log)

Oct 13 04:40:55 localhost slapd[16551]: @(#) $OpenLDAP: slapd 2.3.43 (Nov 6 2008 02:53:39) $ brewbuilder@ls20-bc2-13.build.redhat.com:/builddir/build/BUILD/openldap-2.3.43/openldap-2.3.43/build-servers/servers/slapd 
Oct 13 04:40:55 localhost slapd[16552]: bdb_db_open: DB_CONFIG for suffix dc=pincer,dc=com has changed. Performing database recovery to activate new settings. 
Oct 13 04:40:55 localhost slapd[16552]: slapd starting 
Oct 13 04:40:55 localhost slapd[16552]: daemon: added 4r listener=(nil) 
Oct 13 04:40:55 localhost slapd[16552]: daemon: added 7r listener=0x919c630 
Oct 13 04:40:55 localhost slapd[16552]: daemon: added 8r listener=0x919c6f8 
Oct 13 04:40:55 localhost slapd[16552]: daemon: epoll: listen=7 active_threads=0 tvp=NULL 
Oct 13 04:40:55 localhost slapd[16552]: daemon: epoll: listen=8 active_threads=0 tvp=NULL 
Oct 13 04:41:13 localhost slapd[16552]: daemon: shutdown requested and initiated. 
Oct 13 04:41:13 localhost slapd[16552]: daemon: closing 7 
Oct 13 04:41:13 localhost slapd[16552]: daemon: closing 8 
Oct 13 04:41:13 localhost slapd[16552]: slapd shutdown: waiting for 0 threads to terminate 
Oct 13 04:41:13 localhost slapd[16552]: slapd stopped. 
Oct 13 04:41:45 localhost slapd[16624]: @(#) $OpenLDAP: slapd 2.3.43 (Nov 6 2008 02:53:39) $ brewbuilder@ls20-bc2-13.build.redhat.com:/builddir/build/BUILD/openldap-2.3.43/openldap-2.3.43/build-servers/servers/slapd 
Oct 13 04:41:46 localhost slapd[16625]: bdb_db_open: DB_CONFIG for suffix dc=pincer,dc=com has changed. Performing database recovery to activate new settings. 
Oct 13 04:41:46 localhost slapd[16625]: slapd starting 
Oct 13 04:41:46 localhost slapd[16625]: daemon: added 4r listener=(nil) 
Oct 13 04:41:46 localhost slapd[16625]: daemon: added 7r listener=0x9b0b630 
Oct 13 04:41:46 localhost slapd[16625]: daemon: added 8r listener=0x9b0b6f8 
Oct 13 04:41:46 localhost slapd[16625]: daemon: epoll: listen=7 active_threads=0 tvp=NULL 
Oct 13 04:41:46 localhost slapd[16625]: daemon: epoll: listen=8 active_threads=0 tvp=NULL