- Le blog participatif de bioinformatique francophone depuis 2012 -

Installer JupyterHub pour des Notebooks hébergés sur votre serveur

Vous connais­sez sans doute déjà les note­books Jupy­ter [1], ces docu­ments web où l'on peut rédi­ger du conte­nu en Mark­down, pou­vant conte­nir des for­mules mathé­ma­tiques en LaTeX, mêlées à des cel­lules de code Python, (ou R, Julia etc.) que l'on peut exé­cu­ter au cas par cas de façon inter­ac­tive. Ils sont pas mal uti­li­sés en data science pour explo­rer un jeu de don­nées où créer un modèle de machine lear­ning pro­gres­si­ve­ment, par exemple.

Il existe de nom­breux outils en ligne comme Google Colab, Kaggle, CoCalc ou encore Bin­der qui implé­mentent leur ver­sions de Jupy­ter.

Ins­tal­ler Jupy­te­rHub sur votre ser­veur ren­dra vos note­books acces­sibles aux gens avec qui vous tra­vaillez et vous per­met­tra d'avoir un accès com­plet sur les para­mètres. Cela sera peut être l'occasion de convaincre votre labo ou votre uni­ver­si­té d'en créer une ins­tance ouverte à tous (étu­diants com­pris ;-).

Comment Installer JupyterHub ?

Il y a dif­fé­rentes façons d'installer Jupy­te­rHub sur votre ser­veur, j'ai choi­si une façon rela­ti­ve­ment stan­dard, mais si cela ne vous convient pas n'hésitez sur­tout pas à aller voir la docu­men­ta­tion de Jupy­te­rHub [3] pour vous ren­sei­gner davan­tage.

On dis­tingue deux tech­niques légè­re­ment dif­fé­rentes, sui­vant le ges­tion­naire de paquets python que vous uti­li­sez : Ana­con­da ou pip.

Pour la pré­sente démons­tra­tion, j'ai choi­si une ins­tal­la­tion sur Debian. Il vous fau­dra adap­ter les com­mandes en fonc­tion de l'OS, ou de la dis­tri­bu­tion que vous avez sous la main…

Les droits admi­nis­tra­teur sur la machine sont requis pour ins­tal­ler Jupy­te­rHub.

Anaconda

Pour ins­tal­ler Anaconda3 [2], entrez les com­mandes sui­vantes dans votre ter­mi­nal :

Pré­fé­rez une ins­tal­la­tion glo­bale dans /​opt/​anaconda3 pour qu'il n'y ait pas de pro­blème de droit (ce qui peut arri­ver avec l'option par défaut /​root/​anaconda3).

Pip

Comment créer le fichier de configuration jupyterhub_config.py ?

Dans tous les cas, géné­rez le fichier de confi­gu­ra­tion dans /​etc/​jupyterhub en entrant les com­mandes sui­vante dans le ter­mi­nal :

Comment gérér JupyterHub à l'aide d'un service Systemd ?

Pareille­ment, le ser­vice dif­fère sui­vant la pro­cé­dure que vous avez menée jusqu'alors.

Pour édi­ter le fichier de confi­gu­ra­tion du ser­vice, tapez la com­mande sui­vante (pour les fan de Vim 😉 )

Puis copiez l'une de confi­gu­ra­tions sui­vantes, en fonc­tion de votre ins­tal­la­tion.

Anaconda

Pip

Comment lancer le service Systemd ?

Comment installer et configurer un serveur proxy HTTP avec Nginx ?

Pour accé­der au note­books depuis une URL spé­ci­fique, il vous fau­dra enre­gis­trer un nou­veau nom de domaine, ou de sous-domaine chez votre regis­trar, et confi­gu­rer votre ser­veur pour ren­voyer cette adresse vers le port où écoute Jupy­te­rHub.

Conte­nu du fichier de confi­gu­ra­tion du ser­veur :

N'oubliez pas de rem­pla­cer 'HUB.DOMAIN.TLD' par le nom de domaine que vous avez enre­gis­trer dans votre DNS, et qui pointe vers l'IP publique du ser­veur, par exemple dans mon cas, c'est hub​.ortion​.xyz.

Si vous pré­fé­rez uti­li­ser Apache, allez voir la confi­gu­ra­tion recom­man­dée sur la doc de jupy­te­rhub [4].

Comment générer les certificat SSL avec Letsencrypt ?

Relancer Nginx

Et voi­là, nor­ma­le­ment, si tout s'est dérou­lé comme pré­vu vous pou­vez doré­na­vant accé­der à votre ser­veur Jupy­te­rHub via le domaine que vous avez spé­ci­fié avec Nginx, ou via http://localhost:8000 si vous êtes en local, et com­men­cer à créer des cel­lules et coder dans vos note­books.

Les iden­ti­fiants de connec­tion sont ceux des uti­li­sa­teurs UNIX de votre ser­veur.

Note­book Jupy­ter pour la clas­si­fi­ca­tion de pho­tos d'oiseaux sur mon ser­veur hub​.ortion​.xyz

Si l'installation s'est mal pas­sée et que vous n'arrivez pas à cette page, n'hésitez pas à deman­der du sup­port sur le forum de Jupy­te­rHub [5].

Bonus : Comment installer le Kernel R — IRKernel ?

Pour exé­cu­ter du code R dans vos note­books, il faut ins­tal­ler le Ker­nel R.

Il faut ins­tal­ler une ver­sion de R >= 3.5.0 pour le paquet pbdZMQ.

Si vous tra­vailler avec Ana­con­da, il est peut être plus simple d'installer R avec la com­mande sui­vante : (qui ins­talle la ver­sion 3.5.1)

Pour plus de détail ren­dez vous sur la doc de IRKer­nel [6] .

Ren­dez vous sur la liste com­plète des Ker­nels dis­po­nibles sur Jupy­ter [7] pour voir l’étendue des pos­si­bi­li­tés.

Nota bene

Mal­heu­reu­se­ment, Jupy­te­rHub ne per­met pas l'édition col­la­bo­ra­tive en simul­ta­né des note­books. Cette fonc­tion­na­li­té est encore en déve­lop­pe­ment.

Pour accé­der à cette fonc­tion­na­li­té, il fau­dra plu­tôt se diri­ger vers une solu­tion alter­na­tive telle que CoCalc.

J'ai ins­tal­lé Open CoCalc sur le ser­veur de Liness, (Linux Essonne, un GULL — Groupe d'Utilisateurs de Logi­ciels Libres), et ça marche bien [8]. Il y a même un édi­teur de docu­ment LaTeX inté­gré ain­si que de nom­breux lan­gages de pro­gram­ma­tions sup­por­tés par défaut.

Mer­ci beau­coup aux relec­teurs (aze­rin, Oli­vier Dame­ron et Yoann M.) pour leurs avis éclai­rés et leur sug­ges­tions !


Références




Commentaires

Laisser un commentaire