1
0
Fork 0
mirror of https://github.com/roles-ansible/ansible_collection_pretix.git synced 2024-10-28 22:01:03 +01:00

pretix: setup venv and more

This commit is contained in:
L3D 2024-10-08 01:51:38 +02:00
parent b7fec1561d
commit 939bc9f94b
Signed by: l3d
GPG key ID: CD08445BFF4313D1
10 changed files with 107 additions and 27 deletions

View file

@ -1,6 +1,7 @@
---
postgres__user: 'pretix'
postgres__database: 'pretix'
postgres__password: ''
# Optional perform simple Versionscheck
packages__submodules_versioncheck: false

View file

@ -5,6 +5,8 @@
become_method: community.general.sudosu
community.postgresql.postgresql_user:
name: "{{ postgres__user }}"
password: "{{ postgres__password }}"
encrypted: true
- name: Create pretix database
become: true
@ -26,3 +28,5 @@
community.postgresql.postgresql_user:
name: "{{ postgres__user }}"
db: "{{ postgres__database }}"
password: "{{ postgres__password }}"
encrypted: true

View file

@ -5,6 +5,11 @@ Ansible role ``l3d.pretix.pretix`` to install and configure [pretix](https://git
This role is part of the l3d.pretix Collection and work in progress!
Requirements
--------------
+ postgres server with user and database
+ redis server
License
---------
[MIT Licence](../../LICENSE)

View file

@ -2,6 +2,19 @@
pretix__user: 'pretix'
pretix__group: "{{ pretix__user }}"
pretix__home: '/var/lib/pretix'
pretix__data: '/var/pretix'
# pretix condifuration
pretix__name: 'My Pretix'
pretix__address: "https://{{ inventory_hostname }}"
pretix__currency: 'EUR'
pretix__datadir: "{{ pretix__data }}/data"
pretix__db_backend: 'postgresql'
pretix__db_name: 'pretix'
pretix__db_user: 'pretix'
pretix__db_password: ''
pretix__db_host: 'localhost'
# Optional perform simple Versionscheck
packages__submodules_versioncheck: false

View file

@ -1,3 +1,23 @@
---
- name: Create directory for pretiy config
- name: Create directory for pretix data
become: true
ansible.builtin.file:
path: "{{ item }}"
state: 'directory'
mode: '0751'
owner: "{{ pretix__user }}"
group: "{{ pretix__group }}"
with_items:
- '/etc/pretix'
- "{{ pretix__data }}"
- "{{ pretix__data }}/data"
- "{{ pretix__data }}/data/media"
- name: Create pretix config
become: true
ansible.builtin.template:
src: 'templates/pretix.cfg.j2'
dest: '/etc/pretix/pretix.cfg'
mode: '0600'
owner: "{{ pretix__user }}"
group: "{{ pretix__group }}"

View file

@ -0,0 +1,26 @@
---
- name: Prepare Python3 venv
become: true
become_user: "{{ pretix__user }}"
become_method: community.general.sudosu
ansible.builtin.pip:
name: "{{ item }}"
virtualenv: "{{ pretix__data }}/venv"
with_items: "{{ pretix__pip_packages }}"
- name: Migrate pretix
become: true
become_user: "{{ pretix__user }}"
become_method: community.general.sudosu
ansible.builtin.command:
cmd: "{{ pretix__data }}/venv/bin/python3 -m pretix migrate"
chdir: "{{ pretix__data }}"
- name: Rebuild pretix
become: true
become_user: "{{ pretix__user }}"
become_method: community.general.sudosu
ansible.builtin.command:
cmd: "{{ pretix__data }}/venv/bin/python3 -m pretix rebuild"
chdir: "{{ pretix__data }}"

View file

@ -15,3 +15,7 @@
- name: Create pretix Configuration
ansible.builtin.include_tasks:
file: 'configure.yml'
- name: Install pretix
ansible.builtin.include_tasks:
file: 'install.yml'

View file

@ -14,3 +14,4 @@
password: '!'
create_home: true
system: true
shell: '/bin/bash'

View file

@ -1,26 +1,26 @@
{{ ansible_managed | ansible.builtin.comment(decoration=';') }}
[pretix]
instance_name=My pretix installation
url=https://pretix.mydomain.com
currency=EUR
datadir=/var/pretix/data
instance_name={{ pretix__name }}
url={{ pretix__address }}
currency={{ pretix__currency }}
datadir={{ pretix__datadir }}
trust_x_forwarded_for=on
trust_x_forwarded_proto=on
[database]
backend=postgresql
name=pretix
user=pretix
backend={{ pretix__db_backend }}
name={{ pretix__db_name }}
user={{ pretix__db_user }}
; For PostgreSQL on the same host, we don't need a password because we can use
; peer authentication if our PostgreSQL user matches our unix user.
password=
password={{ pretix__db_password }}
; For local postgres authentication, you can leave it empty
host=
host={{ pretix__db_host }}
[mail]
; See config file documentation for more options
from=tickets@yourdomain.com
from=tickets@example.org
host=127.0.0.1
[redis]

View file

@ -1,19 +1,25 @@
---
pretix__packages:
- git
- build-essential
- python3-dev
- python3-venv
- python3
- python3-pip
- libxml2-dev
- libxslt1-dev
- libffi-dev
- zlib1g-dev
- libssl-dev
- gettext
- libpq-dev
- libjpeg-dev
- libopenjp2-7-dev
packages__playbook_version_number: 3
- 'git'
- 'build-essential'
- 'python3-dev'
- 'python3-venv'
- 'python3'
- 'python3-pip'
- 'libxml2-dev'
- 'libxslt1-dev'
- 'libffi-dev'
- 'zlib1g-dev'
- 'libssl-dev'
- 'gettext'
- 'libpq-dev'
- 'libjpeg-dev'
- 'libopenjp2-7-dev'
- 'python3-virtualenv'
pretix__pip_packages:
- 'pretix'
- 'gunicorn'
packages__playbook_version_number: 4
packages__playbook_version_path: 'l3d.pretix.pretix.version'