安装逻辑
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) $ [email protected]:/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) $ [email protected]:/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