mirror of
https://github.com/2martens/cloud-configuration.git
synced 2026-10-17 16:46:51 +02:00
feat: Add pretix role
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
---
|
||||
- name: Create DB user password
|
||||
ansible.builtin.command:
|
||||
cmd: openssl rand -hex 32
|
||||
register: pretix_db_password
|
||||
changed_when: false
|
||||
- name: Create DB user
|
||||
community.postgresql.postgresql_user:
|
||||
name: "{{ ssh_user }}_pretix"
|
||||
password: "{{ pretix_db_password.stdout }}"
|
||||
state: present
|
||||
- name: Create database
|
||||
community.postgresql.postgresql_db:
|
||||
name: "{{ ssh_user }}_pretix"
|
||||
owner: "{{ ssh_user }}_pretix"
|
||||
encoding: UTF-8
|
||||
template: template0
|
||||
comment: Database for pretix
|
||||
state: present
|
||||
register: pretix_db
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
- name: List domains
|
||||
ansible.builtin.command: uberspace web domain list
|
||||
changed_when: false
|
||||
register: domains
|
||||
- name: Set up domain
|
||||
when: domains.stdout.find(pretix_domain) == -1
|
||||
block:
|
||||
- name: Add domain
|
||||
ansible.builtin.command: uberspace web domain add {{ pretix_domain }}
|
||||
register: new_domain
|
||||
changed_when: true
|
||||
- name: Print out important information
|
||||
changed_when: false
|
||||
ansible.builtin.debug:
|
||||
msg: "{{ new_domain.stdout }}"
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
- name: Create database
|
||||
ansible.builtin.import_tasks: database.yaml
|
||||
- name: Set up domain
|
||||
ansible.builtin.import_tasks: domain.yaml
|
||||
- name: Set up pretix
|
||||
ansible.builtin.import_tasks: setup.yaml
|
||||
- name: Configure pretix web backend
|
||||
ansible.builtin.command:
|
||||
cmd: uberspace web backend set / --http --port 9000
|
||||
- name: Configure static files
|
||||
ansible.builtin.command:
|
||||
cmd: uberspace web backend set /static --apache
|
||||
- name: Configure media files
|
||||
ansible.builtin.command:
|
||||
cmd: uberspace web backend set /media --apache
|
||||
- name: Set up cronjob
|
||||
ansible.builtin.cron:
|
||||
name: pretix periodic
|
||||
minute: "18,48"
|
||||
job: "cd ~/pretix_data && {{ python_executable }} -m pretix runperiodic"
|
||||
state: present
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
- name: Create data folder
|
||||
ansible.builtin.file:
|
||||
state: directory
|
||||
path: /home/{{ ssh_user }}/pretix_data
|
||||
owner: "{{ ssh_user }}"
|
||||
group: "{{ ssh_user }}"
|
||||
mode: "755"
|
||||
- name: Install pretix
|
||||
ansible.builtin.pip:
|
||||
executable: "{{ pip_executable }}"
|
||||
name:
|
||||
- pretix
|
||||
- gunicorn
|
||||
extra_args: --user
|
||||
- name: Create config file
|
||||
ansible.builtin.template:
|
||||
src: pretix.cfg.j2
|
||||
dest: /home/{{ ssh_user }}/.pretix.cfg
|
||||
owner: "{{ ssh_user }}"
|
||||
group: "{{ ssh_user }}"
|
||||
mode: "600"
|
||||
- name: Populate database
|
||||
ansible.builtin.command:
|
||||
cmd: "{{ python_executable }} -m pretix migrate"
|
||||
when: pretix_db.changed
|
||||
- name: Prepare static files
|
||||
ansible.builtin.command:
|
||||
cmd: "{{ python_executable }} -m pretix rebuild"
|
||||
- name: Move static files to Apache
|
||||
ansible.builtin.copy:
|
||||
remote_src: true
|
||||
src: /home/{{ ssh_user }}/.local/lib/{{ python_executable }}/site-packages/pretix/static.dist/
|
||||
dest: /var/www/virtual/{{ ssh_user }}/html/static
|
||||
owner: "{{ ssh_user }}"
|
||||
group: "{{ ssh_user}}"
|
||||
mode: "755"
|
||||
- name: Create service
|
||||
ansible.builtin.template:
|
||||
src: etc/services.d/pretix.ini.j2
|
||||
dest: /home/{{ ssh_user }}/etc/services.d/pretix.ini
|
||||
owner: "{{ ssh_user }}"
|
||||
group: "{{ ssh_user }}"
|
||||
mode: "644"
|
||||
- name: Start pretix
|
||||
community.general.supervisorctl:
|
||||
state: started
|
||||
name: pretix
|
||||
Reference in New Issue
Block a user