diff options
author | Jonas Gunz <himself@jonasgunz.de> | 2022-06-05 23:26:31 +0200 |
---|---|---|
committer | Jonas Gunz <himself@jonasgunz.de> | 2022-06-05 23:26:31 +0200 |
commit | 2c57b5370c6cd44f700985132f360c15d2664ebf (patch) | |
tree | 7d4584d90f126ecb5ea2e707e597e61d60617ed0 /roles/openldap/tasks/schema.yml | |
parent | 736ffc77f09a8e238e63a9819d19fe41e7c523d4 (diff) | |
download | ansible_collection-2c57b5370c6cd44f700985132f360c15d2664ebf.tar.gz |
openldap: Add custom schema options
Allows to specify custom schema entries
in config file
Diffstat (limited to 'roles/openldap/tasks/schema.yml')
-rw-r--r-- | roles/openldap/tasks/schema.yml | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/roles/openldap/tasks/schema.yml b/roles/openldap/tasks/schema.yml new file mode 100644 index 0000000..64c7bc8 --- /dev/null +++ b/roles/openldap/tasks/schema.yml @@ -0,0 +1,44 @@ +- name: search for entry + community.general.ldap_search: + dn: 'cn=schema,cn=config' + filter: '(&(objectClass=olcSchemaConfig)(cn={*}openssh-lpk))' + scope: children + become: yes + register: schemareg + +- name: Check results + assert: + that: + - schemareg['failed'] == false + - schemareg['results'] | length <= 1 + fail_msg: "More than one occurance of {{ item['cn'] }}! clean them out." + +- name: "Install schema: create entry" + community.general.ldap_entry: + dn: 'cn={{ item["cn"] }},cn=schema,cn=config' + state: present + objectClass: olcSchemaConfig + become: yes + when: schemareg['results'] | length == 0 + +- name: "Install schema: set attributes" + community.general.ldap_attrs: + dn: '{{ item["cn"] }},cn=schema,cn=config' + state: present + attributes: + objectClass: olcSchemaConfig + olcAttributeTypes: '{{ item["olcAttributeTypes"] }}' + olcObjectClasses: '{{ item["olcObjectClasses"] }}' + become: yes + when: schemareg['results'] | length == 0 + +- name: Update schema + community.general.ldap_attrs: + dn: '{{ schemareg["results"][0]["dn"] }}' + state: exact + attributes: + objectClass: olcSchemaConfig + olcAttributeTypes: '{{ item["olcAttributeTypes"] }}' + olcObjectClasses: '{{ item["olcObjectClasses"] }}' + become: yes + when: schemareg['results'] | length > 0 |