ansible-collection-conference/roles/pretalx/tasks/install.yml

110 lines
3.3 KiB
YAML

---
- name: Install dependencies
ansible.builtin.package:
name:
- podman
- postgresql
- python3-psycopg2
- name: Create pretalx group
ansible.builtin.group:
name: "{{ pretalx_system_group }}"
- name: Create pretalx user
ansible.builtin.user:
name: "{{ pretalx_system_user }}"
group: "{{ ptrealx_system_group }}"
home: "{{ pretalx_system_home }}"
password: '!'
shell: /usr/sbin/nologin
comment: Pretalx
- name: Create subuid entry
ansible.builtin.lineinfile:
path: /etc/subuid
line: "{{ pretalx_system_user }}:{{ pretalx_subuid_begin }}:{{ pretalx_subuid_count }}"
regexp: "^{{ pretalx_system_user }}:"
create: true
owner: root
group: root
mode: "0644"
- name: Create subgid entry
ansible.builtin.lineinfile:
path: /etc/subgid
line: "{{ pretalx_system_user }}:{{ pretalx_subgid_begin }}:{{ pretalx_subgid_count }}"
regexp: "^{{ pretalx_system_user }}:"
create: true
owner: root
group: root
mode: "0644"
- name: Create pretalx directories
ansible.builtin.file:
path: "{{ pretalx_system_home }}/{{ item }}"
state: directory
owner: "{{ pretalx_subuid_begin + pretalx_container_uid }}"
group: "{{ pretalx_subgid_begin + pretalx_container_gid }}"
mode: "0750"
loop:
- data
- public
- name: Create PostgreSQL user
community.postgresql.postgresql_user:
name: "{{ pretalx_postgresql_username }}"
#password: "{{ pretalx_postgresql_password }}"
#no_password_changes: true
- name: Create PostgreSQL database
community.postgresql.postgresql_db:
name: "{{ pretalx_postgresql_database }}"
owner: "{{ pretalx_postgresql_username }}"
- name: Create Pretalx configuration directory
ansible.builtin.file:
path: /etc/pretalx
owner: "{{ pretalx_system_user }}"
group: "{{ pretalx_system_group }}"
mode: "0755"
state: directory
- name: Render Pretalx configuration
ansible.builtin.template:
src: etc/pretalx/pretalx.cfg.j2
dest: /etc/pretalx/pretalx.cfg
owner: "{{ pretalx_system_user }}"
group: "{{ pretalx_system_group }}"
mode: "0700"
notify: Restart Pretalx
- name: Create pretalx-cache container
containers.podman.podman_container:
name: pretalx-cache
image: "{{ pretalx_cache_image }}:{{ pretalx_cache_image_tag }}"
restart_policy: unless-stopped
labels:
com.centurylinklabs.watchtower.enable: "{{ pretalx_watchtower_enabled | ternary('true', 'false') }}"
subuidname: "{{ pretix_system_user }}"
subgidname: "{{ pretix_system_user }}"
- name: Create pretalx container
containers.podman.podman_container:
name: pretalx
image: "{{ pretalx_image }}:{{ pretalx_image_tag }}"
restart_policy: unless-stopped
ports:
- "{{ pretalx_http_hostaddr }}:{{ pretalx_http_hostport }}:80"
volumes:
- "/etc/pretalx:/etc/pretalx:ro"
- "{{ pretalx_system_home }}/data:/data"
- "{{ pretalx_system_home }}/public:/public"
- "/run/postgresql:/run/postgresql"
env:
PRETALX_FILESYSTEM_MEDIA: /public/media
PRETALX_FILESYSTEM_STATIC: /public/static
labels:
com.centurylinklabs.watchtower.enable: "{{ pretalx_watchtower_enabled | ternary('true', 'false') }}"
subuidname: "{{ pretix_system_user }}"
subgidname: "{{ pretix_system_user }}"