1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-02-13 19:52:06 +00:00
iiab/roles/kiwix/tasks/install.yml

99 lines
3.8 KiB
YAML

# 0. VERIFY CPU/OS ARCHITECTURE SUPPORTED
- name: Force Ansible to exit (FAIL) if kiwix-tools appears unavailable for your CPU/OS architecture ({{ ansible_machine }})
fail:
msg: "WARNING: kiwix-tools SOFTWARE APPEARS UNAVAILABLE FOR YOUR {{ ansible_machine }} CPU/OS ARCHITECTURE."
when: kiwix_arch == "unsupported"
# 1. PUT IN PLACE: /opt/iiab/downloads/kiwix-tools_linux-*.tar.gz, essential dirs, and test.zim if nec (library.xml is created later, by enable-or-disable.yml)
# 2022-10-04: get_url might be removed in future (unarchive below can handle
# everything!) Conversely: (1) unarchive doesn't support timeout (2) one day
# /opt/iiab/downloads might have practical value beyond hoarding (unlikely!)
- name: Download {{ kiwix_base_url }}{{ kiwix_tar_gz }} to /opt/iiab/downloads
get_url:
url: "{{ kiwix_base_url }}{{ kiwix_tar_gz }}" # e.g. https://download.kiwix.org/release/kiwix-tools/ + kiwix-tools_linux-x86_64.tar.gz
dest: "{{ downloads_dir }}" # /opt/iiab/downloads
timeout: "{{ download_timeout }}"
register: kiwix_dl # Kiwix URL redirects to a longer filename, including the actual kiwix-tools version (placed in kiwix_dl.dest with its path, for unarchive ~28 lines below)
- name: "Create dirs, including parent dirs: {{ kiwix_path }}/bin (executables), {{ iiab_zim_path }}/content (ZIM files), {{ iiab_zim_path }}/index (legacy indexes) (by default 0755)"
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ kiwix_path }}/bin" # /opt/iiab/kiwix
- "{{ iiab_zim_path }}/content" # /library/zims
- "{{ iiab_zim_path }}/index"
- name: Count *.zim files in {{ iiab_zim_path }}/content
find:
paths: "{{ iiab_zim_path }}/content"
patterns: '*.zim'
register: kiwix_zims
- name: If there were none, install {{ iiab_zim_path }}/content/test.zim
copy:
src: test.zim
dest: "{{ iiab_zim_path }}/content/test.zim"
#force: no
when: kiwix_zims.matched == 0
# 2. INSTALL KIWIX-TOOLS EXECUTABLES
- name: Unarchive {{ kiwix_dl.dest }} to {{ kiwix_path }}/bin -- use '--strip-components=1' to remove tarball's top-level dir during unpacking
unarchive:
src: "{{ kiwix_dl.dest }}" # See ~28 lines above, e.g. /opt/iiab/downloads/kiwix-tools_linux-x86_64-3.3.0-1.tar.gz
dest: "{{ kiwix_path }}/bin" # /opt/iiab/kiwix/bin
extra_opts: --strip-components=1
# 3. ENABLE MODS FOR APACHE PROXY IF DEBUNTU
# 2019-10-07: Moved to roles/httpd/tasks/main.yml
# 2019-09-29: Compare roles/kolibri/defaults/main.yml using just 1 (proxy_http)
#- name: Enable the 4 mods which permit Apache to proxy (debuntu)
# apache2_module:
# name: "{{ item }}"
# with_items:
# - proxy
# - proxy_html
# - proxy_http
# - rewrite
# when: is_debuntu
# 4. INSTALL iiab-make-kiwix-lib*, kiwix-serve.service, kiwix.conf for Apache
- name: 'Install from templates: kiwix-serve.service, iiab-make-kiwix-lib, iiab-make-kiwix-lib.py'
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode }}"
with_items:
- { src: 'kiwix-serve.service.j2', dest: '/etc/systemd/system/kiwix-serve.service', mode: '0644' }
- { src: 'iiab-make-kiwix-lib', dest: '/usr/bin/iiab-make-kiwix-lib', mode: '0755' }
- { src: 'iiab-make-kiwix-lib3.py', dest: '/usr/bin/iiab-make-kiwix-lib.py', mode: '0755' }
- name: daemon_reload, so systemd (re)reads newly installed kiwix-serve.service
systemd:
daemon_reload: yes
- name: Install Kiwix Android app
include_tasks: kiwix-apk.yml
when: kiwix_incl_apk
# 5. RECORD Kiwix AS INSTALLED
- name: "Set 'kiwix_installed: True'"
set_fact:
kiwix_installed: True
- name: "Add 'kiwix_installed: True' to {{ iiab_state_file }}"
lineinfile:
path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
regexp: '^kiwix_installed'
line: 'kiwix_installed: True'