2019-10-20 21:31:09 +00:00
- name : Download {{ kalite_requirements }} to {{ pip_packages_dir }}/kalite.txt
2017-12-08 06:33:31 +00:00
get_url :
url : "{{ kalite_requirements }}"
2019-10-20 21:04:56 +00:00
dest : "{{ pip_packages_dir }}/kalite.txt" # /opt/iiab/pip-packages/kalite.txt
2017-12-08 06:33:31 +00:00
timeout : "{{ download_timeout }}"
2017-09-17 18:07:34 +00:00
2021-03-08 13:36:51 +00:00
# 2020-01-19: https://github.com/piwheels/packages/issues/74 says the following is no longer needed...
2020-01-19 14:08:02 +00:00
#- name: Run 'mv /etc/pip.conf /etc/pip.conf.see-iiab-issue-2139' as "TEMPORARY" workaround (2020-01-17) for piwheels.org's setuptools Python 2/3 brokenness on RPi (https://github.com/iiab/iiab/issues/2139)
# command: mv /etc/pip.conf /etc/pip.conf.see-iiab-issue-2139
# ignore_errors: yes
2020-10-16 20:46:19 +00:00
# when: is_raspbian
2020-01-17 16:23:47 +00:00
2021-08-02 08:38:12 +00:00
- name: 'Install packages : python2, python-setuptools, virtualenv (for Python 2)'
2020-03-27 06:23:30 +00:00
package :
2020-04-02 12:44:21 +00:00
name :
2021-03-07 20:34:04 +00:00
- python2
2021-07-29 15:37:07 +00:00
- python-setuptools # Provides setuptools-44 on recent OS's (last version compatible with python2)
2021-07-29 16:34:32 +00:00
- virtualenv # For Ansible module 'pip' when used with 'virtualenv_command: /usr/bin/virtualenv' and 'virtualenv_python : python2.7' -- compare package 'python3-venv' used by roles {calibre-web, jupyterhub, lokole}
2020-03-19 10:45:26 +00:00
state : present
2021-07-29 15:37:07 +00:00
#when: not (is_debian_9 or is_debian_10 or is_ubuntu_16 or is_ubuntu_17 or is_ubuntu_18 or is_ubuntu_19)
2020-03-31 16:28:46 +00:00
# 2020-03-31: Testing for {is_raspbian_9, is_raspbian_10} is not currently nec, as testing for {is_debian_9, is_debian_10} covers that already.
2020-03-19 10:45:26 +00:00
2022-10-28 23:00:24 +00:00
- name : Use pip to pin setuptools to 44 in {{ kalite_venv }} # WAS: if Raspbian/Debian > 10 or Ubuntu > 19
2020-03-31 15:12:52 +00:00
pip :
2021-03-07 20:34:04 +00:00
name : setuptools==44
2020-03-31 15:12:52 +00:00
virtualenv : "{{ kalite_venv }}" # /usr/local/kalite/venv
virtualenv_site_packages : no
virtualenv_command : /usr/bin/virtualenv
virtualenv_python : python2.7
extra_args : "--no-use-pep517 --no-cache-dir --no-python-version-warning"
2022-10-28 17:55:43 +00:00
#when: not (is_debian_9 or is_debian_10 or is_ubuntu_16 or is_ubuntu_17 or is_ubuntu_18 or is_ubuntu_19)
2020-04-21 15:27:03 +00:00
# long form of (is_debian_11+ or is_ubuntu_20+)
2020-03-31 15:12:52 +00:00
2021-03-08 13:36:51 +00:00
- name : Use pip to install ka-lite-static to {{ kalite_venv }}
2017-12-08 06:33:31 +00:00
pip :
name : ka-lite-static
version : "{{ kalite_version }}"
2021-07-19 15:01:31 +00:00
virtualenv : "{{ kalite_venv }}"
2017-12-08 06:33:31 +00:00
virtualenv_site_packages : no
2019-10-31 14:11:30 +00:00
virtualenv_command : /usr/bin/virtualenv
virtualenv_python : python2.7
2017-12-08 06:33:31 +00:00
extra_args : "--no-cache-dir"
2017-05-27 18:09:50 +00:00
2021-03-07 20:34:04 +00:00
- name : "Install from templates: venv wrapper /usr/bin/kalite, unit file /etc/systemd/system/kalite-serve.service"
2017-12-08 06:33:31 +00:00
template :
src : "{{ item.src }}"
dest : "{{ item.dest }}"
mode : "{{ item.mode }}"
2017-05-27 18:09:50 +00:00
with_items :
2020-05-17 02:48:52 +00:00
- { src: 'kalite.sh.j2', dest: '/usr/bin/kalite', mode : '0755' }
- { src: 'kalite-serve.service.j2', dest: '/etc/systemd/system/kalite-serve.service', mode : '0644' }
2021-03-07 20:34:04 +00:00
# Useless stanza, for 2 reasons: (1) http://box/kalite was never made to work
# (2) /etc/apache2/sites-available does not exist on many IIAB's w/o Apache
2021-07-07 04:13:52 +00:00
# - name: "Install from template: /etc/{{ apache_conf_dir }}/kalite.conf (useless, as http://box/kalite was never made to work)"
# template:
# src: kalite.conf
# dest: "/etc/{{ apache_conf_dir }}" # apache2/sites-available on debuntu
# when: apache_installed is defined
2019-06-13 18:25:09 +00:00
2022-10-28 23:00:24 +00:00
- name: Fix KA Lite bug in regex parsing ifconfig output (ifcfg/parser.py) for @m-anish's network names that contain dashes # WAS : if Raspbian/Debian > 10 or Ubuntu > 19
2019-06-13 18:25:09 +00:00
replace :
2021-07-19 15:01:31 +00:00
path : "{{ kalite_venv }}/lib/python2.7/site-packages/kalite/packages/dist/ifcfg/parser.py" # /usr/local/kalite/venv
2019-06-13 18:25:09 +00:00
regexp : 'a-zA-Z0-9'
replace : 'a-zA-Z0-9\-'
2022-10-28 17:55:43 +00:00
#when: not (is_debian_9 or is_debian_10 or is_ubuntu_16 or is_ubuntu_17 or is_ubuntu_18 or is_ubuntu_19)
2020-03-31 16:28:46 +00:00
# 2020-03-31: Testing for {is_raspbian_9, is_raspbian_10} is not currently nec, as testing for {is_debian_9, is_debian_10} covers that already.
2022-06-30 15:10:13 +00:00
# JV: why not just is_ubuntu_20? AH: to make this work on Ubuntu 21+ and ideally Debian/RasPiOS 11+ too?
2020-03-31 15:12:52 +00:00
2022-10-28 18:41:20 +00:00
# - name: Fix KA Lite bug in regex parsing ifconfig output (ifcfg/parser.py) for @m-anish's network names that contain dashes, if Raspbian/Debian < 11 or Ubuntu < 20
# replace:
# path: "{{ kalite_venv }}/local/lib/python2.7/site-packages/kalite/packages/dist/ifcfg/parser.py"
# regexp: 'a-zA-Z0-9'
# replace: 'a-zA-Z0-9\-'
# when: is_debian_9 or is_debian_10 or is_ubuntu_16 or is_ubuntu_17 or is_ubuntu_18 or is_ubuntu_19
# # 2020-03-31: Testing for {is_raspbian_9, is_raspbian_10} is not currently nec, as testing for {is_debian_9, is_debian_10} covers that already.
2020-01-12 22:06:24 +00:00
2020-02-18 01:00:17 +00:00
- name : Create dir {{ kalite_root }}
file :
state : directory
path : "{{ kalite_root }}/httpsrv/static" # /library/ka-lite
2021-03-07 20:45:25 +00:00
- name : Run '{{ kalite_program }} manage setup ...'
2020-02-18 01:00:17 +00:00
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 }}" # /library/ka-lite
async : 1800
poll : 10
2020-01-30 09:00:00 +00:00
2021-07-07 04:13:52 +00:00
# RECORD KA Lite AS INSTALLED
2020-02-18 01:00:17 +00:00
- name : "Set 'kalite_installed: True'"
set_fact :
kalite_installed : True
- name : "Add 'kalite_installed: True' to {{ iiab_state_file }}"
lineinfile :
path : "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
regexp : '^kalite_installed'
line: 'kalite_installed : True '