# 0. SET CPU ARCHITECTURE - name: "Initialize 'kiwix_src_dir: False' just in case CPU architecture is not supported" set_fact: kiwix_src_dir: False - name: "Set fact 'kiwix_src_dir: {{ kiwix_version_armhf }}' (armv6l or armv71 or aarch64)" set_fact: kiwix_src_dir: "{{ kiwix_version_armhf }}" when: ansible_machine == "armv6l" or ansible_machine == "armv7l" or ansible_machine == "aarch64" - name: "Set fact 'kiwix_src_dir: {{ kiwix_version_linux64 }}' (x86_64)" set_fact: kiwix_src_dir: "{{ kiwix_version_linux64 }}" when: ansible_machine == "x86_64" - name: "Set fact 'kiwix_src_dir: {{ kiwix_version_i686 }}' (i686)" set_fact: kiwix_src_dir: "{{ kiwix_version_i686 }}" when: ansible_machine == "i686" # COMMENT OUT LINE ABOVE TO TEST i686 CODE PATH ON X86_64 (WORKS NOV 2017) - name: Force Ansible to exit (FAIL) if kiwix-tools appears unavailable for your architecture ({{ ansible_machine }}) fail: msg: "WARNING: kiwix-tools SOFTWARE APPEARS UNAVAILABLE FOR YOUR {{ ansible_machine }} OS/ARCHITECTURE." when: not kiwix_src_dir - name: "Set fact 'kiwix_src_file: {{ kiwix_src_dir }}.tar.gz'" set_fact: kiwix_src_file: "{{ kiwix_src_dir }}.tar.gz" # 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) - name: Download {{ iiab_download_url }}/{{ kiwix_src_file }} to /opt/iiab/downloads get_url: url: "{{ iiab_download_url }}/{{ kiwix_src_file }}" # http://download.iiab.io/packages dest: "{{ downloads_dir }}/{{ kiwix_src_file }}" # /opt/iiab/downloads timeout: "{{ download_timeout }}" when: internet_available - 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_src_file }} to /tmp # e.g. kiwix-tools_linux-armhf-3.1.2-3.tar.gz unarchive: src: "{{ downloads_dir }}/{{ kiwix_src_file }}" dest: /tmp - name: Move /tmp/{{ kiwix_src_dir }}/* to permanent location {{ kiwix_path }}/bin shell: "mv /tmp/{{ kiwix_src_dir }}/* {{ kiwix_path }}/bin/" # /opt/iiab/kiwix # 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 # install kiwix app - 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'