diff --git a/ansible/roles/authelia/tasks/database-postgresql.json b/ansible/roles/authelia/tasks/database-postgresql.json new file mode 100644 index 0000000..ca69439 --- /dev/null +++ b/ansible/roles/authelia/tasks/database-postgresql.json @@ -0,0 +1,45 @@ +[ + { + "name": "database:postgresql | packages", + "become": true, + "ansible.builtin.apt": { + "pkg": [ + "acl", + "python3-psycopg2" + ] + } + }, + { + "name": "database:postgresql | user", + "become": true, + "become_user": "postgres", + "community.postgresql.postgresql_user": { + "state": "present", + "name": "{{var_authelia_storage_data_postgresql_username}}", + "password": "{{var_authelia_storage_data_postgresql_password}}" + } + }, + { + "name": "database:postgresql | schema", + "become": true, + "become_user": "postgres", + "community.postgresql.postgresql_db": { + "state": "present", + "name": "{{var_authelia_storage_data_postgresql_schema}}", + "owner": "{{var_authelia_storage_data_postgresql_username}}" + } + }, + { + "name": "database:postgresql | rights", + "become": true, + "become_user": "postgres", + "community.postgresql.postgresql_privs": { + "state": "present", + "db": "{{var_authelia_storage_data_postgresql_schema}}", + "objs": "ALL_IN_SCHEMA", + "roles": "{{var_authelia_storage_data_postgresql_username}}", + "privs": "ALL", + "grant_option": true + } + } +] diff --git a/ansible/roles/authelia/tasks/main.json b/ansible/roles/authelia/tasks/main.json index c765720..12bbe17 100644 --- a/ansible/roles/authelia/tasks/main.json +++ b/ansible/roles/authelia/tasks/main.json @@ -37,6 +37,13 @@ ] } }, + { + "name": "database", + "when": "var_authelia_storage_kind == 'postgresql'", + "ansible.builtin.include_tasks": { + "file": "database-postgresql.json" + } + }, { "name": "generate private key for signing OIDC JWTs", "become": true,