diff --git a/roles/kolibri/tasks/install.yml b/roles/kolibri/tasks/install.yml index d95f36044..81186d736 100644 --- a/roles/kolibri/tasks/install.yml +++ b/roles/kolibri/tasks/install.yml @@ -1,67 +1,3 @@ -# 2022-09-08 @jredrejo's Ansible install scripts may provide guidelines: -# https://github.com/learningequality/pi-gen/blob/master/stage2/04-hostapd/common.yml -# https://github.com/learningequality/pi-gen/blob/master/stage2/04-hostapd/install.yml -# https://github.com/learningequality/pi-gen/blob/master/stage2/04-hostapd/offline.yml -# https://github.com/learningequality/pi-gen/blob/master/stage2/04-hostapd/online.yml - -# Install Kolibri ยป Debian/Ubuntu -# https://kolibri.readthedocs.io/en/latest/install/ubuntu-debian.html - -# Advanced management -# https://kolibri.readthedocs.io/en/latest/manage/advanced.html - -# Working with Kolibri from the command line -# https://kolibri.readthedocs.io/en/latest/manage/command_line.html - -# Customize Kolibri settings with the [ /library/kolibri/options.ini ] file -# https://kolibri.readthedocs.io/en/latest/manage/options_ini.html - -# Test Kolibri server performance -# https://kolibri.readthedocs.io/en/latest/manage/performance.html - -# Provisioning many servers -# https://kolibri.readthedocs.io/en/latest/install/provision.html - - -- name: Record (initial) disk space used - shell: df -B1 --output=used / | tail -1 - register: df1 - - -- name: Create Linux user {{ kolibri_user }} and add it to groups {{ apache_user }}, disk - user: - name: "{{ kolibri_user }}" - groups: "{{ apache_user }}" # 2023-03-29: Not really necessary (Kolibri is demonstrated to work without group 'www-data'). But it likely doesn't hurt. - #- disk # 2023-03-29: Tested to be unnec with USB sticks (with 64-bit RasPiOS). FWIW group 'disk' is "Mostly equivalent to root access" according to https://wiki.debian.org/SystemGroups - state: present - shell: /bin/false - system: yes - create_home: no - home: "{{ kolibri_home }}" - -- name: Create directory {{ kolibri_home }} for Kolibri content, configuration, sqlite3 databases ({{ kolibri_user }}:{{ apache_user }}, by default 0755) - file: - state: directory - path: "{{ kolibri_home }}" # /library/kolibri - owner: "{{ kolibri_user }}" # kolibri - group: "{{ apache_user }}" # www-data (on Debian/Ubuntu/Raspbian) - -- name: Create directory /etc/kolibri (by default 0755) - file: - state: directory - name: /etc/kolibri - -- name: Save kolibri_user ({{ kolibri_user }}) to /etc/kolibri/username - copy: - content: "{{ kolibri_user }}" - dest: /etc/kolibri/username - -- name: Save kolibri_home (KOLIBRI_HOME="{{ kolibri_home }}") to /etc/kolibri/daemon.conf - copy: - content: 'KOLIBRI_HOME="{{ kolibri_home }}"' - dest: /etc/kolibri/daemon.conf - - # https://kolibri.readthedocs.io/en/latest/install/ubuntu-debian.html claims: # "When you use the PPA installation method, upgrades to newer versions # will be automatic, provided there is internet access available." @@ -154,95 +90,3 @@ file: state: absent path: /root/.kolibri - -- name: 'Install from template: /etc/systemd/system/kolibri.service' - template: - src: kolibri.service.j2 - dest: /etc/systemd/system/kolibri.service - -- name: Stop 'kolibri' systemd service, for Kolibri provisioning (after daemon_reload) - systemd: - daemon_reload: yes - name: kolibri - state: stopped - - -# 2019-10-01: Should no longer be nec, thanks to /etc/kolibri/daemon.conf -# containing KOLIBRI_HOME="/library/kolibri" (above) -# - name: Run Kolibri migrations to begin populating {{ kolibri_home }} # i.e. /library/kolibri -# shell: export KOLIBRI_HOME="{{ kolibri_home }}" && "{{ kolibri_exec_path }}" manage migrate -# ignore_errors: yes -# become: yes -# become_user: "{{ kolibri_user }}" -# when: kolibri_provision - -# 2020-01-05: Deprecated per https://github.com/iiab/iiab/issues/2103 -# - name: Set Kolibri default language ({{ kolibri_language }}) -# shell: export KOLIBRI_HOME="{{ kolibri_home }}" && "{{ kolibri_exec_path }}" language setdefault "{{ kolibri_language }}" -# ignore_errors: yes -# become: yes -# become_user: "{{ kolibri_user }}" -# when: kolibri_provision - -# Run "kolibri manage help provisiondevice" to see CLI options, e.g.: -# --facility_settings FACILITY_SETTINGS -# JSON file containing facility settings -# --device_settings DEVICE_SETTINGS -# JSON file containing device settings -- name: 'Provision Kolibri, while setting: facility name, admin acnt / password, preset type, and language' - shell: > - "{{ kolibri_exec_path }}" manage provisiondevice --facility "{{ kolibri_facility }}" - --superusername "{{ kolibri_admin_user }}" --superuserpassword "{{ kolibri_admin_password }}" - --preset "{{ kolibri_preset }}" --language_id "{{ kolibri_language }}" - #--preset "{{ kolibri_preset }}" --language_id "{{ kolibri_language }}" --verbosity 0 --noinput - ignore_errors: yes - become: yes - become_user: "{{ kolibri_user }}" - when: kolibri_provision - environment: - KOLIBRI_HOME: "{{ kolibri_home }}" # 2023-03-27: Required! - #KOLIBRI_USER: "{{ kolibri_user }}" # 2023-03-27: Not nec due to /etc/kolibri/username ? - - -# 2023-03-25: Likely overkill (let's strongly consider removing this stanza?) -# Certainly, setting owner (recursively) is advised when moving /library/kolibri : -# https://kolibri.readthedocs.io/en/latest/install/ubuntu-debian.html#changing-the-owner-of-kolibri-system-service -# 2023-03-27: Commented out on a provisional basis (Spring Cleaning) -# - name: chown -R {{ kolibri_user }}:{{ apache_user }} {{ kolibri_home }} for good measure? -# file: -# path: "{{ kolibri_home }}" # /library/kolibri -# owner: "{{ kolibri_user }}" # kolibri -# group: "{{ apache_user }}" # www-data (on Debian/Ubuntu/Raspbian) -# recurse: yes -# when: kolibri_provision - -# 2019-10-07: Moved to roles/httpd/tasks/main.yml -# 2019-09-29: roles/kiwix/tasks/kiwix_install.yml installs 4 Apache modules -# for similar purposes (not all nec?) Only 1 (proxy_http) is needed here. -# - name: Enable Apache module proxy_http for http://box{{ kolibri_url }} # i.e. http://box/kolibri -# apache2_module: -# name: proxy_http - - -# RECORD Kolibri AS INSTALLED - -- name: Record (final) disk space used - shell: df -B1 --output=used / | tail -1 - register: df2 - -- name: Add 'kolibri_disk_usage = {{ df2.stdout|int - df1.stdout|int }}' to {{ iiab_ini_file }} - ini_file: - path: "{{ iiab_ini_file }}" # /etc/iiab/iiab.ini - section: kolibri - option: kolibri_disk_usage - value: "{{ df2.stdout|int - df1.stdout|int }}" - -- name: "Set 'kolibri_installed: True'" - set_fact: - kolibri_installed: True - -- name: "Add 'kolibri_installed: True' to {{ iiab_state_file }}" - lineinfile: - path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml - regexp: '^kolibri_installed' - line: 'kolibri_installed: True'