diff --git a/docs/rolereference.rst b/docs/rolereference.rst index 933f1f621452d5f8a59a718b9579a281588e7100..ed701baaf0e1b9bb6c3385fb6212be7e7d55d96b 100644 --- a/docs/rolereference.rst +++ b/docs/rolereference.rst @@ -419,6 +419,8 @@ The role implements the following: * Configures OpenLDAP server (base DN - domain, organisation, TLS, SSF, log levels). * Sets-up separate log file for OpenLDAP server at ``/var/log/slapd.log`` (with log rotation included). +* Enables the ``misc`` LDAP schema (from ``/etc/ldap/schema/misc.ldif``). This + is necessary for the mail server role. * Enables the ``memberof`` overlay on top of default database. The overlay is configured to keep track of membership changes for object class ``groupOfUniqueNames`` via attribute ``uniqueMember``. Enforcement of diff --git a/roles/ldap_server/tasks/main.yml b/roles/ldap_server/tasks/main.yml index 66317ea7fdf2e4c485f53f0534d81c672cd1fa8c..5c37e0133d903d1c1b3fafb41be715a0f5410d27 100644 --- a/roles/ldap_server/tasks/main.yml +++ b/roles/ldap_server/tasks/main.yml @@ -34,6 +34,15 @@ - name: Change log level for slapd ldap_entry: dn=cn=config state=replaceattributes olcLogLevel="{{ ldap_server_log_level }}" +- name: Test if LDAP misc schema has been applied + command: ldapsearch -Q -LLL -A -Y EXTERNAL -b cn=schema,cn=config -s one '(cn={*}misc)' cn + register: ldap_misc_schema_present + changed_when: false + +- name: Deploy LDAP misc schema + command: ldapadd -Y EXTERNAL -f /etc/ldap/schema/misc.ldif + when: ldap_misc_schema_present.stdout == "" + - name: Deploy LDAP TLS private key copy: dest="/etc/ssl/private/{{ ldap_server_tls_key | basename }}" src="{{ ldap_server_tls_key }}" mode=640 owner=root group=openldap diff --git a/testsite/group_vars/ldap.yml b/testsite/group_vars/ldap.yml index 7acea29dd71849462788755d685148e796046b09..f11daff73103d64ecad7f36caf32bf5e6f6f01de 100644 --- a/testsite/group_vars/ldap.yml +++ b/testsite/group_vars/ldap.yml @@ -53,17 +53,6 @@ ldap_permissions: by * none ldap_entries: - - dn: "cn={4}misc,cn=schema,cn=config" - objectClass: olcSchemaConfig - cn: "{4}misc" - olcAttributeTypes: - - "{0}( 2.16.840.1.113730.3.1.13 NAME 'mailLocalAddress' DESC 'RFC822 email address of this recipient' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )" - - "{1}( 2.16.840.1.113730.3.1.18 NAME 'mailHost' DESC 'FQDN of the SMTP/MTA of this recipient' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} SINGLE-VALUE )" - - "{2}( 2.16.840.1.113730.3.1.47 NAME 'mailRoutingAddress' DESC 'RFC822 routing address of this recipient' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} SINGLE-VALUE )" - - "{3}( 1.3.6.1.4.1.42.2.27.2.1.15 NAME 'rfc822MailMember' DESC 'rfc822 mail address of group member(s)' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )" - olcObjectClasses: - - "{0}( 2.16.840.1.113730.3.2.147 NAME 'inetLocalMailRecipient' DESC 'Internet local mail recipient' SUP top AUXILIARY MAY ( mailLocalAddress $ mailHost $ mailRoutingAddress ) )" - - "{1}( 1.3.6.1.4.1.42.2.27.1.2.5 NAME 'nisMailAlias' DESC 'NIS mail alias' SUP top STRUCTURAL MUST cn MAY rfc822MailMember )" - dn: ou=people,{{ testsite_ldap_base }} objectClass: organizationalUnit ou: people