Ansible roles
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

169 lines
4.5 KiB

---
- name: Install needed tools
yum:
name:
- git
- gcc
- openssl-devel
- libffi-devel
- openldap-devel
- libjpeg-turbo-devel
- libpng-devel
- libexif
- ghostscript
- gnupg1
- graphviz
- fuse-libs
- file-libs
- libreoffice
- poppler-utils
- sane-backends
- tesseract
- tesseract-langpack-fra
- python3-devel
- python3-pip
- python3-virtualenv
- python-setuptools
tags: mayan
- name: Install MySQL support
yum:
name:
- mysql-devel
- MySQL-python
when: mayan_db_engine == 'mysql'
tags: mayan
# WHen using upstream MariaDB repo, we have to install MariaDB-shared
- name: Install MariaDB shared libs
yum:
name:
- MariaDB-shared
when:
- mayan_db_engine == 'mysql'
- mysql_mariadb_version is defined and mysql_mariadb_version != 'default'
tags: mayan
- name: Install PostgreSQL support
yum:
name:
- postgresql-devel
- postgresql13
- python-psycopg2
when: mayan_db_engine == 'postgresql'
tags: mayan
- name: Wipe the venv on upgrades
file: path={{ mayan_root_dir }}/venv state=absent
when: mayan_install_mode=='upgrade'
tags: mayan
- name: Create the venv dir
file: path={{ mayan_root_dir }}/venv state=directory
tags: mayan
- name: Create the virtualenv
pip:
name:
- pip
- redis
- python-ldap
- django_auth_ldap
- "{{ (mayan_db_engine == 'mysql') | ternary('mysql','psycopg2') }}"
state: "{{ (mayan_install_mode == 'none') | ternary('present', 'latest') }}"
virtualenv: "{{ mayan_root_dir }}/venv"
virtualenv_command: /usr/bin/virtualenv-3
virtualenv_python: /usr/bin/python3
tags: mayan
- name: Install mayan-edms wrapper
template: src=mayan-edms.j2 dest=/usr/local/bin/mayan-edms mode=755
tags: mayan
- name: Install Mayan EDMS
pip:
name:
- mayan-edms=={{ mayan_version }}
virtualenv: "{{ mayan_root_dir }}/venv"
virtualenv_command: /usr/bin/virtualenv-3
virtualenv_python: /usr/bin/python3
tags: mayan
- when: mayan_db_engine == 'mysql'
block:
- import_tasks: ../includes/webapps_create_mysql_db.yml
vars:
- db_name: "{{ mayan_db_name }}"
- db_user: "{{ mayan_db_user }}"
- db_server: "{{ mayan_db_server }}"
- db_pass: "{{ mayan_db_pass }}"
tags: mayan
- when: mayan_db_engine == 'postgresql'
block:
- name: Create the PostgreSQL role
postgresql_user:
db: postgres
name: "{{ mayan_db_user }}"
password: "{{ mayan_db_pass }}"
login_host: "{{ mayan_db_server }}"
login_user: sqladmin
login_password: "{{ pg_admin_pass }}"
- name: Create the PostgreSQL database
postgresql_db:
name: "{{ mayan_db_name }}"
encoding: UTF-8
template: template0
owner: "{{ mayan_db_user }}"
login_host: "{{ mayan_db_server }}"
login_user: sqladmin
login_password: "{{ pg_admin_pass }}"
tags: mayan
- name: Initialize or upgrade database
command: >-
{{ mayan_root_dir }}/venv/bin/python
{{ mayan_root_dir }}/venv/bin/mayan-edms.py
{{ (mayan_install_mode == 'install') | ternary('initialsetup','performupgrade') }}
environment:
- MAYAN_MEDIA_ROOT: "{{ mayan_root_dir }}/data"
- MAYAN_DATABASE_ENGINE: django.db.backends.{{ (mayan_db_engine == 'mysql') | ternary('mysql','postgresql') }}
- MAYAN_DATABASE_NAME: "{{ mayan_db_name }}"
- MAYAN_DATABASE_PASSWORD: "{{ mayan_db_pass }}"
- MAYAN_DATABASE_USER: "{{ mayan_db_user }}"
- MAYAN_DATABASE_HOST: "{{ mayan_db_server }}"
when: mayan_install_mode != 'none'
tags: mayan
- name: Deploy systemd units
template: src={{ item }}.j2 dest=/etc/systemd/system/{{ item }}
loop:
- mayan-edms-web.service
- mayan-edms-worker-fast.service
- mayan-edms-worker-medium.service
- mayan-edms-worker-slow.service
- mayan-edms-beat.service
register: mayan_systemd_units
notify: restart mayan-edms
tags: mayan
- name: Reload systemd
systemd: daemon_reload=True
when: mayan_systemd_units.results | selectattr('changed', 'equalto', True) | list | length > 0
tags: mayan
- name: Install pre/post backup scripts
template: src={{ item }}_backup.sh.j2 dest=/etc/backup/{{ item }}.d/mayan_edms.sh mode=750
loop:
- pre
- post
tags: mayan
- name: Deploy auth configuration
template: src=auth.py.j2 dest={{ mayan_root_dir }}/data/mayan_settings/auth.py group={{ mayan_user }} mode=640
when: mayan_ldap_auth
notify: restart mayan-edms
tags: mayan