Cómo configurar un servidor Jupyter multiusuario con Jupyterhub (en Windows con Docker)

Jupyterhub.jpg

Al enseñar o trabajar con Python, es un desafío tener y trabajar simultáneamente con la misma versión de Python y paquetes de Python. Jupyterhub es una gran solución para llevar notebook a un grupo de usuarios con herramientas de administración y muchas más funciones. Hemos realizado un tutorial para instalar Jupyterhub con Jupyterlab en una red LAN o wifi local. El tutorial muestra el procedimiento para ejecutar Jupyterhub desde Docker en Windows, utilizar un autenticador nativo y configurar un administrador y usuarios.

Tutorial

Pasos a seguir

Se requiere tener Docker en Windows 10 que lo puede instalar siguiendo este tutorial.

#open a Windows cmd and type

powershell

#run a jupyterhub container

docker run -it -p 8000:8000 --name jhubcontainer jupyterhub/jupyterhub bash

# update the repositories

apt update 

# install python3 and related packages

apt-get install npm nodejs python3 python3-pip git nano

# install jupyterhub and jupyterlab

python3 -m pip install jupyterhub notebook jupyterlab

# install nodejs packages

npm install -g configurable-http-proxy

# install native authenticator package

cd /home

git clone https://github.com/jupyterhub/nativeauthenticator.git

cd nativeauthenticator

pip3 install -e .

#modify jupyterconfig

mkdir /etc/jupyterhub   

cd /etc/jupyterhub   

jupyterhub --generate-config -f jupyterhub_config.py

#edit the jupyterhun config file

nano jupyterhub_config.py

import pwd, subprocess

c.JupyterHub.authenticator_class = 'nativeauthenticator.NativeAuthenticator'

c.Authenticator.admin_users = {'admin'}

def pre_spawn_hook(spawner):

    username = spawner.user.name

    try:

        pwd.getpwnam(username)

    except KeyError:

        subprocess.check_call(['useradd', '-ms', '/bin/bash', username])

c.Spawner.pre_spawn_hook = pre_spawn_hook

c.Spawner.default_url = '/lab'

# run jupyterhub

jupyterhub -f /etc/jupyterhub/jupyterhub_config.py

# configure admin and users

http://localhost:8000/hub/signup

Sign up your admin as “admin” and password.

Login as admin and go the authorize window:

http://localhost:8000/hub/authorize

#get the local ip from the computer by typing this in a new cmd:

ipconfig

# for new users

Go to the server local ip address and jupyterhub port

192.168.XXX.XXX:8000/signup

New users that sign up will be displayed to be authorized.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Posted on November 9, 2020 and filed under TutorialPython.