forked from AFPy/infra
270 lines
6.4 KiB
YAML
270 lines
6.4 KiB
YAML
---
|
|
- name: Create a pretalx user
|
|
user:
|
|
name: "{{ pretalx_system_user }}"
|
|
state: present
|
|
system: true
|
|
tags:
|
|
- pretalx
|
|
|
|
- name: Create required directories
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: "{{ pretalx_system_user }}"
|
|
group: "{{ pretalx_webserver_group }}"
|
|
mode: "0750"
|
|
recurse: true
|
|
with_items:
|
|
- "{{ pretalx_staticfiles_directory }}"
|
|
- "{{ pretalx_data_dir }}"
|
|
- "{{ pretalx_media_dir }}"
|
|
- "{{ pretalx_virtualenv }}"
|
|
tags:
|
|
- pretalx
|
|
|
|
- name: Install redis client
|
|
pip:
|
|
name: django_redis
|
|
state: latest # noqa package-latest
|
|
virtualenv: "{{ pretalx_virtualenv }}"
|
|
become: true
|
|
become_user: "{{ pretalx_system_user }}"
|
|
when: pretalx_redis or pretalx_celery
|
|
tags:
|
|
- pretalx
|
|
- pretalx-install
|
|
|
|
- name: Install gunicorn
|
|
pip:
|
|
name: gunicorn
|
|
state: latest # noqa package-latest
|
|
virtualenv: "{{ pretalx_virtualenv }}"
|
|
become: true
|
|
become_user: "{{ pretalx_system_user }}"
|
|
tags:
|
|
- pretalx
|
|
- pretalx-install
|
|
|
|
- name: Configure pretalx
|
|
template:
|
|
src: pretalx.cfg.j2
|
|
dest: "{{ pretalx_system_home }}/.pretalx.cfg"
|
|
mode: "0600"
|
|
notify:
|
|
- Restart pretalx service
|
|
- Restart worker service
|
|
- Run pretalx migrations
|
|
- Rebuild pretalx files
|
|
- Compile pretalx styles
|
|
become: true
|
|
become_user: "{{ pretalx_system_user }}"
|
|
tags:
|
|
- pretalx
|
|
- pretalxupdate
|
|
|
|
- name: Set pretalx_extra to "[postgres]" if using postgresql database
|
|
set_fact:
|
|
pretalx_extra: "[postgres]"
|
|
when: pretalx_database_backend == 'postgresql'
|
|
tags:
|
|
- pretalx
|
|
- pretalxupdate
|
|
|
|
- name: Set pretalx_extra to "[mysql]" if using mysql database
|
|
set_fact:
|
|
pretalx_extra: "[mysql]"
|
|
when: pretalx_database_backend == 'mysql'
|
|
tags:
|
|
- pretalx
|
|
- pretalxupdate
|
|
|
|
- name: Set pretalx_extra to "" if using other database
|
|
set_fact:
|
|
pretalx_extra: ""
|
|
when: pretalx_extra is not defined
|
|
tags:
|
|
- pretalx
|
|
- pretalxupdate
|
|
|
|
- name: Install pretalx (latest)
|
|
pip:
|
|
name: "pretalx{{ pretalx_extra }}"
|
|
state: latest # noqa package-latest
|
|
virtualenv: "{{ pretalx_virtualenv }}"
|
|
notify:
|
|
- Restart pretalx service
|
|
- Restart worker service
|
|
- Run pretalx migrations
|
|
- Run pretalx static collection
|
|
- Copy static manifest
|
|
- Rebuild pretalx files
|
|
- Compile pretalx styles
|
|
- Initialize pretalx
|
|
when: (pretalx_version == 'latest') and not (pretalx_git_version)
|
|
become: true
|
|
become_user: "{{ pretalx_system_user }}"
|
|
tags:
|
|
- pretalx
|
|
- pretalxupdate
|
|
|
|
- name: Install pretalx (versioned)
|
|
pip:
|
|
name: "pretalx{{ pretalx_extra }}"
|
|
version: "{{ pretalx_version }}" # noqa package-lastest
|
|
virtualenv: "{{ pretalx_virtualenv }}"
|
|
notify:
|
|
- Restart pretalx service
|
|
- Restart worker service
|
|
- Run pretalx migrations
|
|
- Run pretalx static collection
|
|
- Copy static manifest
|
|
- Rebuild pretalx files
|
|
- Compile pretalx styles
|
|
- Initialize pretalx
|
|
when: (pretalx_version != 'latest') and not pretalx_git_version
|
|
become: true
|
|
become_user: "{{ pretalx_system_user }}"
|
|
tags:
|
|
- pretalx
|
|
- pretalxupdate
|
|
|
|
- name: Install pretalx (git)
|
|
pip:
|
|
name: "git+{{ pretalx_git_url }}@{{ pretalx_git_version }}#egg=pretalx{{ pretalx_extra }}"
|
|
state: forcereinstall
|
|
virtualenv: "{{ pretalx_virtualenv }}"
|
|
notify:
|
|
- Restart pretalx service
|
|
- Restart worker service
|
|
- Run pretalx migrations
|
|
- Run pretalx static collection
|
|
- Copy static manifest
|
|
- Rebuild pretalx files
|
|
- Compile pretalx styles
|
|
- Initialize pretalx
|
|
when: pretalx_git_version | length > 0
|
|
become: true
|
|
become_user: "{{ pretalx_system_user }}"
|
|
changed_when: true
|
|
tags:
|
|
- pretalx
|
|
- pretalxupdate
|
|
|
|
- name: Make sure plugin directory exists
|
|
file:
|
|
path: "{{ pretalx_system_home }}/plugins"
|
|
state: directory
|
|
owner: "{{ pretalx_system_user }}"
|
|
recurse: true
|
|
when: pretalx_plugins
|
|
tags:
|
|
- pretalx
|
|
|
|
- name: Install pretalx plugins
|
|
git:
|
|
repo: "{{ item.repository }}"
|
|
dest: "{{ pretalx_system_home }}/plugins/{{ item.name }}"
|
|
version: "{{ item.version if item.version is defined else 'main' }}"
|
|
key_file: "{{ pretalx_system_home }}/.ssh/id_rsa"
|
|
accept_hostkey: true
|
|
become: true
|
|
become_user: "{{ pretalx_system_user }}"
|
|
with_items: "{{ pretalx_plugins }}"
|
|
when: pretalx_plugins
|
|
notify:
|
|
- Restart pretalx service
|
|
- Restart worker service
|
|
- Run pretalx migrations
|
|
- Run pretalx static collection
|
|
- Copy static manifest
|
|
- Rebuild pretalx files
|
|
- Compile pretalx styles
|
|
- Install pretalx plugins
|
|
tags:
|
|
- pretalx
|
|
- pretalxupdate
|
|
|
|
- name: Install systemd socket
|
|
template:
|
|
src: pretalx.socket.j2
|
|
dest: /etc/systemd/system/pretalx@{{ pretalx_instance_identifier }}.socket
|
|
mode: "0644"
|
|
notify:
|
|
- Reload systemd services
|
|
- Restart pretalx socket
|
|
tags:
|
|
- pretalx
|
|
|
|
- name: Install systemd service
|
|
template:
|
|
src: pretalx.service.j2
|
|
dest: /etc/systemd/system/pretalx@{{ pretalx_instance_identifier }}.service
|
|
mode: "0644"
|
|
notify:
|
|
- Reload systemd services
|
|
- Restart pretalx service
|
|
- Restart worker service
|
|
tags:
|
|
- pretalx
|
|
|
|
- name: Install worker service
|
|
template:
|
|
src: pretalx-worker.service.j2
|
|
dest: /etc/systemd/system/pretalx-worker@{{ pretalx_instance_identifier }}.service
|
|
mode: "0644"
|
|
notify:
|
|
- Reload systemd services
|
|
- Restart worker service
|
|
when: pretalx_celery
|
|
tags:
|
|
- pretalx
|
|
|
|
- name: Start pretalx socket
|
|
service:
|
|
name: pretalx@{{ pretalx_instance_identifier }}.socket
|
|
state: started
|
|
enabled: true
|
|
tags:
|
|
- pretalx
|
|
|
|
- name: Start systemd service
|
|
service:
|
|
name: pretalx@{{ pretalx_instance_identifier }}
|
|
state: started
|
|
enabled: true
|
|
tags:
|
|
- pretalx
|
|
|
|
- name: Start worker service
|
|
service:
|
|
name: pretalx-worker@{{ pretalx_instance_identifier }}
|
|
state: started
|
|
enabled: true
|
|
when: pretalx_celery
|
|
tags:
|
|
- pretalx
|
|
|
|
- name: Install nginx config
|
|
template:
|
|
src: nginx.conf
|
|
dest: "{{ pretalx_nginx_path }}/pretalx_{{ pretalx_instance_identifier }}.conf"
|
|
mode: "0644"
|
|
when: pretalx_nginx
|
|
notify:
|
|
- Reload nginx
|
|
tags:
|
|
- nginx
|
|
- pretalx
|
|
- pretalxnginx
|
|
|
|
- name: Install runperiodic cronjob
|
|
cron:
|
|
minute: "40"
|
|
name: Run pretalx{{ pretalx_instance_identifier }} periodic task
|
|
user: "{{ pretalx_system_user }}"
|
|
job: "{{ pretalx_python }} -m pretalx runperiodic"
|
|
when: pretalx_cron
|
|
tags:
|
|
- pretalx
|