Vous connaissez sans doute déjà les notebooks Jupyter [1], ces documents web où l'on peut
rédiger du contenu en Markdown, pouvant contenir des formules mathématiques en LaTeX, mêlées à des cellules de code
Python, (ou R, Julia etc.) que l'on peut exécuter au cas par cas de façon interactive. Ils sont pas mal utilisés en
data science pour explorer un jeu de données où créer un modèle de machine learning progressivement, par exemple.
Il existe de nombreux outils en ligne comme Google Colab, Kaggle, CoCalc ou encore Binder qui implémentent leur
versions de Jupyter.
Installer JupyterHub sur votre serveur rendra vos notebooks accessibles aux gens avec qui vous travaillez et vous
permettra d'avoir un accès complet sur les paramètres. Cela sera peut être l'occasion de convaincre votre labo ou
votre université d'en créer une instance ouverte à tous (étudiants compris ;-).
Comment Installer JupyterHub ?
Il y a différentes façons d'installer JupyterHub sur votre serveur, j'ai choisi une façon relativement standard, mais
si cela ne vous convient pas n'hésitez surtout pas à aller voir la documentation de JupyterHub [3] pour vous
renseigner davantage.
On distingue deux techniques légèrement différentes, suivant le gestionnaire de paquets python que vous utilisez :
Anaconda ou pip.
Pour la présente démonstration, j'ai choisi une installation sur Debian. Il vous faudra adapter les commandes en
fonction de l'OS, ou de la distribution que vous avez sous la main…
Les droits administrateur sur la machine sont requis pour installer JupyterHub.
Anaconda
Pour installer Anaconda3 [2], entrez les commandes suivantes dans votre terminal :
Préférez une installation globale dans /opt/anaconda3 pour qu'il n'y ait pas de problème de droit (ce qui peut
arriver avec l'option par défaut /root/anaconda3).
1
2
[crayon-680ca698c1593633587389]conda install-cconda-forge jupyterhub#installe jupyterhub et le proxy nodejs http
conda install notebook#utile si vous lancez des notebooks enlocal
[/crayon]
Pip
1
2
3
[crayon-680ca698c1596615555811]curl-o-https ://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh|bash#installe le gestionnaire de version de nodejs
sudo nvm install v12.0.0#choisir une version qui va bien...
sudo apt install npm#installe le gestionnaire de packet de nodejs
[crayon-680ca698c15a5905616707]sudo systemctl daemon-reload#recharge les services disponibles aprèsleurédition
sudo systemctl start jupyterhub.service#lance le service jupyterhub
sudo systemctl enable--now jupyterhub.service#ajoute le service jupyterhub aux applications se lançant audémarrage du serveur et lance le service
[/crayon]
1
[crayon-680ca698c15a7882346176]systemctl status jupyterhub.service#Vérifie que le services'est bien lancé et qu'il est actif
[/crayon]
Comment installer et configurer un serveur proxy HTTP avec Nginx ?
Pour accéder au notebooks depuis une URL spécifique, il vous faudra enregistrer un nouveau nom de domaine, ou de
sous-domaine chez votre registrar, et configurer votre serveur pour renvoyer cette adresse vers le port où écoute
JupyterHub.
N'oubliez pas de remplacer 'HUB.DOMAIN.TLD' par le nom de domaine que vous avez enregistrer dans votre DNS, et qui pointe vers l'IP publique du serveur, par exemple dans mon cas, c'est hub.ortion.xyz.
Si vous préférez utiliser Apache, allez voir la configuration recommandée sur la doc de jupyterhub [4].
Comment générer les certificat SSL avec Letsencrypt ?
1
2
3
4
[crayon-680ca698c15b2685551174]sudo add-apt-repository ppa :certbot/certbot#ajoute ledépôtPPA de certbot
sudo apt-get install certbot
sudo systemctl stop nginx
certbot certonly--standalone#génère les certificats ;nginx ne doit pas fonctionner enparallèle
Et voilà, normalement, si tout s'est déroulé comme prévu vous pouvez dorénavant accéder à votre serveur JupyterHub via le domaine que vous avez spécifié avec Nginx, ou via http://localhost:8000 si vous êtes en local, et commencer à créer des cellules et coder dans vos notebooks.
Les identifiants de connection sont ceux des utilisateurs UNIX de votre serveur.
Notebook Jupyter pour la classification de photos d'oiseaux sur mon serveur hub.ortion.xyz
Si l'installation s'est mal passée et que vous n'arrivez pas à cette page, n'hésitez pas à demander du support sur le
forum de JupyterHub [5].
Bonus : Comment installer le Kernel R - IRKernel ?
Pour exécuter du code R dans vos notebooks, il faut installer le Kernel R.
Il faut installer une version de R >= 3.5.0 pour le paquet pbdZMQ.
Rendez vous sur la liste complète des Kernels disponibles sur Jupyter [7] pour voir l’étendue des possibilités.
Nota bene
Malheureusement, JupyterHub ne permet pas l'édition collaborative en simultané des notebooks. Cette fonctionnalité est encore en développement.
Pour accéder à cette fonctionnalité, il faudra plutôt se diriger vers une solution alternative telle que CoCalc.
J'ai installé Open CoCalc sur le serveur de Liness, (Linux Essonne, un GULL -- Groupe d'Utilisateurs de Logiciels Libres), et ça marche bien [8]. Il y a même un éditeur de document LaTeX intégré ainsi que de nombreux langages de programmations supportés par défaut.
Geekus biologicus juvénile en master Genomics, Informatics and Mathematics for Health and Environment (GENIOMHE) à l'Université d'Évry val d'Essonne -- Université Paris-Saclay.
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
Fonctionnel
Toujours activé
Le stockage ou l’accès technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’internaute, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
Le stockage ou l’accès technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou la personne utilisant le service.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques.Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
Le stockage ou l’accès technique est nécessaire pour créer des profils d’internautes afin d’envoyer des publicités, ou pour suivre l’internaute sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.
Laisser un commentaire