DBIS has been developed on OpenSUSE 12.1 but should work fine on all major versions of Linux. It has been tested on RHEL4, RHEL5, RHEL6 and Solaris 11, and should also work ok on FreeBSD. As the server is written in Python the platform limitations are actually derived from nss-pam-ldapd, which provides the NSS library. The NSS library is written in C, and therefore DBIS should compile and run ok on any platform supported by nss-pam-ldapd.
The server component requires Python 2.x (2.4 or later). It also requires the python-ldap module to be pre-installed. Although dbis-cachemgr
should work with any reasonably modern version of python-ldap
, there is a performance enhancement that is automatically enabled if you are using version 2.4.17 that will reduce the background load on the CPUs when there are pending LDAP search operations. If you can use version 2.4.17 or later it is recommended that you do. If you can't, earlier versions will work just fine too.
DBIS requires one or more LDAP servers to talk to. If you have more than one, it can load balance requests between them.
To install, download the latest version of DBIS, extract the archive and run:
$ ./configure
$ make
$ make check # optional, run it if you want the tests
$ sudo make install
The configure
script has additional options, run ./configure -h
to see a list of those options.
By default, unless changed by the --prefix
and --with-nss-prefix
options, the installation files will be deployed in the locations detailed in the following table.
Path | Description |
---|---|
/<libdir>/libnss_dbis.so.2 |
NSS library |
/<libdir>/libdbis.so |
C library for DBIS clients |
/usr/bin/dbis |
DBIS client tool |
/usr/sbin/dbis-cachemgr |
DBIS server |
/etc/dbis-cachemgr.conf |
DBIS server configuration file |
/usr/share/man/man1/dbis.1 |
Man page for DBIS client tool |
/usr/share/man/man3/dbis_*.3 |
Man pages for C API |
/usr/share/man/man5/dbis-cachemgr.conf.5 |
Man page for DBIS server configuration file |
/usr/share/man/man8/dbis-cachemgr.8 |
Man page for DBIS server |
<python-site-packages>/dbis |
Python libraries to support DBIS server |
<python-site-packages>/dbis/balance |
Python libraries used by DBIS server for load balancing of LDAP servers |
<python-site-packages>/dbis/client |
Python API for DBIS clients |
<python-site-packages>/dbis/nslcd |
Python libraries used by DBIS server to support the network protocol used by the NSS library |
<python-site-packages>/dbis/daemon |
A bundled version of the python-daemon library used by the DBIS server |
<python-site-packages>/pyloom |
Pyloom library, supporting a scalable multi-threaded TCP server implementation |
<perl-sitelib>/DBIS/Client |
Perl API |
/usr/include/dbis |
Header files for C API |
Once the software is installed, you need to configure one or more LDAP servers with the DBIS schema and some DBIS data, configure /etc/dbis-cachemgr.conf
with details of those LDAP servers, and finally configure /etc/nsswitch.conf
to use dbis
. This is all described in [Configuring DBIS].
Note that dbis-cachemgr
does not come with a start-up script, so you will need to provide one if you need it to start at boot time. It can run as the root
user, although for increased security it is recommended you create a user account (for example, called dbis
) that the server will run as. If you are running the server as a non-root
user, your start-up script will need to mkdir /var/run/dbis
and set the ownership on that directory so that only the dbis
user has write access to it, prior to launching dbis-cachemgr
. Then when dbis-cachemgr
is launched, use su
to switch user and pass the -p /var/run/dbis/dbis-cachemgr.pid
option to dbis-cachemgr
which will relocate the PID file (as the dbis
user will not have access to the /var/run
directory).
Wiki: Configuring DBIS
Wiki: DBIS Reference Manual
Wiki: Home
Wiki: Using DBIS