softasap.sa-jupyterhub
sa-jupyterhub
Agrega usuarios que trabajan con jupyterhub al grupo jupyter
sudo usermod -a -G jupyter nombreDeUsuario
# es decir.
sudo usermod -a -G jupyter vagrant
sudo usermod -a -G jupyter ubuntu
si el usuario no está permitido para trabajar con Jupyterhub, el sistema no podrá iniciar sesión para ese usuario, aunque el mensaje de error puede ser engañoso, por ejemplo 'Error de Anaconda en Authenticator.pre_spawn_start: ValueError substring no encontrado'
Ejemplo de uso:
Simple
- {
role: "sa-jupyterhub"
}
Avanzado
- {
role: "sa-jupyterhub",
option_install_python2: True,
option_install_python3: True,
option_install_anaconda: True,
option_install_git: True,
jupyterhub_python: "anaconda", # python3 / anaconda
option_install_nodejs_legacy: True,
jupyterhub_properties:
- {regexp: "^c.Authenticator.admin_users*", line: "c.Authenticator.admin_users = {'jupyter'}"}
- {regexp: "^c.LocalAuthenticator.create_system_users*", line: "c.LocalAuthenticator.create_system_users = True"}
- {regexp: "^c.JupyterHub.confirm_no_ssl*", line: "c.JupyterHub.confirm_no_ssl = True"}
# - {regexp: "^c.JupyterHub.hub_ip*", line: "c.JupyterHub.hub_ip = '{{ jupyterhub_ip }}'"}
# - {regexp: "^c.JupyterHub.ip*", line: "c.JupyterHub.ip = '{{ jupyterhub_ip }}'"}
# - {regexp: "^c.JupyterHub.proxy_api_ip*", line: "c.JupyterHub.proxy_api_ip = '{{ jupyterhub_ip }}'"}
jupyterhub_ip: "{{ansible_default_ipv4.address}}",
# ANACONDA
anaconda_version: '5.1.0',
anaconda_python: 3, # 2|3
option_anaconda_addtoprofile: False,
option_anaconda_update_packages: True,
anaconda_base_dir: /usr/local,
anaconda_additional_packages: [],
# /ANACONDA
# PYTHON 3
python_version: "3.6.4"
# /PYTHON 3
}
Créditos:
Si instalas anaconda en lugar de python3, se utiliza un módulo de terceros para gestionar paquetes:
módulo conda para python: https://github.com/UDST/ansible-conda , consulta la Licencia del módulo en library/License.txt
Instalar núcleos personalizados
- Inicia sesión como usuario jupyter
$ whoami
jupyter
- Lista los núcleos disponibles
jupyter kernelspec list
3.1 Crear un nuevo núcleo usando conda
Nota: es posible que necesites preparar tu terminal para usar conda ejecutando
conda init <NOMBRE_DE_TERMINAL>
/usr/local/anaconda/bin/conda search "^python$"
...
python 3.8.2 h191fe78_0 pkgs/main
python 3.8.2 hcf32534_0 pkgs/main
elige la versión de python y crea un entorno virtual
/usr/local/anaconda/bin/conda create -n Anaconda3.6 python=3.6 anaconda
una vez creado, activa el entorno previamente creado
conda activate Anaconda3.6
asegúrate de que el entorno esté activado e instala ipykernel
(Anaconda3.6) jupyter@bionic:~$ pip install ipykernel
Registra Anaconda3.6 para usar en tus cuadernos jupyter:
python -m ipykernel install --user --name Anaconda3.6 --display-name "Python 3.6 - anaconda venv"
Instalado el kernelspec Anaconda3.6 en /home/jupyter/.local/share/jupyter/kernels/anaconda3.6
ya has terminado:
jupyter kernelspec list
Núcleos disponibles:
anaconda3.6 /home/jupyter/.local/share/jupyter/kernels/anaconda3.6
python3 /usr/local/share/jupyter/kernels/python3
Nota que el registro del núcleo no es más que un archivo json cat /home/vagrant/.local/share/jupyter/kernels/anaconda3.6/kernel.json
{
"argv": [
"/home/vagrant/.conda/envs/Anaconda3.6/bin/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3.6 - anaconda venv",
"language": "python"
}
Puedes tener núcleos instalados para tu propio usuario, o para todos los usuarios, en cuyo caso la definición deberá estar en
/usr/local/share/jupyter/kernels/
y deberías hacer los ajustes de permisos adecuados (es decir, escritura para el grupo jupyter
)
3.2 Instalar núcleo de ansible
pip install ansible-kernel
python -m ansible_kernel.install
o
pip install ansible-kernel
python -m ansible_kernel.install --sys-prefix
Uso con el flujo de trabajo de ansible galaxy
Si instalaste el rol sa-jupyterhub
usando el comando
ansible-galaxy install softasap.sa-jupyterhub
el rol estará disponible en la carpeta library/softasap.sa-jupyterhub
Por favor, ajusta la ruta según sea necesario.
- {
role: "softasap.sa-jupyterhub"
}
Copyright y licencia
El código tiene doble licencia bajo la [Licencia BSD de 3 cláusulas] (https://opensource.org/licenses/BSD-3-Clause) y la [Licencia MIT] (http://opensource.org/licenses/MIT). Elige la que mejor te convenga.
Contáctanos:
Suscríbete para actualizaciones de roles en [FB] (https://www.facebook.com/SoftAsap/)
Únete al canal de discusión de gitter en Gitter
Descubre otros roles en http://www.softasap.com/roles/registry_generated.html
Visita nuestro blog en http://www.softasap.com/blog/archive.html
ansible-galaxy install softasap.sa-jupyterhub