Stanford ACS OpenLDAP Puppet Module
===================================

Introduction
------------

Puppet module to manage Stanford's OpenLDAP service. Supports both
traditional servers and containers.

## Usage ##

### OpenLDAP Installation and Configuration ###

The main class `ldap` supports the installation of OpenLDAP and some of
OpenLDAP's configuration. The simplest installation (which accepts all the
defaults) is:

    class { 'ldap':
    }

This assumes installation on a traditional Debian server and will install
whichever version of OpenLDAP is current for that version of Debian.

#### Hosting Model

If you are installing onto a container, use the parameter `hosting_model`
and set to `container`:

    class { 'ldap':
      hosting_model => 'container',
    }

The only two acceptable values for `hosting_model` are "`traditional`" and
"`container`".

#### OpenLDAP Version

As mentioned above, the default is to install whichever version of
OpenLDAP `apt` thinks should be installed. This will, of course, depend on
the version of Debian underlying the host.

However, you can override this by using the `install_archive` and
`install_distro`. If the distribution you want to use is already in
included in the APT sources via `/etc/apt/sources.list.d` then use
`install_distribution` to specify the distribution:

    # Use the "testing" distribution
    class { 'ldap':
      install_distribution => 'testing',
    }

If the distribution is _not_ already included in `/etc/apt/sources.list.d`
then you can use `install_repository` to add a `.list` file to
`/etc/apt/sources.list.d` that tells `apt` where to look for the
distribution. For example,

    # Use the "stretch-prod" distribution.
    class { 'ldap':
      install_distribution => 'stretch-prod',
      install_repository   => 'https://debian.stanford.edu/debian-stanford',
    }