Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3769
  • 博文数量: 1
  • 博客积分: 27
  • 博客等级: 民兵
  • 技术积分: 15
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-18 10:57
文章分类
文章存档

2012年(1)

我的朋友
最近访客

分类:

2012-11-19 22:19:30

原文地址:学习ldap_4 作者:写自己的历史

   为了实现ldap服务器的高可用,接下来就配置ldap服务器的复制。
   本文参考:
 
   1) 按照文档操作总是不能成功,在主ldap服务器端修改了数据后不能自动同步到从ldap服务器。考虑可能是slapd.conf未使用bdb数据库。修改slapd.conf文件
   database    bdb
   service ldap restart,提示如下报错:unrecognized  database type(bdb)
   2) 安装openssl0.98e
      安装
      tar zxvf openssl-0.9.8e.tar.gz
      cd openssl-0.9.8e
      ./config shared zlib
      make 
      make test 
      make install
      mv /usr/bin/openssl /usr/bin/openssl.OFF
      mv /usr/include/openssl /usr/include/openssl.OFF
      ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
      ln -s /usr/local/ssl/include/openssl /usr/include/openssl 
      配置库文件搜索路径 
      echo "/usr/local/ssl/lib" >> /etc/ld.so.conf 
      ldconfig -v
      查看openssl的版本号,以验正是否安装正确
      openssl version -a
      使用putty访问linux机器的时候,提示“Incoming packet was garbled on decryption”,重新安装openssl-0.9.8g.tar.gz即可
   3)二、安装cyrus-sasl-2.1.22
      下载cyrus-sasl-2.1.22到/usr/local/src
      http://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.22.tar.gz
      tar zxvf cyrus-sasl-2.1.22.tar.gz
      cd  cyrus-sasl-2.1.22
      ./configure --prefix=/usr/local/sasl2 --enable-login --with-openssl=/usr/local/ssl
      make
      make install
      配置库文件搜索路径
      echo "/usr/local/sasl2/lib" >> /etc/ld.so.conf 
      echo "/usr/local/sasl2/lib/sasl2" >> /etc/ld.so.conf
      ldconfig -v
      把Redhat9.0原有的sasl库文件改名或删除,并将相关符号链接指向新安装SASL的库文件
      cd /usr/lib
      mv libsasl2.a libsasl2.a.OFF 
      mv libsasl2.la libsasl2.la.OFF 
      mv libsasl2.so libsasl2.so.OFF 
      mv libsasl2.so.2.0.10 libsasl2.so.2.0.10.OFF 
      mv libsasl2.so.2 libsasl2.so.2.OFF 
      ln -s /usr/local/sasl2/lib/* /usr/lib 
      ln -s /usr/local/sasl2/lib/sasl2 /usr/lib/sasl2
      ln -s /usr/local/sasl2/lib/libsasl2.so.2.0.22 /usr/lib/libsasl2.so.2
      ln -s /usr/local/sasl2/lib/libsasl2.so /usr/lib/libsasl2.so
      后续编译openldap的时候如果提示:Cyrus  SASL library  located but is incompatible,就需要把cyrus-sasl重装一遍
      后续编译openldap的时候提示:configure:error:could not locate cyrus SASL
      cp /usr/local/sasl2/include/sasl   /usr/include/sasl/
      cp /usr/local/sasl2/include/sasl   /usr/include/
   4)安装BerkeleyDB 
      开始下载的是db-5.1.19.tar.gz,在编译的时候提示无法识别的BerkeleyDB  version。重新下载BerkeleyDB至/usr/local/src
     http://www.oracle.com/technology/software/products/berkeley-db/htdocs/popup/db/4.5.20/db-targz.html 
    tar zxvf db-4.5.20.tar.gz
    cd db-4.5.20/build_unix
    ../dist/configure --prefix=/usr/local/BerkeleyDB
    make
    make install 
   5)安装openldap-2.3.32
   下载相关软件至/usr/local/src
http://www.openldap.org/software/download/OpenLDAP/openldap-stable/openldap-stable-20070110.tgz
    tar zxvf openldap-stable-20070110.tgz
    cd openldap-2.3.32
    env CPPFLAGS="-I/usr/local/BerkeleyDB/include -I/usr/local/sasl2/include" LDFLAGS="-L/usr/local/BerkeleyDB/lib -L/usr/local/sasl2/lib -L/usr/local/sasl2/lib/sasl2"  ./configure --enable-bdb --prefix=/usr/local/openldap --sysconfdir=/etc/openldap --enable-passwd --enable-wrappers --disable-ipv6 --enable-spasswd --enable-crypt --enable-modules  --enable-accesslog=yes 
    提示报错:configure: error: Berkeley DB version mismatch
    解决方法:
    cp /usr/local/BerkeleyDB.4.2/include/* /usr/include/
  cp /usr/ local/BerkeleyDB.4.2/lib/* /usr/lib
    然后在进入openldap目录进行
    ./configure --enable-bdb --libdir=/usr/local/BerkeleyDB/lib --includedir=/usr/local/BerkeleyDB/include  --prefix=/usr/local/openldap --sysconfdir=/etc/openldap --enable-passwd --enable-wrappers --disable-ipv6 --enable-spasswd --enable-crypt --enable-modules  --enable-accesslog=yes 
    make depend
    make
    make test
    make install
    cp /usr/local/openldap/var/openldap-data/DB_CONFIG.example /usr/local/openldap/var/openldap-data/DB_CONFIG
    安装完毕后配置文件分布如下:
    /etc/openldap/openldap:  ldap.conf.slapd.conf,schema等文件
    /usr/local/openldap:
                       /libexec:slapd,slurpd    ldap主程序和复制程序
                       /sbin:slappasswd:        修改管理员密码
                       /bin:ldapsearch,ldapmodify,ldapadd,ldapdelete:元素操作程序
                       /var/openldap-data/:数据存放位置
                       /var/openldap-slurp/replica:同步数据存放位置
    通过ldapadd批量添加元素的时候提示如下报错:
    ldap_add: Invalid syntax (21)
    additional info: objectclass: value #1 invalid per syntax
    修改slapd.conf
    inclue    schema/core.schema              已有
              schema/cosine.schema            新增
              schema/inetorgperson.schema      新增
              schema/nis.schema               新增
    要清空数据,直接手工删除openldap-data下所有文件,重新拷贝DB_CONFIG
    依照上面的步骤配置从ldap服务器
    6)在主ldap服务器上启动slapd和slurpd -d 256,有如下报错:
    Error:Malformed "replica" line in slapd config file
    warning:failed to add replica ignoring replica
    检查原因是slapd.conf中下面的语句前要有空格,很奇怪
    replogfile  /var/lib/ldap/replog.log(这句话没有太多意义,同步数据都在/var/openldap-slurp/replica)
    replica  host=*.*.*.*:389
    (空格) binddn="cn=root,dc=syroidmanor.com,dc=com"  
    (空格) bindmethod=simple
    (空格) credentials=root的明文密码
    在从ldap服务器上启动slapd,修改slapd.conf文件
    updatedn "cn=root,dc=syroidmanor.com,dc=com"
    updateref ldap://*.*.*.*:389/ 
    这样就可以正常复制了
   
    在client的/etc/ldap.conf文件中Host master  slave配置两台ldap服务器,就可以实现高可用
    其实也可以配置双向复制



   
   
阅读(447) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~