softasap.sa-jupyterhub

sa-jupyterhub

Estado de Construcción

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

  1. Inicia sesión como usuario jupyter
$ whoami
jupyter
  1. 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"
       }

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

Acerca del proyecto

jupyter hub

Instalar
ansible-galaxy install softasap.sa-jupyterhub
Licencia
Unknown
Descargas
72
Propietario
Get your application deployed in a robust way