aboutsummaryrefslogtreecommitdiff
path: root/roles/openldap/tasks/schema.yml
diff options
context:
space:
mode:
authorGravatar Jonas Gunz <himself@jonasgunz.de> 2022-06-05 23:26:31 +0200
committerGravatar Jonas Gunz <himself@jonasgunz.de> 2022-06-05 23:26:31 +0200
commit2c57b5370c6cd44f700985132f360c15d2664ebf (patch)
tree7d4584d90f126ecb5ea2e707e597e61d60617ed0 /roles/openldap/tasks/schema.yml
parent736ffc77f09a8e238e63a9819d19fe41e7c523d4 (diff)
downloadansible_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.yml44
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