1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-02-13 11:42:08 +00:00
iiab/roles/kiwix/tasks/kiwix_install.yml

176 lines
5.5 KiB
YAML
Raw Normal View History

2017-11-27 03:33:05 +00:00
# 1. CREATE/VERIFY CRITICAL DIRECTORIES & FILES ARE IN PLACE
2018-10-31 05:42:27 +00:00
- name: Create directory {{ iiab_zim_path }} and subdirs {content, index} for Kiwix ZIM files
file:
path: "{{ item }}"
owner: root
group: root
mode: 0755
state: directory
2017-05-27 18:09:50 +00:00
with_items:
- "{{ iiab_zim_path }}"
2017-11-27 03:33:05 +00:00
- "{{ iiab_zim_path }}/content"
- "{{ iiab_zim_path }}/index"
2017-05-27 18:09:50 +00:00
2018-10-31 05:42:27 +00:00
- name: Check for {{ kiwix_library_xml }} # /library/zims/library.xml
stat:
path: "{{ kiwix_library_xml }}"
register: kiwix_xml
2018-10-31 05:42:27 +00:00
- name: Install a stub /library/zims/library.xml if one doesn't exist
template:
src: "{{ item }}"
dest: "{{ kiwix_library_xml }}"
mode: 0644
owner: root
group: root
force: no
2017-05-27 18:09:50 +00:00
with_items:
- library.xml
when: not kiwix_xml.stat.exists
- name: Check for /opt/iiab/kiwix/bin/kiwix-serve binary
stat:
path: "{{ kiwix_path }}/bin/kiwix-serve"
register: kiwix_bin
2018-10-31 05:42:27 +00:00
- name: Set fact kiwix_force_install if kiwix-serve not found
set_fact:
kiwix_force_install: True
2017-11-27 03:33:05 +00:00
when: not kiwix_bin.stat.exists
2017-05-27 18:09:50 +00:00
2018-10-31 05:42:27 +00:00
- name: Install {{ iiab_zim_path }}/content/test.zim if kiwix_force_install
copy:
src: test.zim
2017-11-27 03:33:05 +00:00
dest: "{{ iiab_zim_path }}/content/test.zim"
mode: 0644
owner: root
group: root
force: no
when: kiwix_force_install | bool
2017-05-27 18:09:50 +00:00
2018-10-31 05:42:27 +00:00
- name: Create {{ kiwix_path }}/bin directory # /opt/iiab/kiwix/bin
2017-11-26 16:58:58 +00:00
file:
path: "{{ kiwix_path }}/bin"
2017-11-26 16:58:58 +00:00
owner: root
group: root
mode: 0755
state: directory
2017-11-27 03:33:05 +00:00
# 2. INSTALL KIWIX-TOOLS EXECUTABLES IF kiwix_force_install
2017-11-26 16:58:58 +00:00
2018-10-31 05:42:27 +00:00
- name: Unarchive {{ kiwix_src_file }} to /tmp # e.g. kiwix-tools_linux-armhf-0.6.1-1.tar.gz
2017-11-27 03:33:05 +00:00
unarchive:
src: "{{ downloads_dir }}/{{ kiwix_src_file }}"
dest: /tmp
owner: root
group: root
when: kiwix_force_install | bool
2018-07-02 12:26:26 +00:00
- name: Move /tmp/{{ kiwix_src_dir }}/* to permanent location /opt/iiab/kiwix/bin (armhf & linux64 & i686)
shell: "mv /tmp/{{ kiwix_src_dir }}/* {{ kiwix_path }}/bin/"
when: kiwix_force_install | bool
2017-11-27 03:33:05 +00:00
# 3. ENABLE MODS FOR APACHE PROXY IF DEBUNTU
2017-11-26 16:58:58 +00:00
2018-10-31 05:42:27 +00:00
- 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 | bool
2018-09-15 04:27:44 +00:00
# 4. CREATE/ENABLE/RESTART (OR DISABLE) KIWIX SERVICE & ITS CRON JOB
2017-05-27 18:09:50 +00:00
2018-10-31 05:42:27 +00:00
- name: 'Install from templates: kiwix-serve.service, iiab-make-kiwix-lib, iiab-make-kiwix-lib.py, kiwix.conf'
template:
backup: no
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: root
group: root
mode: "{{ item.mode }}"
2017-05-27 18:09:50 +00:00
with_items:
- { src: 'kiwix-serve.service.j2', dest: '/etc/systemd/system/kiwix-serve.service', mode: '0644'}
# - { src: 'kiwix-serve-init.j2', dest: '/usr/libexec/kiwix-serve-init', mode: '0755'}
- { src: 'iiab-make-kiwix-lib', dest: '/usr/bin/iiab-make-kiwix-lib', mode: '0755'}
- { src: 'iiab-make-kiwix-lib.py', dest: '/usr/bin/iiab-make-kiwix-lib.py', mode: '0755'}
2017-12-02 16:49:25 +00:00
# - { src: 'iiab-make-apache-config.py', dest: '/usr/bin/iiab-make-apache-config.py', mode: '0755'}
- { src: 'kiwix.conf.j2', dest: '/etc/{{ apache_config_dir }}/kiwix.conf', mode: '0644'}
2018-10-31 05:42:27 +00:00
- name: Create softlink kiwix.conf from sites-enabled to sites-available - for Kiwix Proxy in Apache - is disabled by turning off service kiwix-serve (debuntu)
2018-09-15 04:27:44 +00:00
file:
src: /etc/apache2/sites-available/kiwix.conf
path: /etc/apache2/sites-enabled/kiwix.conf
state: link
when: is_debuntu | bool
2017-05-27 18:09:50 +00:00
2018-10-31 05:42:27 +00:00
- name: Enable & Restart 'kiwix-serve' service
systemd:
daemon_reload: yes
name: kiwix-serve
enabled: yes
state: restarted
when: kiwix_enabled | bool
2017-11-27 00:54:35 +00:00
- name: Disable 'kiwix-serve' service
systemd:
2017-11-27 00:54:35 +00:00
name: kiwix-serve
enabled: no
state: stopped
when: not kiwix_enabled
2017-11-27 03:33:05 +00:00
# IN THEORY: BOTH CRON ENTRIES BELOW *SHOULD* BE DELETED "when: not kiwix_enabled"
# In the past kiwix-serve did not stay running, so we'd been doing this hourly.
# @mgautierfr & others suggest kiwix-serve might be auto-restarted w/o cron in
# future, whenever service fails, if this really catches all cases??
# https://github.com/iiab/iiab/issues/484#issuecomment-342151726
- name: Make a crontab entry to restart kiwix-serve at 4AM (debuntu)
lineinfile:
# mn hr dy mo day-of-week[Sunday=0] username command-to-be-executed
line: "0 4 * * * root /bin/systemctl restart kiwix-serve.service"
dest: /etc/crontab
when: kiwix_enabled and is_debuntu
- name: Make a crontab entry to restart kiwix-serve at 4AM (redhat)
# * * * * * user-name command to be executed
lineinfile:
# mn hr dy mo day-of-week[Sunday=0] username command-to-be-executed
line: "0 4 * * * root /usr/bin/systemctl restart kiwix-serve.service"
dest: /etc/crontab
when: kiwix_enabled and is_redhat
2018-09-15 04:27:44 +00:00
- name: Restart Apache, so it picks up kiwix.conf
service:
name: "{{ apache_service }}"
state: restarted
2017-12-02 21:53:36 +00:00
2017-11-27 03:33:05 +00:00
# 5. FINALIZE
2018-10-31 05:42:27 +00:00
- name: Add 'kiwix' variable values to {{ iiab_ini_file }}
ini_file:
2018-10-31 05:42:27 +00:00
path: "{{ iiab_ini_file }}"
2017-12-08 11:26:40 +00:00
section: kiwix
option: "{{ item.option }}"
value: "{{ item.value }}"
2017-05-27 18:09:50 +00:00
with_items:
- option: name
2017-12-08 11:26:40 +00:00
value: Kiwix
- option: description
value: '"Part of https://github.com/kiwix/kiwix-tools/ - kiwix-serve is the most used web server for ZIM files."'
2017-11-27 18:09:32 +00:00
- option: kiwix_url
value: "{{ kiwix_url }}"
- option: kiwix_path
value: "{{ kiwix_path }}"
- option: kiwix_port
value: "{{ kiwix_port }}"
- option: iiab_zim_path
value: "{{ iiab_zim_path }}"
- option: kiwix_library_xml
value: "{{ kiwix_library_xml }}"
0.3 patch1 (#1377) * expand zim_versions_idx to include menuItem name, mediaCount, articleCount, size * create a stub menuItem if none exists * remember to change consumer of zim_version_idx in iiab-admin * comment out some debugging prints * do not change the name of a variable in iiab.ini * consistent variable names for *_enabled * start work on menus for enabled iiab roles * changes to display cups in home menu * remove reference to admin console which may not be installed * print error message * dict.get errors * handle undefined menuItem" * handle undefined menuItem again * some work on logos * break out the zim_versions_idx routines for use by update_menus in admin-console * remove old menuDef creation code * new variable names for zim_versions_idx * missing the tags data in zim_versions_idx * un-break-apart iiab-make-kiwix-lib.py * return an empty string * make size human_readable * getting console and iiab to work together on menus * add the new zim_date field to zim_versions_idx * get the latest into repo * found lost code iiab-make-kiwix-lib.py * Create Lokole admin user during setup * Add requested content to lokole readme Per iiab/iiab#1293 * Update default password * Add Lokole-IIAB user manual * Update default_vars.yml * Update local_vars_min.yml * Update local_vars_min.yml * Update local_vars_medium.yml * Update local_vars_min.yml * Update default_vars.yml * Update local_vars_big.yml * Update local_vars_medium.yml * Update default_vars.yml * Update default_vars.yml * Update local_vars_min.yml * Update local_vars_medium.yml * Update local_vars_big.yml * Update default_vars.yml * Update default_vars.yml * Update local_vars_big.yml * Update local_vars_medium.yml * Update local_vars_min.yml * Update default_vars.yml * Update local_vars_big.yml * Update local_vars_medium.yml * Update local_vars_min.yml * Change admin username to uppercase * Revert "Lokole: change admin to Admin per IIAB app norms" * Update main.yml * Update README.rst * Update capture-wsgi.py * Update main.yml * Update main.yml * Update default_vars.yml * Update local_vars_big.yml * Update local_vars_medium.yml * Update local_vars_min.yml * Update main.yml * Update main.yml * Update main.yml * Update main.yml * Update default_vars.yml * Update local_vars_big.yml * Update local_vars_medium.yml * Update local_vars_min.yml * Address TODOs in Lokole documentation See https://github.com/ascoderu/opwen-webapp/issues/81 * Update main.yml * Update local_vars_big.yml * Update local_vars_medium.yml * Update local_vars_big.yml * Update local_vars_min.yml * Update default_vars.yml * expand zim_versions_idx to include menuItem name, mediaCount, articleCount, size * create a stub menuItem if none exists * remember to change consumer of zim_version_idx in iiab-admin * comment out some debugging prints * do not change the name of a variable in iiab.ini * consistent variable names for *_enabled * start work on menus for enabled iiab roles * changes to display cups in home menu * remove reference to admin console which may not be installed * print error message * dict.get errors * handle undefined menuItem" * handle undefined menuItem again * some work on logos * break out the zim_versions_idx routines for use by update_menus in admin-console * remove old menuDef creation code * new variable names for zim_versions_idx * missing the tags data in zim_versions_idx * un-break-apart iiab-make-kiwix-lib.py * return an empty string * make size human_readable * getting console and iiab to work together on menus * add the new zim_date field to zim_versions_idx * get the latest into repo * found lost code iiab-make-kiwix-lib.py
2019-01-10 22:26:47 +00:00
- option: kiwix_enabled
2017-11-27 03:57:03 +00:00
value: "{{ kiwix_enabled }}"