Jupyter Notebook / Jupyter Hub est une évolution de iPython Notebook.

En gros, c’est un éditeur de texte Web, multi-langage, multi-utilisateurs (hub) ou mono utilisateur (notebook) qui permet de réaliser des travaux notamment dans le domaine scientifique.

Voir les explications sur le site officiel.

 

Installation :

 

On va installer la bête à coups d’apt, de npm et de pip :

# Les outils LDAP serviront à l'authentification LDAP et Supervisor lancera Jupyterhub en tant que service
apt-get install -y npm nodejs-legacy python3-pip libnss-ldap libpam-ldap ldap-utils supervisor
npm install -g configurable-http-proxy
# NBGrader : plugin de notation profs/élèves, LdapAuthenticator pour les utilisateurs LDAP
pip3 install jupyterhub notebook nbgrader jupyterhub-ldapauthenticator

 

Préparation d’un certificat TLS :

 

On aura besoin d’un certificat TLS par la suite donc autant le créer maintenant.

Ici il est auto-signé :

cd /etc/ssl
openssl req -nodes -sha512 -x509 -newkey rsa:4096 -keyout jupyterhub.key -out jupyterhub.crt -days 356

 

Authentification :

 

Jupyterhub va utiliser l’authentification locale (du Debian) pour authentifier les utilisateurs. Si vous voulez un utilisateur Jupyterhub, il vous faut créer un utilisateur Linux :

adduser toto

 

Pour authentifier mes utilisateurs par LDAP, j’ai utilisé un module dédié à l’authentification LDAP.

 

Configuration :

 

Vous pouvez générer un fichier de configuration par défaut pour Jupyterhub. Pour ma part, je le mets dans /etc pour être cohérent avec les autres services.

mkdir /etc/jupyterhub
cd /etc/jupyterhub
jupyterhub --generate-config

 

Voilà, maintenant que la configuration par défaut est générée, voici les quelques paramètres à ajouter ou changer :

 

C’est parti :

 

Yaplukatester :

jupyterhub -f /etc/jupyterhub/jupyterhub_config.py

Et hop : https://monjupyter.maboite.com/

 

Service :

 

Pour faire tourner Jupyterhub en tant que service, je vais me tourner vers supervisor.

 

Fichier /etc/supervisor/conf.d/jupyterhub.conf :

 

On redémarre le bouzin et c’est parti pour la prod :

service supervisor reload
supervisorctl status jupyterhub

 

 

Sur le même sujet :