Aviso
Este artículo es antiguo y es posible que parte de la información esté desactualizada o ya no sea válida en la actualidad.
Si tienes cualquier duda o necesitas confirmar algún detalle, te recomendamos contactar con nuestro equipo de soporte para recibir información actualizada y asistencia personalizada.
El Proyecto Jupyter es una organización sin ánimo de lucro creada para "desarrollar software de código abierto, estándares abiertos y servicios para computación interactiva en docenas de lenguajes de programación" (creado a partir de IPython de Fernando Pérez). Jupyter soporta entornos de ejecución en varias docenas de lenguajes de programación. El nombre del proyecto Jupyter es una referencia a los tres lenguajes de programación principales soportados por Jupyter, que son Julia, Python y R, y también es un homenaje a los cuadernos de Galileo que registran el descubrimiento de los satélites de Júpiter. El proyecto Jupyter ha desarrollado y respaldado los productos de computación interactiva Jupyter Notebook, JupyterHub y JupyterLab, la versión de próxima generación de Jupyter Notebook.
Pasos previos e instalación de Jupyter
Primero, actualiza los repositorios y los paquetes:
# apt update && apt upgradeUna vez actualizado, tendrás que instalar los paquetes necesarios:
# apt install nginx python3-certbot-nginx python3-pip python3-dev python3-virtualenvPosteriormente, elimina y/o crea un fichero para el site de NGINX:
# rm /etc/nginx/sites-enabled/default && vi /etc/nginx/sites-enabled/defaultDicho fichero debe contener la siguiente configuración (recuerda modificar el dominio de ejemplo):
##
# top-level http config for websocket headers
# If Upgrade is defined, Connection = upgrade
# If Upgrade is empty, Connection = close
# Please see https://jupyterhub.readthedocs.io/en/stable/reference/config-proxy.html for more detailed.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name ejemplo.com;
location / {
proxy_pass https://127.0.0.1:8888;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# websocket headers
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header X-Scheme $scheme;
proxy_buffering off;
}
}
Una vez guardado los cambios, puedes adquirir el certificado con Certbot:
# certbot --nginx --redirect -d ejemplo.comPosteriormente, por seguridad es recomendable no utilizar el usuario root. Por lo tanto, crea un usuario para el proyecto:
# useradd clouding && usermod -aG sudo cloudingAdicionalmente, crea un directorio para el entorno y modifica la propiedad:
# mkdir /home/clouding && chown clouding:clouding /home/cloudingY abre una sesión del usuario:
# su cloudingLuego accede al directorio creado:
# cd /home/clouding/Para crear el entorno virtual para Jupyter:
# virtualenv jupyter created virtual environment CPython3.8.10.final.0-64 in 206ms
creator CPython3Posix(dest=/home/clouding/jupyter, clear=False, global=False)
seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, pkg_resources=latest, via=copy, app_data_dir=/home/clouding/.local/share/virtualenv/seed-app-data/v1.0.1.debian.1)
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
Una vez creado, deberás entrar en el directorio del entorno:
# cd jupyter/Y actívalo:
# source bin/activateAhora dentro del entorno, podrás instalar Jupyter:
(jupyter) # pip install jupyterUna vez completada la instalación crea el fichero de configuración:
(jupyter) # jupyter notebook --generate-configPor defecto se accede con tokens a Jupyter, pero puedes utilizar contraseña:
(jupyter) # jupyter notebook passwordPosteriormente, edita el fichero de configuración:
# vi /home/clouding/.jupyter/jupyter_notebook_config.pyPara descomentar y modificar las siguiente líneas:
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.certfile = u'/etc/letsencrypt/live/ejemplo.com/fullchain.pem'
c.NotebookApp.keyfile = u'/etc/letsencrypt/live/ejemplo.com/privkey.pem'
Una vez configurado, puedes ejecutar Jupyter:
(jupyter) # jupyter notebook [I 17:00:41.941 NotebookApp] Writing notebook server cookie secret to /home/clouding/.local/share/jupyter/runtime/notebook_cookie_secret
[I 17:00:42.230 NotebookApp] Serving notebooks from local directory: /home/clouding/jupyter
[I 17:00:42.230 NotebookApp] Jupyter Notebook 6.4.10 is running at:
[I 17:00:42.230 NotebookApp] ejemplo.com:8888/
[I 17:00:42.230 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Por otra parte, si quieres que se inicie automáticamente puedes crear un servicio con systemd. Para ello crea un fichero para el servicio:
# vi /etc/systemd/system/jupyter.serviceCon el siguiente contenido:
[Unit]
Description=jupyter daemon
After=network.target
[Service]
User=clouding
Group=clouding
WorkingDirectory=/home/clouding/jupyter
ExecStart=/bin/bash -c 'source /home/clouding/jupyter/bin/activate; jupyter notebook'
[Install]
WantedBy=multi-user.target
Por último, activa y arranca el servicio creado:
# systemctl enable jupyter.service && systemctl start jupyter.service && systemctl status jupyter.serviceEsperamos haberte ayudado con este artículo🙂. Recuerda, si tienes consultas sobre esta u otra cuestión relacionada con tus servidores en Clouding, no dudes en escribir a soporte@clouding.io ¡Estamos a tu lado para lo que necesites!