Add authentik role

This commit is contained in:
John
2026-10-04 19:34:22 +02:00
committed by John Zimmermann
parent 1350a98aac
commit e4613ccb53
11 changed files with 206 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
---
zitadel_domain: auth.cosmosim.dev
+17
View File
@@ -0,0 +1,17 @@
$ANSIBLE_VAULT;1.1;AES256
63613964316265656364663039376361383531303836336337623534643938353932363232383339
6434626239646435323934633235303735346663356461380a656637356330393661383638636535
34633838303366396431373863393531383465623362643161613461646433303737633939646261
3234646165616532650a313465366666653561643865323664323233333634616463636364326166
64626162623932373734333839333538353130663036346233623666323834666139626331383032
62303836656364366364663730386363306139623366633466643432393132343564316236666366
32396531336562366333316634363237623561393361363535333338386639373530383562636166
63313131343665343866353466356531646333313930663738353262633963616265373230636133
63333066373064366132653664376639343939663335316662646633353730333763333236323932
38373333383132316633376663336530323038646538663464303238626538633336386536333732
64613532336466383739656166653335626630376663373535643162383130336132373239323465
36656336323331383332333361333935646363373034316265613264396132383331353437303464
32323136653737656135653064363465666464396264393831313436396663313136316133343530
65653762323364373038356663623235326439346434303935643762636266663538333363653863
61386166366462333665326266393966366263663035633232383034386634303161616335383732
32633536646438303936
+2
View File
@@ -0,0 +1,2 @@
---
mailhost_is_local: true
+3
View File
@@ -1,5 +1,8 @@
[prod]
cosmosim.dev
[authentik]
cosmosim.dev
[gitea]
cosmosim.dev
+5
View File
@@ -0,0 +1,5 @@
---
authentik_db_name: authentik
authentik_db_user: authentik
authentik_tag: 2026.8.3
+10
View File
@@ -0,0 +1,10 @@
---
- name: Restart authentik-server
runit:
name: authentik-server
state: restarted
- name: Restart authentik-worker
runit:
name: authentik-worker
state: restarted
+117
View File
@@ -0,0 +1,117 @@
---
- name: Install dependencies for authentik
xbps:
pkg:
- podman
- python3-dnspython
- python3-psycopg2
state: present
- name: add dns entry
community.general.nsupdate:
key_name: "ansible"
key_secret: "{{ dns_tsig_key }}"
key_algorithm: "hmac-sha512"
server: "127.0.0.1"
zone: "cosmosim.dev"
record: "{{ zitadel_domain }}."
type: "CNAME"
value: "{{ inventory_hostname }}."
state: present
- name: Create authentik user
ansible.builtin.user:
name: authentik
state: present
createhome: true
- name: Create postgres role
community.postgresql.postgresql_user:
name: "{{ authentik_db_user }}"
state: present
password: "{{ authentik_db_pass }}"
become: true
become_user: postgres
- name: Create postgres database
community.postgresql.postgresql_db:
name: "{{ authentik_db_name }}"
owner: "{{ authentik_db_user }}"
state: present
become: true
become_user: postgres
- name: Create podman network
containers.podman.podman_network:
name: authentik
become: true
become_user: authentik
- name: Create runtime directory
ansible.builtin.file:
path: /home/authentik/{{ item }}
owner: authentik
group: authentik
mode: "0775"
state: directory
with_items:
- data
- certs
- custom-templates
- name: Upload configuration
ansible.builtin.template:
src: templates/conf.j2
dest: /etc/authentik.env
owner: root
group: authentik
mode: "0640"
notify:
- Restart authentik-server
- Restart authentik-worker
- name: Install Service (1/3)
ansible.builtin.file:
path: /etc/sv/{{item}}
state: directory
owner: root
group: root
mode: "0755"
with_items:
- authentik-server
- authentik-server/log
- authentik-worker
- authentik-worker/log
- name: Install Service (2/3)
ansible.builtin.template:
src: authentik.run.j2
dest: /etc/sv/authentik-{{ item }}/run
owner: root
group: root
mode: "0755"
notify:
- Restart authentik-server
- Restart authentik-worker
with_items:
- worker
- server
- name: Install Service (3/3)
ansible.builtin.template:
src: "log.run.j2"
dest: "/etc/sv/{{ item }}/log/run"
owner: root
group: root
mode: "0755"
with_items:
- authentik-server
- authentik-worker
- name: Enable services
runit:
name: "{{ item }}"
enabled: true
with_items:
- authentik-server
- authentik-worker
@@ -0,0 +1,20 @@
#!/bin/sh
exec 2>&1
export HOME=/home/authentik
exec chpst -u authentik:authentik -C $HOME \
podman run -it --rm --sig-proxy \
--name=authentik-{{ item }} \
--env-file=/etc/authentik.env \
{% if item == "server" %}
-p 9000:9000 \
{% endif %}
{% if mailhost_is_local is defined and mailhost_is_local %}
--add-host={{ mail_host }}:host-gateway \
{% endif %}
--network=authentik \
-v ./data:/data \
-v ./certs:/certs \
-v ./custom-templates:/templates \
--mount type=bind,src=/tmp/.s.PGSQL.5432,target=/tmp/.s.PGSQL.5432 \
ghcr.io/goauthentik/server:{{ authentik_tag }} {{ item }}
+19
View File
@@ -0,0 +1,19 @@
AUTHENTIK_POSTGRESQL__HOST=/tmp
AUTHENTIK_POSTGRESQL__NAME={{ authentik_db_name }}
AUTHENTIK_POSTGRESQL__PASSWORD={{ authentik_db_pass }}
AUTHENTIK_POSTGRESQL__USER={{ authentik_db_user }}
AUTHENTIK_SECRET_KEY={{ authentik_secret_key }}
# SMTP server
AUTHENTIK_EMAIL__HOST={{ mail_host }}
AUTHENTIK_EMAIL__PORT=465
# Optionally authenticate (don't add quotation marks to your password)
AUTHENTIK_EMAIL__USERNAME=auth@cosmosim.dev
AUTHENTIK_EMAIL__PASSWORD={{ authentik_mail_pass }}
# STARTTLS / explicit TLS, usually on port 587
AUTHENTIK_EMAIL__USE_TLS=false
# Implicit TLS/SSL on the SMTP connection (`USE_SSL` is the variable name), usually on port 465
AUTHENTIK_EMAIL__USE_SSL=true
AUTHENTIK_EMAIL__TIMEOUT=10
# Sender email address; verify that the domain is valid.
AUTHENTIK_EMAIL__FROM=auth@cosmosim.dev
+2
View File
@@ -0,0 +1,2 @@
#!/bin/sh
exec vlogger -t {{ item }}
+9
View File
@@ -1,4 +1,13 @@
---
- hosts: prod
become: yes
become_method: sudo
become_user: root
roles:
- authentik
tags:
- authentik
- hosts: gitea
become: yes
become_method: sudo