2021-03-09 22:57:39 +00:00
- name : "Set 'nodejs_install: True' and 'nodejs_enabled: True'"
set_fact :
nodejs_install : True
nodejs_enabled : True
- name : NODEJS - run 'nodejs' role (attempt to install & enable Node.js)
include_role :
name : nodejs
- name : FAIL (STOP THE INSTALL) IF 'nodejs_installed is undefined'
fail :
2021-04-15 19:21:35 +00:00
msg : "JupyterHub install cannot proceed, as Node.js is not installed."
2021-03-09 22:57:39 +00:00
when : nodejs_installed is undefined
2021-04-15 19:21:35 +00:00
2021-08-02 08:25:12 +00:00
- name : "Install package: python3-venv"
package :
name : python3-venv
state : present
2021-07-27 17:50:35 +00:00
- name : Make 3 directories to hold JupyterHub config
2021-04-15 19:21:35 +00:00
file :
state : directory
2021-04-17 11:43:04 +00:00
path : "{{ item }}"
2021-04-15 19:21:35 +00:00
with_items :
2021-07-27 17:50:35 +00:00
- "{{ jupyterhub_venv }}/etc/jupyter" # /opt/iiab/jupyterhub
2021-04-17 11:43:04 +00:00
- "{{ jupyterhub_venv }}/etc/jupyterhub"
- "{{ jupyterhub_venv }}/etc/systemd"
2021-04-15 19:21:35 +00:00
2021-07-27 17:50:35 +00:00
- name : Use npm to install 'configurable-http-proxy'
2021-03-09 22:57:39 +00:00
npm :
2021-04-15 19:21:35 +00:00
name : configurable-http-proxy
global : yes
state : latest
2021-03-08 01:57:10 +00:00
2021-07-27 17:50:35 +00:00
- name : "pip install 7 packages into virtual environment: {{ jupyterhub_venv }} (~229 MB)"
2021-03-08 01:57:10 +00:00
pip :
name :
2021-04-15 19:21:35 +00:00
- pip
- wheel
- ipywidgets
- jupyterhub
- jupyterlab
- jupyterhub_firstuseauthenticator
- jupyterhub-systemdspawner
2021-04-19 17:19:59 +00:00
virtualenv : "{{ jupyterhub_venv }}" # /opt/iiab/jupyterhub
2021-03-08 01:57:10 +00:00
virtualenv_site_packages : no
2021-07-30 13:57:31 +00:00
virtualenv_command : python3 -m venv "{{ jupyterhub_venv }}" # 2021-07-29: This works on RaspiOS 10, Debian 11, Ubuntu 20.04 and Mint 20 -- however if you absolutely must use the older Debian 10 -- you can work around errors "can't find Rust compiler" and "This package requires Rust >=1.41.0" if you (1) revert this line to 'virtualenv_command: virtualenv' AND (2) uncomment the line just below
2021-07-29 13:28:43 +00:00
#virtualenv_python: python3 # 2021-07-29: Was needed when above line was 'virtualenv_command: virtualenv' (generally for Python 2)
2021-12-01 04:38:12 +00:00
extra_args : "--no-cache-dir --pre" # 2021-11-30: The "--pre" flag should likely be removed after JupyterHub 2.0.0 is released.
2021-04-15 19:21:35 +00:00
2021-04-17 11:43:04 +00:00
- name : "Install from template: {{ jupyterhub_venv }}/etc/jupyterhub/jupyterhub_config.py"
2021-03-09 22:57:39 +00:00
template :
2021-09-01 05:13:55 +00:00
src : jupyterhub_config.py.j2
dest : "{{ jupyterhub_venv }}/etc/jupyterhub/jupyterhub_config.py"
2021-03-10 05:15:15 +00:00
2021-04-17 11:43:04 +00:00
- name : "Install from template: /etc/systemd/system/jupyterhub.service"
2021-03-09 04:57:33 +00:00
template :
2021-09-01 05:13:55 +00:00
src : jupyterhub.service.j2
dest : /etc/systemd/system/jupyterhub.service
2021-04-15 19:21:35 +00:00
2021-09-03 23:13:48 +00:00
- name : Install {{ jupyterhub_venv }}/bin/getsite.py from template, to fetch site_packages path, e.g. {{ jupyterhub_venv }}/lib/python{{ python_ver }}/site-packages
2021-08-29 21:33:48 +00:00
template :
2021-09-03 23:13:48 +00:00
src : getsite.py.j2
dest : "{{ jupyterhub_venv }}/bin/getsite.py"
2021-09-01 05:13:55 +00:00
mode : 0755
2021-09-03 23:13:48 +00:00
- name : Install patch_FUA.sh from template -- to (1) fix async password-changing page, and (2) force usernames to lowercase -- patching $SITE_PACKAGES/firstuseauthenticator/firstuseauthenticator.py
2021-09-01 18:17:08 +00:00
template :
2021-09-03 23:13:48 +00:00
src : patch_FUA.sh.j2
dest : "{{ jupyterhub_venv }}/bin/patch_FUA.sh"
mode : 0755
2021-09-01 18:17:08 +00:00
2021-09-03 23:13:48 +00:00
- name : "Run the above two, via: {{ jupyterhub_venv }}/bin/patch_FUA.sh"
command : "{{ jupyterhub_venv }}/bin/patch_FUA.sh"
2021-09-01 05:13:55 +00:00
2021-09-03 23:13:48 +00:00
- name : Install patch_http-warning.sh from template, to turn off the warning about http insecurity, in {{ jupyterhub_venv }}/share/jupyterhub/templates/login.html
2021-08-31 20:40:42 +00:00
template :
2021-09-01 05:13:55 +00:00
src : patch-http-warning.sh.j2
dest : "{{ jupyterhub_venv }}/bin/patch_http-warning.sh"
mode : 0755
- name : "Now run it: {{ jupyterhub_venv }}/bin/patch_http-warning.sh"
command : "{{ jupyterhub_venv }}/bin/patch_http-warning.sh"
2021-08-31 20:40:42 +00:00
2021-04-15 19:21:35 +00:00
# RECORD JupyterHub AS INSTALLED
- name : "Set 'jupyterhub_installed: True'"
set_fact :
jupyterhub_installed : True
- name : "Add 'jupyterhub_installed: True' to {{ iiab_state_file }}"
lineinfile :
path : "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
regexp : '^jupyterhub_installed'
line: 'jupyterhub_installed : True '