Installation on Suse Linux

LL::NG requires at least SLES 12 SP1 or equivalent

Organization

LemonLDAP::NG provides packages for SLES:

  • lemonldap-ng: metapackage, contains no file but dependencies on other packages
  • lemonldap-ng-doc: contains HTML documentation and project docs (README, etc.)
  • lemonldap-ng-conf: contains default configuration (DNS domain: example.com)
  • lemonldap-ng-test: contains sample CGI test page
  • lemonldap-ng-handler: contains Apache Handler implementation (agent)
  • lemonldap-ng-manager: contains administration interface and session explorer
  • lemonldap-ng-portal: contains authentication portal and menu
  • lemonldap-ng-fastcgi-server: FastCGI server needed to use Nginx
  • perl-Lemonldap-NG-Common: CPAN - Shared modules
  • perl-Lemonldap-NG-Handler: CPAN - Handler modules
  • perl-Lemonldap-NG-Manager: CPAN - Manager modules
  • perl-Lemonldap-NG-Portal: CPAN - Portal modules

Get the packages

Repositories

This manual only refers to SLES 12 SP1. Installation may work on other platforms, with no guarantee.

Different repositories are necessary for LemonLDAP::NG dependencies:

  • Suse official repositories
  • 2 repositories on openSUSE Build Service
  • Additional packages available on repository.linagora.org or lemonldap-ng.org
  • Suse SDK repository is advised for building packages (yast2 → Software → Software Repositories → Add –> Extensions and modules from Registration Server)

First, make sure the exploitation system is up to date:

zypper update

You can add the openSUSE Build Service repositories with the following commands:

zypper addrepo http://download.opensuse.org/distribution/leap/42.1/repo/oss/suse/ leap42
zypper addrepo http://download.opensuse.org/repositories/devel:languages:perl/SLE_12/devel:languages:perl.repo
zypper refresh

Accept both signing keys each time.

You can add the additional dependency repository *and* the LemonLDAP::NG repository with either commands:

zypper addrepo http://lemonldap-ng.org/sles12 lemonldap-sles12-repository
zypper refresh

or

zypper addrepo http://repository.linagora.org/lemonldap-sles12-repository lemonldap-sles12-repository
zypper refresh
Only packages on SLES 12 SP1 are tested for now.

Manual download

RPMs are available on the Download page.

Package GPG signature

The GPG key can be downloaded here: rpm-gpg-key-ow2

Install it to trust RPMs:

rpm --import rpm-gpg-key-ow2

Install packages

With ZYPPER

If the packages are stored in a repository:

zypper install lemonldap-ng
59 new packages to install.
Total download size: 13.5 MiB. Already cached : 0 B. After operation, 30.7 MiB of supplementary disk space will be used.
Continue ? [y/n/? print all options] (y):

You can also use zypper on local RPMs file:

zypper install lemonldap-ng-* perl-Lemonldap-NG-*

With RPM

Before installing the packages, install all dependencies: (you need to get dependencies from previous repositories)

zypper install apache2 apache2-mod_perl apache2-mod_fcgid perl-ldap perl-XML-SAX perl-XML-NamespaceSupport perl-XML-Simple perl-XML-LibXML perl-Config-IniFiles perl-Digest-HMAC perl-Crypt-OpenSSL-RSA perl-Authen-SASL perl-Unicode-String gd perl-Regexp-Assemble perl-Authen-Captcha perl-Cache-Cache perl-Apache-Session perl-CGI-Session perl-IO-String perl-MIME-Lite perl-SOAP-Lite perl-XML-LibXSLT perl-String-Random perl-Email-Date-Format perl-Crypt-Rijndael perl-HTML-Template perl-JSON perl-Crypt-OpenSSL-X509 perl-Crypt-DES perl-Class-Inspector perl-Test-MockObject perl-Clone perl-Net-CIDR-Lite perl-ExtUtils-MakeMaker perl-CGI perl-CGI-Session perl-HTML-Template perl-SOAP-Lite perl-IPC-ShareLite perl-Error perl-HTML-Parser perl-libwww-perl perl-DBI perl-Cache-Memcached perl-Class-ErrorHandler perl-Convert-PEM perl-Crypt-DES_EDE3 perl-Digest-SHA perl-Env perl-Mouse perl-String-CRC32 perl-Plack perl-Regexp-Common perl-Crypt-OpenSSL-Bignum perl-FCGI-ProcManager

You have then to install all the downloaded packages:

rpm -Uvh lemonldap-ng-* perl-Lemonldap-NG-*
You can choose to install only one component by choosing the package lemonldap-ng-portal, lemonldap-ng-handler or lemonldap-ng-manager.

Install the package lemonldap-ng-conf on all server which contains one of those packages.

First configuration steps

Enable Apache extensions

These extensions are activated by default on Apache at LemonLDAP install:

a2enmod perl
a2enmod headers
a2enmod mod_fcgid
a2enmod ssl
a2enmod rewrite
a2enmod proxy
a2enmod proxy_http

If you decide to use SSL, you should also activate the appopriate flag:

sed -i 's/^APACHE_SERVER_FLAGS=.*/APACHE_SERVER_FLAGS="SSL"/' /etc/sysconfig/apache2

Change default DNS domain

By default, DNS domain is example.com. You can change it quick with a sed command. For example, we change it to ow2.org:

sed -i 's/example\.com/ow2.org/g' /etc/lemonldap-ng/{*.conf,*.ini,for_etc_hosts} /var/lib/lemonldap-ng/conf/lmConf-1 /var/lib/lemonldap-ng/test/index.pl

Check Apache configuration and restart:

apachectl configtest
apachectl restart

DNS

Configure your DNS server to resolve names with your server IP:

  • auth.<your domain>: main portal, must be public
  • manager.<your domain>: manager, only for adminsitrators
  • test1.<your domain>, test2.<your domain>: sample applications

Follow the next steps

File location

  • Configuration is in /etc/lemonldap-ng
  • LemonLDAP::NG configuration (edited by the Manager) is in /var/lib/lemonldap-ng/conf/
  • All Perl modules are in the VENDOR perl directory
  • All Perl scripts/pages are in /var/lib/lemonldap-ng/
  • All static content (examples, CSS, images, etc.) is in /usr/share/lemonldap-ng/

Build your packages

If you need it, you can rebuild RPMs:

  • Install rpm-build package
  • Get the lemonldap source package from repository:
zypper source-install lemonldap-ng
cd /usr/src/packages/
ls SPECS/ SOURCES/
  • Install all build dependencies (see BuildRequires in lemonldap-ng.spec)
  • Build:
rpmbuild -ba SPECS/lemonldap-ng.spec

Alternatively, you can use the automatic script “create-lemonldap-packages.sh”, available in rpm-sles directory in the lemonldap svn repository. The automatic script can also generate intermediate dependencies. See README file in the same directory for more information.