Changeset - c5e2151afd55
[Not reviewed]
0 1 0
Branko Majic (branko) - 6 days ago 2024-09-22 13:11:56
branko@majic.rs
MAR-218: Disable logging when setting up LDAP server consumers.
1 file changed with 2 insertions and 0 deletions:
0 comments (0 inline, 0 general)
roles/ldap_server/tasks/main.yml
Show inline comments
 
@@ -112,164 +112,166 @@
 
  ansible.builtin.copy:
 
    content: "/etc/ssl/certs/{{ ansible_fqdn }}_ldap.pem"
 
    dest: "/etc/check_certificate/{{ ansible_fqdn }}_ldap.conf"
 
    owner: root
 
    group: root
 
    mode: "0644"
 

	
 
- name: Configure TLS
 
  community.general.ldap_attrs:
 
    dn: cn=config
 
    attributes:
 
      olcTLSCertificateFile: "/etc/ssl/certs/{{ ansible_fqdn }}_ldap.pem"
 
      olcTLSCertificateKeyFile: "/etc/ssl/private/{{ ansible_fqdn }}_ldap.key"
 
      olcTLSDHParamFile: "/etc/ssl/private/{{ ansible_fqdn }}_ldap.dh.pem"
 
      olcTLSCipherSuite: "{{ ldap_tls_ciphers }}"
 
    state: exact
 

	
 
- name: Configure required SSF (make sure local unix socket connections are allowed)
 
  community.general.ldap_attrs:
 
    dn: cn=config
 
    attributes:
 
      olcLocalSSF: "{{ ldap_server_ssf }}"
 
      olcSecurity: "ssf={{ ldap_server_ssf }}"
 
    state: exact
 

	
 
- name: Enable the memberof module
 
  community.general.ldap_attrs:
 
    dn: "cn=module{0},cn=config"
 
    attributes:
 
      olcModuleLoad: "{1}memberof"
 
    state: present
 

	
 
- name: Enable the memberof overlay for database
 
  community.general.ldap_entry:
 
    dn: "olcOverlay={0}memberof,olcDatabase={1}mdb,cn=config"
 
    objectClass:
 
      - olcConfig
 
      - olcMemberOf
 
      - olcOverlayConfig
 
    attributes:
 
      olcOverlay: memberof
 
      olcMemberOfRefInt: "TRUE"
 
      olcMemberOfGroupOC: groupOfUniqueNames
 
      olcMemberOfMemberAD: uniqueMember
 

	
 
- name: Apply database permissions
 
  m_ldap_permissions:
 
    filter: "(olcSuffix={{ ldap_server_int_basedn }})"
 
    rules: "{{ ldap_permissions }}"
 

	
 
- name: Drop the admin entry corresponding to olcRootDN for database from directory
 
  community.general.ldap_entry:
 
    dn: "cn=admin,{{ ldap_server_int_basedn }}"
 
    state: absent
 

	
 
- name: Create basic LDAP directory structure
 
  community.general.ldap_entry:
 
    dn: "ou={{ item }},{{ ldap_server_int_basedn }}"
 
    objectClass:
 
      - organizationalUnit
 
    attributes:
 
      ou: "{{ item }}"
 
  with_items:
 
    - people
 
    - groups
 
    - services
 

	
 
- name: Create the entry that will contain mail service information
 
  community.general.ldap_entry:
 
    dn: "ou=mail,ou=services,{{ ldap_server_int_basedn }}"
 
    objectClass:
 
      - organizationalUnit
 
    attributes:
 
      ou: mail
 

	
 
- name: Create LDAP directory structure for mail service
 
  community.general.ldap_entry:
 
    dn: "ou={{ item }},ou=mail,ou=services,{{ ldap_server_int_basedn }}"
 
    objectClass:
 
      - organizationalUnit
 
    attributes:
 
      ou: "{{ item }}"
 
  with_items:
 
    - domains
 
    - aliases
 

	
 
- name: Create or remove login entries for services
 
  community.general.ldap_entry:
 
    dn: "cn={{ item.name }},ou=services,{{ ldap_server_int_basedn }}"
 
    objectClass:
 
      - applicationProcess
 
      - simpleSecurityObject
 
    attributes:
 
      cn: "{{ item.name }}"
 
      userPassword: "{{ item.password }}"
 
    state: "{{ item.state | default('present') }}"
 
  no_log: true
 
  with_items: "{{ ldap_server_consumers }}"
 

	
 
- name: Update services login passwords
 
  community.general.ldap_attrs:
 
    dn: "cn={{ item.name }},ou=services,{{ ldap_server_int_basedn }}"
 
    attributes:
 
      userPassword: "{{ item.password }}"
 
    state: exact
 
  with_items: "{{ ldap_server_consumers }}"
 
  no_log: true
 
  when: "item.state | default('present') == 'present'"
 

	
 
- name: Create or remove user-supplied groups
 
  community.general.ldap_entry:
 
    dn: "cn={{ item.name }},ou=groups,{{ ldap_server_int_basedn }}"
 
    objectClass:
 
      - groupOfUniqueNames
 
    attributes:
 
      cn: "{{ item.name }}"
 
      uniqueMember: "cn=NONE"
 
    state: "{{ item.state | default('present') }}"
 
  with_items: "{{ ldap_server_groups }}"
 

	
 
- name: Create user-supplied LDAP entries
 
  community.general.ldap_entry:
 
    dn: "{{ item.dn }}"
 
    objectClass: "{{ item.attributes.objectClass }}"
 
    attributes: "{{ item.attributes }}"
 
    state: "{{ item.state | default('present') }}"
 
  with_items: "{{ ldap_entries }}"
 

	
 
- name: Deploy firewall configuration for LDAP
 
  ansible.builtin.copy:
 
    src: "ferm_ldap.conf"
 
    dest: "/etc/ferm/conf.d/10-ldap.conf"
 
    owner: root
 
    group: root
 
    mode: "0640"
 
  notify:
 
    - Restart ferm
 

	
 
- name: Test LDAP admin password
 
  community.general.ldap_search:
 
    bind_dn: "cn=admin,{{ ldap_server_int_basedn }}"
 
    bind_pw: "{{ ldap_admin_password }}"
 
    server_uri: "ldapi:///"
 
    dn: "{{ ldap_server_int_basedn }}"
 
    scope: base
 
  register: ldap_admin_password_check
 
  failed_when: false
 

	
 
- name: Update LDAP admin password
 
  community.general.ldap_attrs:
 
    dn: "olcDatabase={1}mdb,cn=config"
 
    attributes:
 
      olcRootPW: "{{ ldap_admin_password | ldap_password_hash }}"
 
    state: exact
 
  no_log: true
 
  when: "'results' not in ldap_admin_password_check"
 

	
 
- name: Enable backup
 
  ansible.builtin.import_tasks: backup.yml
 
  when: enable_backup
 

	
 
- name: Explicitly run all handlers
 
  ansible.builtin.import_tasks: ../handlers/main.yml
 
  when: "run_handlers | default(False) | bool()"
 
  tags:
 
    - handlers
0 comments (0 inline, 0 general)