From 434bbdf0d507b93865e1d555c0d81a945f74101f Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 20 Oct 2019 16:56:30 -0400 Subject: [PATCH 1/7] Update README.rst --- roles/kalite/README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/kalite/README.rst b/roles/kalite/README.rst index f6f1a000a..354017eb8 100644 --- a/roles/kalite/README.rst +++ b/roles/kalite/README.rst @@ -22,7 +22,7 @@ After your Internet-in-a-Box (IIAB) is completely installed, log in to KA Lite t Bulk Downloading Videos ----------------------- -Videos and their corresponding PNG thumbnail images can be copied into /library/ka-lite/content and will be recognized the next time KA Lite is started. +Videos and their corresponding PNG thumbnail images can be copied into /library/ka-lite/content — then log in to http://box.lan:8008 and click the "Videos" tab -> "Scan content folder for videos" (which might take a few minutes to complete!) Please see http://FAQ.IIAB.IO ("KA Lite Administration: What tips & tricks exist?") to use BitTorrent to download compressed KA Lite videos, that are much smaller than the ones downloaded via KA Lite's administrative interface. @@ -36,7 +36,7 @@ Look at `role/kalite/defaults/main.yml Date: Sun, 20 Oct 2019 17:01:04 -0400 Subject: [PATCH 2/7] kalite/tasks/main.yml readability --- roles/kalite/tasks/main.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/roles/kalite/tasks/main.yml b/roles/kalite/tasks/main.yml index d067c6041..2656d3790 100644 --- a/roles/kalite/tasks/main.yml +++ b/roles/kalite/tasks/main.yml @@ -43,15 +43,15 @@ option: "{{ item.option }}" value: "{{ item.value }}" with_items: - - option: name - value: "KA Lite" - - option: description - value: '"KA Lite downloads Khan Academy videos for offline use, with exercises and accounts if students want to track their own progress."' - - option: path - value: "{{ kalite_root }}" - - option: port - value: "{{ kalite_server_port }}" - - option: kalite_enabled - value: "{{ kalite_enabled }}" - - option: cron_enabled - value: "{{ kalite_cron_enabled }}" + - option: name + value: "KA Lite" + - option: description + value: '"KA Lite downloads Khan Academy videos for offline use, with exercises and accounts if students want to track their own progress."' + - option: kalite_root + value: "{{ kalite_root }}" + - option: kalite_server_port + value: "{{ kalite_server_port }}" + - option: kalite_enabled + value: "{{ kalite_enabled }}" + - option: kalite_cron_enabled + value: "{{ kalite_cron_enabled }}" From 6da31ac3119a53eec787b7fdb7afe6bfddd214c7 Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 20 Oct 2019 17:04:56 -0400 Subject: [PATCH 3/7] kalite/tasks/install.yml cleaner/readability --- roles/kalite/tasks/install.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/roles/kalite/tasks/install.yml b/roles/kalite/tasks/install.yml index 77eff2871..a5addc38f 100644 --- a/roles/kalite/tasks/install.yml +++ b/roles/kalite/tasks/install.yml @@ -1,16 +1,14 @@ -# This is for an OS other than Fedora 18 +# For OS's other than Fedora 18 -- name: Install missing packages required for KA Lite startup +- name: Install package python-virtualenv required for KA Lite startup package: - name: "{{ item }}" + name: python-virtualenv state: present - with_items: - - python-virtualenv -- name: Download KA Lite's requirements file +- name: Download KA Lite's requirements file to {{ pip_packages_dir }}/kalite.txt get_url: url: "{{ kalite_requirements }}" - dest: "{{ pip_packages_dir }}/kalite.txt" + dest: "{{ pip_packages_dir }}/kalite.txt" # /opt/iiab/pip-packages/kalite.txt timeout: "{{ download_timeout }}" when: internet_available | bool @@ -57,6 +55,7 @@ - name: Remove libgeos-* pkgs, avoiding KA Lite Django failure on Ubermix shell: apt -y remove "libgeos-*" +# 2019-10-20: For Fedora 18 legacy (XO laptops) specially - name: Default is to have cronserve started with KA Lite set_fact: job_scheduler_stanza: "" @@ -66,7 +65,7 @@ job_scheduler_stanza: "--skip-job-scheduler " when: not kalite_cron_enabled -- name: Create 'kalite-serve' service, kalite.sh and kalite.conf +- name: "Install from template: venv wrapper /usr/bin/kalite, systemd unit file kalite-serve.service, Apache's kalite.conf" template: backup: no src: "{{ item.src }}" @@ -75,8 +74,8 @@ group: root mode: "{{ item.mode }}" with_items: - - { src: 'kalite-serve.service.j2', dest: '/etc/systemd/system/kalite-serve.service', mode: '0644'} - { src: 'kalite.sh.j2', dest: '/usr/bin/kalite', mode: '0755'} + - { src: 'kalite-serve.service.j2', dest: '/etc/systemd/system/kalite-serve.service', mode: '0644'} - { src: 'kalite.conf', dest: '/etc/{{ apache_config_dir }}', mode: '0644'} - name: Fix KA Lite bug in regex parsing ifconfig output, for @m-anish's network names that contain dashes From f031ef6cfb3690a4109f202d22178376fd27172c Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 20 Oct 2019 17:06:03 -0400 Subject: [PATCH 4/7] kalite/tasks/setup.yml cleaner/readability --- roles/kalite/tasks/setup.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/roles/kalite/tasks/setup.yml b/roles/kalite/tasks/setup.yml index b8812d103..d0f6404e1 100644 --- a/roles/kalite/tasks/setup.yml +++ b/roles/kalite/tasks/setup.yml @@ -1,16 +1,16 @@ -# This is for an OS other than Fedora 18 +# For OS's other than Fedora 18 -- name: Create kalite_root directory +- name: Create {{ kalite_root }} directory file: - path: "{{ kalite_root }}/httpsrv/static" + path: "{{ kalite_root }}/httpsrv/static" # /library/ka-lite owner: root group: root mode: 0755 state: directory - name: Run the setup using 'kalite manage' - command: "{{ kalite_program }} manage setup --username={{ kalite_admin_user }} --password={{ kalite_admin_password }} --noinput" + command: "{{ kalite_program }} manage setup --username={{ kalite_admin_user }} --password={{ kalite_admin_password }} --noinput" # Runs /usr/local/kalite/venv/bin/kalite environment: - KALITE_HOME: "{{ kalite_root }}" + KALITE_HOME: "{{ kalite_root }}" # /library/ka-lite async: 1800 poll: 10 From 36efd72c00f88341f67d6d0f4d5a32f1434735e5 Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 20 Oct 2019 17:22:43 -0400 Subject: [PATCH 5/7] kalite/tasks/enable.yml cleaner/readability --- roles/kalite/tasks/enable.yml | 36 +++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/roles/kalite/tasks/enable.yml b/roles/kalite/tasks/enable.yml index 7a95aabeb..f749bf6c6 100644 --- a/roles/kalite/tasks/enable.yml +++ b/roles/kalite/tasks/enable.yml @@ -1,31 +1,39 @@ # By the time we get here we should have ka-lite of some version # And the systemd unit files should be defined -- name: Enable 'kalite-serve' service - service: +- name: Enable & (re)start 'kalite-serve' service + systemd: + daemon_reload: yes name: kalite-serve enabled: yes - state: started + state: restarted + when: kalite_enabled -- name: Disable 'kalite-serve' service - service: +- name: Disable & stop 'kalite-serve' service + systemd: name: kalite-serve enabled: no state: stopped when: not kalite_enabled -# Since Fedora 18 we don't have a separate unit file for kalite-cron +# 2019-10-20: Below is for Fedora 18 (XO laptops) only. +# Since F18 we don't have a separate unit file for kalite-cron. +# +# SEE --skip-job-scheduler @ https://ka-lite.readthedocs.io/en/latest/usermanual/cli.html +# ...as implemented in templates/kalite-serve.service.j2 +# ...if not kalite_cron_enabled +# ...using {{ job_scheduler_stanza }} from kalite/tasks/install.yml -- name: Disable kalite cron server F18 +- name: Enable & (re)start 'kalite-cron' service (F18) + service: + name: kalite-cron + enabled: yes + state: restarted + when: kalite_cron_enabled and is_F18 + +- name: Disable & stop 'kalite-cron' service (F18) service: name: kalite-cron enabled: no state: stopped when: not kalite_cron_enabled and is_F18 - -- name: Enable kalite cron server F18 - service: - name: kalite-cron - enabled: yes - state: started - when: kalite_cron_enabled and is_F18 From 84071f6db1a2937858cec0320d39826cabf1fe90 Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 20 Oct 2019 17:31:09 -0400 Subject: [PATCH 6/7] Show {{ kalite_requirements }} URL during install --- roles/kalite/tasks/install.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/kalite/tasks/install.yml b/roles/kalite/tasks/install.yml index a5addc38f..f421d2ad2 100644 --- a/roles/kalite/tasks/install.yml +++ b/roles/kalite/tasks/install.yml @@ -5,7 +5,7 @@ name: python-virtualenv state: present -- name: Download KA Lite's requirements file to {{ pip_packages_dir }}/kalite.txt +- name: Download {{ kalite_requirements }} to {{ pip_packages_dir }}/kalite.txt get_url: url: "{{ kalite_requirements }}" dest: "{{ pip_packages_dir }}/kalite.txt" # /opt/iiab/pip-packages/kalite.txt From d7ca00fa24a6fbe18f1185a4185db600c3e46eea Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 20 Oct 2019 17:46:53 -0400 Subject: [PATCH 7/7] Clarify {{ kalite_env }} during pip install of KA Lite --- roles/kalite/tasks/install.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/kalite/tasks/install.yml b/roles/kalite/tasks/install.yml index f421d2ad2..725820c76 100644 --- a/roles/kalite/tasks/install.yml +++ b/roles/kalite/tasks/install.yml @@ -20,7 +20,7 @@ # extra_args="--disable-pip-version-check" # when: internet_available and is_debuntu -- name: Install KA Lite static with pip (debuntu) +- name: Install KA Lite static to {{ kalite_venv }}, using pip (debuntu) pip: name: ka-lite-static version: "{{ kalite_version }}" @@ -38,7 +38,7 @@ # extra_args="--disable-pip-version-check" # when: internet_available and not is_debuntu -- name: Install KA Lite static with pip (OS's other than debuntu) +- name: Install KA Lite static to {{ kalite_venv }}, using pip (OS's other than debuntu) pip: name: ka-lite-static version: "{{ kalite_version }}"