openldap系列8-主从ldap
2010-11-09 22:55:46| 分类: LDAP |举报|字号 订阅
主LDAP
要设置主服务器,首先需要修改主LDAP服务器的配置文件sladp.conf,在其中添加复制选项,并设置日志文件的位置和名称。
执行以下命令打开主配置文件slapd.conf:
# vi /etc/openldap/slapd.conf
在打开的配置文件末尾添加以下内容:
1: # Replicas of this database
2: replogfile /var/lib/ldap/openldap-master-replog
3: replica host=192.168.206.130:389
4: binddn="cn=Manager, dc=wyh, dc=com"
5: bindmethod=simple credentials=secret
各行的含义如下:
第2行设置日志文件的位置和名称。
第3行设置从服务器的域名或IP地址,其中的389表示LDAP服务进程默认端口。
第4行设置超级管理员的dn,在从服务器中有一项设置,必须与这行对应。
第5行设置认证方式。
修改配置文件的界面如图14-15所示。
(点击查看大图)图14-15 修改主服务器配置文件
按以上步骤设置,当主服务器中的数据有改变时,改动将添加到日志文件openldap-master-replog中,而在最初该文件是不存在的。
提示:要测试主服务器是否设置成功,可修改主服务器中的一个条目,查看是否生成日志文件openldap-master-replog。
【实例14-4】测试主服务器是否配置成功。
具体操作步骤如下:
(1)使用以下命令中止slapd服务进程:
# kill -INT `cat /var/run/openldap/slapd.pid`
(2)再使用以下命令用新的配置文件重启slapd服务进程:
# slapd
(3)使用以下命令修改已有的一个条目:
# ldapmodify -x -D "cn=Manager,dc=wyh,dc=com" -w secret
输入以下内容对cn=wyh这个条目进行修改:
dn: cn=wyh,ou=managers,dc=wyh,dc=com
changetype: modify
replace: sn
sn: wuyunhui.modi
输入后按Enter键完成修改操作,按Ctrl+C键退出修改命令。修改过程如图14-16所示。
(点击查看大图)图14-16 修改一个条目
(4)查看/var/lib/ldap/目录,可看到增加了2个文件,这就是对主服务器中的数据条目进行修改后产生的日志文件,如图14-17所示。
经过以上测试,可知道主服务器配置完成。
(点击查看大图)图14-17 日志文件
从LDAP
对从LDAP服务器也需要修改配置文件sladp.conf,使其能与主LDAP服务器进行链接。
提示:对每一台从LDAP服务器都需要进行相同的设置。
执行以下命令打开从服务器中的配置文件slapd.conf:
# vi /etc/openldap/slapd.conf
在打开的配置文件末尾添加以下内容:
1: updatedn "cn=Manager,dc=wyh,dc=com"
2: updateref ldap://192.168.206.11:389
其中,第1行必须与主服务器配置文件中的binddn对应。指定了在更新从服务器的数据时主服务器的slurpd守护进程使用的dn。
第2行的updateref设置的是主服务器。
当客户端对从LDAP提交更新请求时,从服务器就将客户端重定向到这个主服务器上。
添加的内容如图14-18所示。
当主服务器中的数据条目有改变时,slurpd进程将进行复制操作,但主服务器最初的数据不能通过slurpd进程进行复制,因此,还需要手工将主服务器中的数据库内容复制到从服务器对应目录中。
按默认设置,保存LDAP数据条目的数据库位于/var/lib/ldap/目录中(这个位置也可在slapd.conf文件中修改),最简单的方法就是将该目录中的所有数据都复制到每个从服务器的对应目录。
技巧:复制方法很多,可以借助U盘等移动存储设备,也可使用nfs、sftp等网络应用程序。
【实例14-5】用第8章中介绍的sftp方法将LDAP数据文件复制到从服务器中。
具体操作步骤如下:
(1)在主服务器中使用以下命令停止slapd进程:
# kill -INT `cat /var/run/openldap/slapd.pid`
(2)在从服务器中使用sftp命令连接到主服务器:
# sftp 192.168.206.11
连接到服务器之后,输入正确的密码,便以TTP方式登录到了主服务器。
(3)使用以下ftp命令,切换到/var/lib/ldap/目录,将其中的文件全部下载到本地,执行过程如图14-19所示。
sftp> cd /var/lib/ldap
sftp> ls
sftp> get *.*
(点击查看大图)图14-19 下载文件
(4)若是将主服务器中/var/lib/ldap/目录中的数据下载到从服务器的home目录,则还需要将其复制到从服务器的/var/lib/ldap/目录,覆盖该目录中原有的数据。
提示:也可将主服务器的数据导出,然后在从服务器中进行导入。
测试主从LDAP服务器
经过以上步骤的操作,主从LDAP服务器都已准备好,接下来就可以测试相关操作。
1.启动从LDAP服务器
前面的操作将主LDAP服务器的数据库文件直接复制到从服务器,下面先来测试一下从服务器是否能使用这些数据条目。
在从服务器中使用以下命令启动OpenLDAP服务器进程:
# slapd
使用ldapsearch命令测试一下复制的数据库是否正确,具体代码如下:
# ldapsearch -x -b "dc=wyh,dc=com" "cn=wyh"
执行结果如图14-20所示,从图中可看到,在从服务器的数据库中已存在cn=wyh条目了。
2.启动主LDAP服务器
在主LDAP服务器中启动slapd进程和slurpd进程,并进行一个条目的修改,以查看从服务器中是否被修改。
(点击查看大图)图14-20 在从复服务器中查询
【实例14-6】启动主LDAP服务器。
具体操作步骤如下:
(1)使用以下命令启动主LDAP服务器的openldap服务器进程:
# slapd
(2)使用以下命令启动slurpd进程:
# slurpd
(3)在主LDAP服务器中使用以下命令修改一个条目:
# ldapmodify -x -D "cn=Manager,dc=wyh,dc=com" -w secret
输入以下内容,修改cn=wyh条目的内容:
dn: cn=wyh,ou=managers,dc=wyh,dc=com
changetype: modify
replace: sn
sn: wuyunhui
输入后按Enter键完成修改,操作过程如图14-21所示(将sn修改为wuyunhui)。
(点击查看大图)图14-21 测试修改一个条目
(4)在从LDAP服务器中进行操作,查看主LDAP服务器中的操作是否被复制到从LDAP服务器中来了。在从LDAP服务器中使用以下命令进行查询:
# ldapsearch -x -b "dc=wyh,dc=com" "cn=wyh"
执行结果如图14-22所示,从图中可看到其中的sn也被修改为wuyunhui了(数据库中原来的内容为wuyunhui.modi,是前面例子中修改的值),即被主LDAP服务器进行了同步复制。
(点击查看大图)图14-22 在从服务器中查询