1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-02-13 19:52:06 +00:00
iiab/roles/0-DEPRECATED-ROLES/pathagar/tasks/main.yml
2020-01-30 04:00:00 -05:00

228 lines
5.8 KiB
YAML

- name: "Set PostgreSQL vars 'postgresql_install: True' and 'postgresql_enabled: True'"
set_fact:
postgresql_install: True
postgresql_enabled: True
- name: POSTGRESQL - run the 'postgresql' role
include_role:
name: postgresql
- name: Remove package Pathagar (in case rpm?)
package:
name: pathagar
state: absent
- name: "Install Pathagar prerequisites: python-virtualenv, python-pip, python-psycopg2"
package:
name: "{{ item }}"
state: present
with_items:
- python-virtualenv
- python-pip
- python-psycopg2
- name: "Install Pathagar prerequisites: libapache2-mod-wsgi, libxml2-dev, libxslt-dev (debuntu)"
package:
name: "{{ item }}"
state: present
with_items:
- libapache2-mod-wsgi
- libxml2-dev
- libxslt-dev
when: is_debuntu | bool
- name: "Install Pathagar prerequisites: mod_wsgi, libxml2-devel, libxslt-devel (not debuntu)"
package:
name: "{{ item }}"
state: present
with_items:
- mod_wsgi
- libxml2-devel
- libxslt-devel
when: not is_debuntu
- name: "Create destination folder: {{ pathagar_src }}"
file:
path: "{{ pathagar_src }}"
state: directory
# owner: root
# group: root
# mode: '0755'
- name: "Create books destination folder: {{ pathagar_media }}"
file:
path: "{{ pathagar_media }}"
state: directory
owner: "{{ apache_user }}"
group: "{{ apache_user }}"
mode: '0755'
- name: Determine if Pathagar has already been downloaded from git
stat:
path: "{{ pathagar_src }}/settings.py"
register: pathagar
- name: Clone Pathagar repo
git:
repo: https://github.com/PathagarBooks/pathagar.git
dest: "{{ pathagar_src }}"
update: yes
version: master
when: internet_available and pathagar.stat.exists is defined and not pathagar.stat.exists
- name: Install Pathagar requirements in a virtualenv
pip:
name: "{{ item }}"
with_items:
- Django==1.4.5
- django-tagging==0.3.1
- django-sendfile==0.3.6
- lxml==3.4.4
when: internet_available | bool
- name: Install Pathagar requirements in a virtualenv
pip:
name: "{{ item }}"
extra_args: "--use-wheel"
virtualenv: "{{ pathagar_venv }}"
virtualenv_site_packages: yes
with_items:
- django-taggit==0.14
- name: Create Pathagar postgresql user
postgresql_user:
name: "{{ pathagar_db_user }}"
password: "{{ pathagar_db_password }}"
role_attr_flags: NOSUPERUSER,NOCREATEROLE,NOCREATEDB
state: present
become: yes
become_user: postgres
- name: Start 'postgresql-iiab' systemd service
systemd:
name: postgresql-iiab
state: started
enabled: yes
when: pathagar_enabled
- name: Enable Pathagar postgresql user access by md5 method
lineinfile:
backup: yes
dest: /library/pgsql-iiab/pg_hba.conf
regexp: '^host\s+pathagar'
line: "host pathagar pathagar samehost md5"
state: present
insertafter: "^# IPv4 local connections"
owner: postgres
group: postgres
register: enable_pathagar_md5_access
- name: Reload 'postgresql-iiab' systemd service
systemd:
name: postgresql-iiab
state: reloaded
when: enable_pathagar_md5_access.changed
- name: Create Pathagar postgresql database
postgresql_db:
name: "{{ pathagar_db_name }}"
encoding: utf8
owner: "{{ pathagar_db_user }}"
state: present
template: template0
become: yes
become_user: postgres
- name: Install IIAB custom settings for Pathagar
template:
src: prod_settings.py
dest: "{{ pathagar_src }}/prod_settings.py"
# owner: root
# group: root
# mode: '0644'
- name: Create Pathagar initial db
django_manage:
app_path: "{{ pathagar_src }}"
command: syncdb
virtualenv: "{{ pathagar_venv }}"
settings: pathagar.prod_settings
- name: Upload Pathagar admin user
template:
src: auth.User.json
dest: "{{ pathagar_dir }}/auth.User.json"
owner: root
group: root
mode: '0600'
- name: Load Pathagar admin user
django_manage:
app_path: "{{ pathagar_src }}"
command: loaddata
virtualenv: "{{ pathagar_venv }}"
settings: pathagar.prod_settings
fixtures: "{{ pathagar_dir }}/auth.User.json"
- name: Collect Pathagar static files
django_manage:
app_path: "{{ pathagar_src }}"
command: collectstatic
virtualenv: "{{ pathagar_venv }}"
settings: pathagar.prod_settings
- name: Install wsgi.py for Pathagar
template:
src: wsgi.py
dest: "{{ pathagar_dir }}/wsgi.py"
# owner: root
# group: root
# mode: '0644'
- name: Install /etc/{{ apache_conf_dir }}/pathagar.conf from template
template:
src: pathagar.conf
backup: yes
dest: "/etc/{{ apache_conf_dir }}/pathagar.conf"
mode: 0644
- name: Enable Pathagar via Apache (debuntu)
file:
path: /etc/apache2/sites-enabled/pathagar.conf
src: /etc/apache2/sites-available/pathagar.conf
state: link
when: pathagar_enabled and is_debuntu
- name: Disable Pathagar via Apache (debuntu)
file:
path: /etc/apache2/sites-enabled/pathagar.conf
state: absent
when: not pathagar_enabled and is_debuntu
- name: Reload '{{ apache_service }}' systemd service
systemd:
name: "{{ apache_service }}"
state: reloaded
# if the only service using the backend db disable if not running
- name: Disable 'postgresql-iiab' systemd service, if not moodle_enabled and not pathagar_enabled
systemd:
name: postgresql-iiab
state: stopped
enabled: no
when: not moodle_enabled and not pathagar_enabled
- name: Add 'pathagar' variable values to {{ iiab_ini_file }}
ini_file:
path: "{{ iiab_ini_file }}"
section: pathagar
option: "{{ item.option }}"
value: "{{ item.value | string }}"
with_items:
- option: name
value: pathagar
- option: description
value: '"Pathagar is a simple bookserver serving OPDS feeds"'
- option: path
value: /books