Add camptocamp-openldap module
Add basic provisioning using Puppet
Add .vagrant to .gitignore
Add openldap::server class to sharedvm
Fix Error: No matching value for selector param 7

Without this patch we're getting this error trying to use the openldap
module:

    Error: No matching value for selector param '7'

This patch adds a selection for RedHat 7.
Add stdlib module to fix Error: Unknown function validate_re

Without this patch we're getting the error:

    Error: Unknown function validate_re at
    /tmp/vagrant-puppet-2/modules-0/openldap/manifests/server.pp:60 on
    node sharedvm

This patch adds the stadlib module which provides the function.
Add augeasproviders module to fix Invalid resource type shellvar

Without this patch we're getting the error:

    Error: Puppet::Parser::AST::Resource failed with error
    ArgumentError: Invalid resource type shellvar at
    /tmp/vagrant-puppet-2/modules-0/openldap/manifests/server/config.pp:41
    on node sharedvm

This patch adds the augeasproviders module which includes this resource
type.
Add Package resource default allow_virtual => true

Without this patch we're getting the warning:

    Warning: The package type's allow_virtual parameter will be changing
    its default value from false to true in a future release. If you do
    not want to allow virtual packages, please explicitly set
    allow_virtual to false.

This patch creates a global resource default to avoid the warning.
Forward 10389 to 389 for LDAP service
Manage the DB with cn=admin,dc=jeffmccune,dc=net

Without this patch the OpenLDAP server is being configured with the
example domain suffix.  This patch addresses the problem by changing the
domain database to be jeffmccune.net.

The server is be manageable using the DN
cn=admin,dc=jeffmccune,dc=net and the password Password1 and the port
forwarded on the host.  For example, from the vagrant host:

    ldapsearch -h localhost -p 10389 \
      -D cn=admin,dc=jeffmccune,dc=net \
      -w Password1 \
      -b dc=jeffmccune,dc=net
    # extended LDIF
    #
    # LDAPv3
    # base <dc=jeffmccune,dc=net> with scope subtree
    # filter: (objectclass=*)
    # requesting: ALL
    #
    # search result
    search: 2
    result: 32 No such object

The bind is successful but there are no objects in the database.
Add ldap client configuration
Load LDAP schema and base structure for accounts

Without this patch the LDAP database is empty.  This is a problem
because there needs to be schemas loaded and a basic structure in place
for user and group management.

This patch addresses the problem by automatically loading the schemas
for core, cosine, inetorgperson, and nis.  Once loaded, the basic
structure of the Groups and Users OU's are loaded.  Finally, a single
user account is created, uid=jeff with password Password1.

This should be enough data automatically loaded to serve accounts to
Jenkins.
Fix puppet hiera.yaml warning

Without this patch the puppet provisioner throws a warning every time it
is run about hiera.yaml being absent.  We aren't using hiera so this
patch avoids the warning by creating a blank hiera.yaml file from the
shell provisioner.
Merge branch 'ldap'

* ldap:
  Fix puppet hiera.yaml warning
  Load LDAP schema and base structure for accounts
  Add ldap client configuration
  Manage the DB with cn=admin,dc=jeffmccune,dc=net
  Forward 10389 to 389 for LDAP service
  Add Package resource default allow_virtual => true
  Add augeasproviders module to fix Invalid resource type shellvar
  Add stdlib module to fix Error: Unknown function validate_re
  Fix Error: No matching value for selector param 7
  Add openldap::server class to sharedvm
  Add .vagrant to .gitignore
  Add basic provisioning using Puppet
  Add camptocamp-openldap module