1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-02-13 03:32:12 +00:00
iiab/roles/calibre-web/tasks/main.yml
Arky f8c50aa589 Ansible Systemd doesn't have graceful reload available.
According to Ansible developers, there is no feature to do graceful
restart either in ansible systemd or in other Ansible apache modules.
2018-08-27 16:41:43 +07:00

129 lines
4 KiB
YAML

- name: Create calibre-web folders to store data and configuration files.
file:
path: "{{ item }}"
owner: "{{ calibreweb_user }}"
group: "{{ apache_user }}"
mode: 0755
state: directory
with_items:
- "{{ calibreweb_home }}"
- "{{ calibreweb_path }}"
- "{{ calibreweb_config }}"
## TODO: Calibre-web future release might get into pypi https://github.com/janeczku/calibre-web/issues/456
- name: Download calibre-web github repository.
git:
repo: https://github.com/janeczku/calibre-web.git
dest: "{{ calibreweb_path }}"
update: yes
depth: 1
version: master
when: internet_available
## Ansible Pip Bug: Cannot use 'chdir' with 'env' https://github.com/ansible/ansible/issues/37912 (Patch landed)
#- name: Download calibre-web dependencies into vendor subdirectory.
# pip:
# requirements: "{{ calibreweb_path }}/requirements.txt"
# chdir: "{{ calibreweb_path }}"
# extra_args: '--target vendor'
# ignore_errors: True
##
# Implmenting this with Ansible command module for now.
- name: Download calibre-web dependencies into vendor subdirectory.
command: pip install --target vendor -r ./requirements.txt
args:
chdir: "{{ calibreweb_path }}"
ignore_errors: True
when: internet_available
- name: Create calibre-web systemd service unit and httpd2 configuration.
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode }}"
owner: "{{ calibreweb_user }}"
group: "{{ apache_user }}"
with_items:
- { src: 'calibre-web.service.j2', dest: '/etc/systemd/system/calibre-web.service', mode: '0644' }
- { src: 'calibre-web.conf.j2', dest: '/etc/apache2/sites-available/calibre-web.conf', mode: '0644' }
- name: Provision calibre-web default metadata.
copy:
src: "{{ item }}"
dest: "{{ calibreweb_home }}"
owner: "{{ calibreweb_user }}"
group: "{{ apache_user }}"
mode: 0644
backup: yes
with_items:
- roles/calibre-web/files/metadata.db
- roles/calibre-web/files/metadata_db_prefs_backup.json
when: calibreweb_provision
- name: Provision calibre-web with default administration settings.
copy:
src: roles/calibre-web/files/app.db
dest: "{{ calibreweb_config }}"
owner: "{{ calibreweb_user }}"
group: "{{ apache_user }}"
mode: 0644
backup: yes
when: calibreweb_provision
- name: Enable and reload calibre-web service.
systemd:
name: calibre-web
daemon_reload: yes
enabled: yes
state: restarted
when: calibreweb_enabled
- name: Enable calibre-web httpd2 site
command: a2ensite calibre-web.conf
when: calibreweb_enabled
- name: Restart Apache after enabling calibre-web httpd2 site.
command: apachectl -k graceful
when: calibreweb_enabled
- name: Disable calibre-web service.
systemd:
name: calibre-web
daemon_reload: yes
enabled: no
state: stopped
when: not calibreweb_enabled
- name: Disable calibre-web httpd2 site.
command: a2dissite calibre-web.conf
when: not calibreweb_enabled
- name: Restart Apache after disabling calibre-web httpd2 site.
command: apachectl -k graceful
when: not calibreweb_enabled
- name: Add 'calibre-web' to list of services at /etc/iiab/iiab.ini
ini_file:
dest: "{{ service_filelist }}"
section: calibre-web
option: "{{ item.option }}"
value: "{{ item.value }}"
with_items:
- option: name
value: calibre-web
- option: description
value: '"calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks."'
- option: calibreweb_url
value: "{{ calibreweb_url }}"
- option: calibreweb_path
value: "{{ calibreweb_path }}"
- option: calibreweb_home
value: "{{ calibreweb_home }}"
- option: calibreweb_port
value: "{{ calibreweb_port }}"
- option: calibreweb_database
value: "{{ calibreweb_database }}"
- option: calibreweb_enabled
value: "{{ calibreweb_enabled }}"
- option: calibreweb_provision
value: "{{ calibreweb_provision }}"