summaryrefslogtreecommitdiff
path: root/playbooks/roles/kanidm
diff options
context:
space:
mode:
Diffstat (limited to 'playbooks/roles/kanidm')
-rw-r--r--playbooks/roles/kanidm/tasks/main.yml47
-rw-r--r--playbooks/roles/kanidm/templates/docker-compose.yml.j213
-rw-r--r--playbooks/roles/kanidm/templates/server.toml.j210
3 files changed, 70 insertions, 0 deletions
diff --git a/playbooks/roles/kanidm/tasks/main.yml b/playbooks/roles/kanidm/tasks/main.yml
new file mode 100644
index 0000000..37cc0da
--- /dev/null
+++ b/playbooks/roles/kanidm/tasks/main.yml
@@ -0,0 +1,47 @@
+---
+
+- name: Ensure kanidm docker/compose exist
+ ansible.builtin.file:
+ path: /etc/docker/compose/kanidm
+ state: directory
+ owner: root
+ group: root
+ mode: 0700
+
+- name: Build kanidm docker-compose.yml.j2
+ ansible.builtin.template:
+ src: docker-compose.yml.j2
+ dest: /etc/docker/compose/kanidm/docker-compose.yml
+ owner: root
+ group: root
+ mode: 0700
+
+- name: Ensure kanidm docker/compose/data exist
+ ansible.builtin.file:
+ path: /etc/docker/compose/kanidm/data
+ state: directory
+ owner: root
+ group: root
+ mode: 0700
+
+- name: Build kanidm config
+ ansible.builtin.template:
+ src: server.toml.j2
+ dest: /etc/docker/compose/kanidm/data/server.toml
+ owner: root
+ group: root
+ mode: 0755
+
+- name: Allow LDAPS from rfc1918 networks
+ loop: "{{ rfc1918_networks }}"
+ community.general.ufw:
+ rule: allow
+ proto: tcp
+ port: '3636'
+ from: "{{ item }}"
+
+- name: Enable kanidm
+ ansible.builtin.systemd_service:
+ state: restarted
+ enabled: true
+ name: docker-compose@kanidm
diff --git a/playbooks/roles/kanidm/templates/docker-compose.yml.j2 b/playbooks/roles/kanidm/templates/docker-compose.yml.j2
new file mode 100644
index 0000000..b269865
--- /dev/null
+++ b/playbooks/roles/kanidm/templates/docker-compose.yml.j2
@@ -0,0 +1,13 @@
+
+version: '3'
+
+services:
+ kanidm:
+ image: kanidm/server:1.1.0-rc.16
+ restart: always
+ volumes:
+ - ./data:/data
+ - /etc/letsencrypt:/certs:ro
+ ports:
+ - 127.0.0.1:8443:8443
+ - {{ kanidm_bind_address }}:3636:3636
diff --git a/playbooks/roles/kanidm/templates/server.toml.j2 b/playbooks/roles/kanidm/templates/server.toml.j2
new file mode 100644
index 0000000..ac470cc
--- /dev/null
+++ b/playbooks/roles/kanidm/templates/server.toml.j2
@@ -0,0 +1,10 @@
+bindaddress = "[::]:8443"
+ldapbindaddress = "[::]:3636"
+trust_x_forward_for = true
+db_path = "/data/kanidm.db"
+tls_chain = "/certs/live/{{ kanidm_domain }}/fullchain.pem"
+tls_key = "/certs/live/{{ kanidm_domain }}/privkey.pem"
+log_level = "info"
+
+domain = "{{ kanidm_domain }}"
+origin = "https://{{ kanidm_domain }}"