LinuxForum.Fans
Тема

Centos 5.5 + OpenLDAP + PostgreSQL

Автор: thexf 25 сообщений 9089 просмотров
#80859

Не получается запустить openldap .Не работает
# /usr/local/libexec/slapd

Делал всё по http://darold.net/projects/ldap_pg/HOWTO/

Никаких ошибок при установке не возникало.

#80941

Остальное необходимо угадать? Где логи, конфиги и т.д.?

#80946

все конфиги из мана. LDAP просто не стартует.Ошибок никаких не выводит.

#80949

Так, напишу еще раз... я не буду каждый раз лезть по вашим ссылкам, чтобы посмотреть конфиги, откровенно лень
а если еще учесть, что при копировании оттуда вы могли ошибиться или еще что, то разговор становится совсем бессмысленным
так что, или выкладывайте, или будете долго ждать ответа иначе
нету телепатов

#80953

/usr/local/etc/odbc.ini
[console];
; odbc.ini
;
[ODBC Data Sources]
PgSQL=PostgreSQL

[PgSQL]
; WARNING: The old psql odbc driver psqlodbc.so is now renamed psqlodbcw.so
; in version 08.x. Note that the library can also be installed under an other
; path than /usr/local/lib/ following your installation.
Driver=/usr/local/lib/psqlodbcw.so
Description=Connection to LDAP/POSTGRESQL
Servername=localhost
Port=5432
Protocol=6.4
FetchBufferSize=99
Username=test
Password=test
Database=pg_ldap
ReadOnly=no
Debug=1
CommLog=1

[ODBC]
InstallDir=/usr/local/lib[/console]
/usr/local/etc/odbcinst.ini
[console];
; odbcinst.ini
;
[PostgreSQL]
Description=ODBC for PostgreSQL
; WARNING: The old psql odbc driver psqlodbc.so is now renamed psqlodbcw.so
; in version 08.x. Note that the library can also be installed under an other
; path than /usr/local/lib/ following your installation.
Driver=/usr/local/lib/psqlodbcw.so

[ODBC]
Trace=1
Debug=1
Pooling=No[/console]
/usr/local/etc/openldap/slapd.conf
[console]#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema

# Define global ACLs to disable default read access.
# Define global ACLs to disable default read access.
access to *
by self write
by * read
access to * by dn="cn=root,dc=example,dc=com" write

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org

pidfile /usr/local/var/slapd.pid
argsfile /usr/local/var/slapd.args

#######################################################################
# sql database definitions
#######################################################################

database sql
suffix "dc=example,dc=com"
rootdn "cn=root,dc=example,dc=com"
rootpw secret
dbname PgSQL
dbuser test
dbpasswd test
insentry_query "insert into ldap_entries (id,dn,oc_map_id,parent,keyval) values ((select max(id)+1 from ldap_entries),?,?,?,?)"
upper_func "upper"
strcast_func "text"
concat_pattern "?||?"
has_ldapinfo_dn_ru no

lastmod off[/console]

#80955

Ещё вопрос: в репах есть пакет openldap-server-sql ,но при запуске ldap'a он выдает сообщение о том ,что не поддерживает sql...как его использовать?

#80956

Вы из исходников собирали что ли?

#80959

сначала из исходников всё,потом с (установка с нуля) postgresql,unixODBC,postgresql-odbc ставил из репов. OpenLDAP собираю из исходников потому как не получается воспользоваться пакетом openlda-server-sql.
собирал Openldap c параметрами --enable-sql --without-cyrus-sasl --disable-bdb --disable-hdb --with-odbc=auto. Далее make , make depend, make install.

#80962

бардак какой-то... какая ось?

thexf написал:
OpenLDAP собираю из исходников потому как не получается воспользоваться пакетом openlda-server-sql.

что значит не получается воспользоваться?

#80964

Запускаю openldap
/usr/local/libexec/slapd

Ничего в терминале не выводиться,в логах про ldap пусто.
[console]
[root@localhost ~]# /usr/local/libexec/slapd
[root@localhost ~]# ps -ef |grep slapd
root 11520 9157 0 12:46 pts/1 00:00:00 grep slapd
[root@localhost ~]# ldapsearch -x -h localhost -b "dc=example,dc=com"
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
[/console]

#80966

Centos 5.5 .
Устанавливаю пакет openlda-server-sql , он тянет за собой openldap-server. Я так понимаю,что так и должно быть smile . Но когда в slapd.conf параметр database указать sql ,он ругается на неизвестный тип этого параметра.

#80972

Вот что получается если openlda-server-sql поставить из репов.
[console][root@localhost openldap-2.4.23]# /etc/init.d/ldap start
Checking configuration files for slapd: Unrecognized database type (sql)
/etc/openldap/slapd.conf: line 23: <database> failed init (sql)!
slaptest: bad configuration file!
[FAILED]
[/console]

#80976

не проще пересобрать rpm-пакет openldap с поддержкой sql? проблем будет сильно меньше, чем из исходников собирать

#80979

Т.е. rpm-пакет openldap с поддержкой sql из репов нерабочий?и с rpmforge тоже не подойдет? :(

#80983

Рабочий, но пакет openldap-server-sql содержит загружаемый модуль, который ldap может использовать для чтения данных из базы...
сам ldap должен бвть собран, если не ошибаюсь, с --enable-sql... для этого проще всего собрать свой rpm-пакет

#81016

Собираю rpm'ку вылезают ошибки...
[console]
# ./configure --enable-sql --without-cyrus-sasl --disable-bdb --disable-hdb --with-odbc=auto
# make
# make depend
# checkinstall -R
[root@localhost ~]# rpm -i openldap-2.4.23-1.i386.rpm
file /usr/libexec/gcc/i386-redhat-linux/4.1.2 from install of openldap-2.4.23-1.i386 conflicts with file from package cpp-4.1.2-48.el5.i386
file /usr/lib/gcc/i386-redhat-linux/4.1.2 from install of openldap-2.4.23-1.i386 conflicts with file from package libstdc++-devel-4.1.2-48.el5.i386
file /usr/lib/gcc/i386-redhat-linux/4.1.2 from install of openldap-2.4.23-1.i386 conflicts with file from package gcc-4.1.2-48.el5.i386
file /usr/libexec/gcc/i386-redhat-linux/4.1.2 from install of openldap-2.4.23-1.i386 conflicts with file from package gcc-4.1.2-48.el5.i386
file /usr/lib/gcc/i386-redhat-linux/4.1.2 from install of openldap-2.4.23-1.i386 conflicts with file from package gcc-gfortran-4.1.2-48.el5.i386
file /usr/libexec/gcc/i386-redhat-linux/4.1.2 from install of openldap-2.4.23-1.i386 conflicts with file from package gcc-gfortran-4.1.2-48.el5.i386
file /sbin/ldconfig from install of openldap-2.4.23-1.i386 conflicts with file from package glibc-2.5-49.el5_5.4.i686

[/console]

#81018

старая версия checkinstall было...openldap установился,но результат тотже.
[console][root@localhost etc]# /usr/local/libexec/slapd start
[root@localhost etc]# ps -ef| grep slapd
root 18777 4053 0 00:14 pts/1 00:00:00 grep slapd

[/console]

#81022

Я - невнимательный лошара smile
Проблема решена.
Все пакеты беру из репов... но тепеь очень внимательно читаю конфиг,так как надо (оказывается!) указать параметры модулей.

# Load dynamic backend modules:
modulepath /usr/lib/openldap


# modules available in openldap-servers-sql RPM package:
moduleload back_sql.la

#81055

Возникла новая проблема :(
[console][root@localhost ~]# cat /etc/odbc.ini
[PgSQL]
Description = Example for OpenLDAP's back-sql
Driver = PostgreSQL
Trace = No
Database = pg_ldap
Servername = ldap.mydomain.com
UserName = test
Password = test
Port = 5432
;Protocol = 6.4
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
[root@localhost ~]# cat /etc/odbcinst.ini
# Example driver definitinions
#
#

# Included in the unixODBC package
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib/libodbcpsql.so
Setup = /usr/lib/libodbcpsqlS.so
FileUsage = 1


# Driver from the MyODBC package
# Setup from the unixODBC package
#[MySQL]
#Description = ODBC for MySQL
#Driver = /usr/lib/libmyodbc.so
#Setup = /usr/lib/libodbcmyS.so
#FileUsage = 1
[root@localhost ~]# cat /etc/openldap/slapd.conf
# $OpenLDAP: pkg/ldap/servers/slapd/back-sql/rdbms_depend/pgsql/slapd.conf,v 1.4.2.1 2005/01/20 18:04:03 kurt Exp $
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema

# Define global ACLs to disable default read access.
access to * by self write
access to * by * read
access to * by dn="cn=Manager,dc=mydomain,dc=com" write
# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org

pidfile /usr/local/var/slapd.pid
argsfile /usr/local/var/slapd.args
modulepath /usr/lib/openldap
moduleload back_sql.la
#######################################################################
# sql database definitions
#######################################################################

database sql
suffix "dc=mydomain,dc=com"
rootdn "cn=Manager,dc=mydomain,dc=com"
rootpw secret
dbname PgSQL
dbuser test
dbpasswd test
insentry_stmt "insert into ldap_entries (id,dn,oc_map_id,parent,keyval) values ((select max(id)+1 from ldap_entries),?,?,?,?)"
upper_func "upper"
strcast_func "text"
concat_pattern "?||?"
has_ldapinfo_dn_ru no

lastmod off
[root@localhost ~]# service ldap start
Checking configuration files for slapd: WARNING: No dynamic config support for database sql.
backend_startup_one: bi_db_open failed! (1)
slap_startup failed (test would succeed using the -u switch)
[FAILED]
[root@localhost ~]# ldapsearch -d 1
ldap_create
ldap_pvt_sasl_getmech
ldap_search
put_filter: "(objectclass=*)"
put_filter: simple
put_simple_filter: "objectclass=*"
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP ldap:389
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 192.168.1.128:389
ldap_connect_timeout: fd: 3 tm: -1 async: 0
ldap_close_socket: 3
ldap_perror
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
[/console]

#81057

[console][root@localhost ~]# slaptest -f /etc/openldap/slapd.conf
WARNING: No dynamic config support for database sql.
backend_startup_one: bi_db_open failed! (1)
slap_startup failed (test would succeed using the -u switch)[/console]

Войдите или зарегистрируйтесь, чтобы ответить.