diff options
author | Jonas Gunz <himself@jonasgunz.de> | 2022-01-22 20:30:31 +0100 |
---|---|---|
committer | Jonas Gunz <himself@jonasgunz.de> | 2022-01-22 20:30:31 +0100 |
commit | 1c7ffdae0fa70e066dee294e11bc7569c429c321 (patch) | |
tree | 03eee786d902054515794294998c1b9574f5142e /roles | |
parent | d400f8820ad8e824ce454d9283e2bb8d6a28cdd3 (diff) | |
parent | ea10f2c231ba6fa4f77b20ff25993f87297b5952 (diff) | |
download | ansible_collection-1c7ffdae0fa70e066dee294e11bc7569c429c321.tar.gz |
Merge branch 'meisterfischy-calibre' into dev
Diffstat (limited to 'roles')
-rw-r--r-- | roles/calibre/README.md | 16 | ||||
-rw-r--r-- | roles/calibre/handlers/main.yml | 7 | ||||
-rw-r--r-- | roles/calibre/tasks/main.yml | 56 | ||||
-rw-r--r-- | roles/calibre/templates/cps.service.j2 | 14 |
4 files changed, 93 insertions, 0 deletions
diff --git a/roles/calibre/README.md b/roles/calibre/README.md new file mode 100644 index 0000000..1dbc079 --- /dev/null +++ b/roles/calibre/README.md @@ -0,0 +1,16 @@ +# calibre-web + +Installed calibre-web with optional features if specified. +Assumes the ssl cert and key are located at `/etc/ssl/certs/FQDN.(pem | key)`. + +```yaml +ssl: true + +features: + - ldap + - oauth + - metadata + - comics +``` + +[List of possible features](https://github.com/janeczku/calibre-web/wiki/Dependencies-in-Calibre-Web-Linux-Windows) diff --git a/roles/calibre/handlers/main.yml b/roles/calibre/handlers/main.yml new file mode 100644 index 0000000..735348d --- /dev/null +++ b/roles/calibre/handlers/main.yml @@ -0,0 +1,7 @@ +--- +- name: Restart cps + systemd: + name: cps.service + state: restarted + enabled: true + become: true diff --git a/roles/calibre/tasks/main.yml b/roles/calibre/tasks/main.yml new file mode 100644 index 0000000..d3b0d06 --- /dev/null +++ b/roles/calibre/tasks/main.yml @@ -0,0 +1,56 @@ +--- +- name: Install packages + apt: + name: + - calibre + - python3-pip + - libsasl2-dev + - libldap2-dev + - libssl-dev + become: true + +- name: Check library existence + stat: + path: /opt/calibre/library + register: library + +- name: Download first book + get_url: + url: https://github.com/progit/progit2/releases/download/2.1.336/progit.pdf + dest: /opt/calibre/progit.pdf + become: true + when: not library.stat.exists + +- name: Initialize calibre library + shell: + cmd: calibredb --library-path=library add progit.pdf + chdir: /opt/calibre + creates: library + become: true + +- name: Change ownership of calibre library + file: + path: /opt/calibre/library + recurse: true + owner: calibre + group: calibre + become: true + +- name: Remove first book file + file: + path: /opt/calibre/progit.pdf + state: absent + become: true + when: not library.stat.exists + +- name: Install calibre web with pip + pip: + name: calibreweb[{{ features | join(",") }}] + become: true + +- name: Create systemd unit + template: + dest: /etc/systemd/system/cps.service + src: cps.service.j2 + become: true + notify: Restart cps diff --git a/roles/calibre/templates/cps.service.j2 b/roles/calibre/templates/cps.service.j2 new file mode 100644 index 0000000..005297d --- /dev/null +++ b/roles/calibre/templates/cps.service.j2 @@ -0,0 +1,14 @@ +[Unit] +Description=Calibre-Web + +[Service] +Type=simple +User=calibre +{% if ssl == true %} +ExecStart=/usr/local/bin/cps -c '/etc/ssl/certs/{{ ansible_facts.fqdn }}.pem' -k '/etc/ssl/private/{{ ansible_facts.fqdn }}.key' +{% else %} +ExecStart=/usr/local/bin/cps +{% endif %} + +[Install] +WantedBy=multi-user.target |