Saltar al contenido principal
Ctrl+K
Hub Champion Training - Home

About

  • Configuración
  • Code of Conduct
  • Perfiles de los estudiantes
  • Notas del instructor
  • Referencia

Episodes

  • Conoce los beneficios que tu hub puede proporcionar a tu comunidad de usuarios y usuarias
  • Control del acceso a tu hub
  • Selección de los recursos óptimos del servidor para hacer tu trabajo informático de manera responsable
  • Administración de imágenes de software
  • Navegación por el sistema de archivos y transferencia de datos desde y hacia el hub
  • Solución de problemas y soporte al usuario
  • Repository
  • Open issue
  • .md

Navegación por el sistema de archivos y transferencia de datos desde y hacia el hub

Contenido

  • Directorio home
  • Directorio compartido
  • El directorio /tmp
  • Almacenamiento de objetos en la nube
  • Compartir y administrar código con GitHub
    • Uso de gh-scoped-creds
    • Habilitación de gh-scoped-creds para tu hub

Navegación por el sistema de archivos y transferencia de datos desde y hacia el hub#

🔍 RESUMEN

Preguntas

  • ¿Dónde almaceno los archivos en el hub?

  • ¿Cómo transfiero datos desde y hacia el hub?

  • ¿Cómo autorizo a GitHub para introducir (push) y extraer (pull) código en el hub?

Objetivos

  • Reconocer y localizar tu directorio home en la interfaz de usuario de JupyterLab y RStudio

  • Distribuir conjuntos de datos de solo lectura a todos los usuarios del hub en un directorio compartido

  • Introducir (push) y extraer (pull) los repositorios de GitHub desde y hacia el hub con gh-scoped-creds

Directorio home#

Un servidor del hub incluye su propio sistema de archivos privado para el usuario y no se comparte con otros usuarios del hub. Cada usuario del hub recibe el nombre de usuario jovyan[^jovyan] y su directorio home se encuentra en

/home/jovyan

Tanto las interfaces de usuario de JupyterLab como las de RStudio abrirán automáticamente el explorador de archivos en el directorio home del usuario en la primera instancia cuando se ejecuta un servidor (consulta Figura 8 y Figura 9).

Los archivos que se guardan en el directorio home son persistentes y están disponibles en el hub cada vez que un usuario apaga e inicia un servidor.

El explorador de archivos (resaltado con un cuadro azul) en la interfaz de usuario de JupyterLab.

Figura 8 El explorador de archivos (resaltado con un cuadro azul) en la interfaz de usuario de JupyterLab.#

El explorador de archivos (resaltado con un cuadro azul) en la interfaz de usuario de RStudio.

Figura 9 El explorador de archivos (resaltado con un cuadro azul) en la interfaz de usuario de RStudio.#

La cuota de almacenamiento de los directorios home no está limitada y los costos de almacenamiento se cobran por gigabyte. Por lo tanto, sugerimos que este espacio se utilice para archivos y conjuntos de datos pequeños y no es adecuado para almacenar conjuntos de datos grandes.

Truco

Los Campeones y Campeonas del Hub son responsables de los costos ocasionados por el almacenamiento de los datos y de garantizar que sus comunidades entiendan los posibles gastos.

Ejercicio: ¿Qué puedes almacenar en tu directorio home?

Selecciona todos los que correspondan:

  • Notebooks

  • Código

  • Conjuntos de datos grandes y/o compartidos con permisos de lectura-escritura

  • Archivo de texto

  • Bases de datos pequeñas

  • Archivos de configuración

  • Conjuntos de datos de solo lectura, por ejemplo para docencia

  • Datos temporales, por ejemplo, resultados intermedios de un cálculo

Solución

  • ✅ Notebooks

  • ✅ Código

  • ❌ Conjuntos de datos grandes y/o compartidos con permisos de lectura-escritura - Considera usar el almacenamiento de objetos en la nube u otras soluciones de almacenamiento nativo en la nube

  • ✅ Archivo de texto

  • ✅ Bases de datos pequeñas

  • ✅ Archivos de configuración

  • ❌ Conjuntos de datos de solo lectura, por ejemplo, para docencia - Considera colocar estos archivos en el directorio ~/shared

  • ❌ Datos temporales, por ejemplo, resultados intermedios obtenidos a partir de un cálculo - Considera usar el directorio /tmp

Directorio compartido#

La carpeta de lectura-escritura compartida (shared-readwrite) solo se muestra para los Campeones y Campeonas del Hub.

Figura 10 La carpeta shared-readwrite sólo se muestra para los Campeones y Campeonas del Hub.#

Todos los usuarios del hub tienen acceso a un directorio shared (compartido) común desde su directorio home. Este es un directorio de solo lectura en el que los usuarios pueden acceder a archivos grandes o conjuntos de datos para su trabajo, y sus contenidos no pueden modificase ni borrarse accidentalmente.

Los Campeones y Campeonas del Hub pueden ocupar el directorio shared (compartido) colocando archivos en el directorio de shared-readwrite que aparece solo en su directorio home.

Truco

Subir datos al hub

Subir archivos al hub mediante

Haciendo clic en el botón subir (subir) que se encuentra en la parte superior del explorador de archivos.

Haciendo clic en el botón subir (subir) que se encuentra en la parte superior del explorador de archivos.

Descargar datos del hub

Descargar archivos del hub mediante

Haciendo clic derecho en el archivo/carpeta deseado y en el botón descargar (descargar).

Marcando la casilla que se encuentra junto al archivo/carpeta deseado, haciendo clic en el botón ajustes (ajustes), eligiendo la opción Export… (Exportar…) y confirmando el nombre del archivo en el cuadro de diálogo siguiente.

El directorio /tmp#

El directorio /tmp se utiliza para almacenar temporalmente archivos de corta duración. Cualquier archivo que se coloque en este directorio tendrá la duración de tu sesión y se eliminará después de que cierres la sesión.

Este directorio es una unidad SSD con acceso rápido de lectura y escritura de hasta 50 - 100 GB de espacio en disco. El caso de uso ideal para /tmp es procesar grandes conjuntos de datos que no necesitan almacenarse permanentemente.

Almacenamiento de objetos en la nube#

Tu hub se encuentra en la nube, así que otra forma de almacenar datos es utilizando el almacenamiento de objetos como Amazon S3 o Google Cloud Storage. Este tipo de almacenamiento es ideal para conjuntos de datos grandes y persistentes que, de otra manera, sería costoso almacenar en un sistema de archivos tradicional (por ejemplo, tu hogar, carpeta compartida /tmp) a largo plazo.

Este es un tema avanzado que va más allá del alcance del currículum actual de los Campeones y Campeonas del Hub. Puedes encontrar más información en la Guía de servicios del hub de 2i2c.

Ejercicio: Requisitos de datos

Piensa en los datos que tú o tu comunidad necesitan para trabajar.

  • ¿Qué tipo de datos son? Por ejemplo, datos tabulares (.csv, .xls), imágenes (.png, .jpg, .bmp), otros formatos de datos científicos (.h5, .nc, .fastq)

  • ¿Qué tamaño tiene un conjunto de datos típico?

  • ¿Dónde se almacenan los datos?

  • ¿Un grupo de colaboradores utiliza el mismo conjunto de datos?

Escribe tus ideas en nuestro documento de notas colaborativo compartido.

Compartir y administrar código con GitHub#

GitHub es una plataforma de alojamiento popular para crear, almacenar, administrar y compartir código con colaboradores. El código desarrollado en un hub puede sincronizarse con un repositorio remoto en GitHub y los cambios se rastrean en un proceso conocido como control de versiones. Esto permite a los usuarios comparar e incluso restaurar diferentes versiones del código y facilita el trabajo colaborativo en diferentes máquinas. Git es una herramienta para el control de versiones que permite la sincronización de código con GitHub. En un hub, el control de versiones del código es posible utilizando extensiones Git en la interfaz de usuario. Obtén más información sobre cómo usarlos:

  • Extensión Git para JupyterLab

  • Extensión Git para RStudio.

Recomendamos hacer operaciones git usando el protocolo HTTPS y no el SSH, ya que en el hub, HTTPS siempre funcionará detrás de un firewall o proxy.

Cuando un usuario extrae (pull) e introduce (push) código a un repositorio remoto en GitHub, se le pedirá que proporcione sus credenciales de GitHub.

Advertencia

No recomendamos que introduzcas tus credenciales de GitHub (contraseña de GitHub, tokens de acceso personal o de cualquier otro tipo) en ningún tipo de infraestructura compartida (por ejemplo, nube privada y pública, HPC, cualquier máquina remota), ya que esta información estará en riesgo.

Para JupyterLab, aconsejamos encarecidamente usar gh-scoped-creds para la autenticación en nuestros hubs.

Uso de gh-scoped-creds#

Es posible que esta función no esté habilitada para todas las configuraciones del hub. Los Campeones y Campeonas del Hub pueden consultar Habilitación de cred-gh-scoped-creds para tu hub para obtener más información.

La autorización para la introducción (push) y extracción (pull) en GitHub se maneja con gh-scoped-creds.

  1. Abre una terminal.

  2. Ejecuta el comando gh-scoped-creds.

Si el prompt no aparece y en vez de ello ves bash: gh-scoped-creds: command not found, entonces gh-scoped-creds no está instalado en la imagen seleccionada para tu servidor. Consulta la Guía de servicio del Hub - Personalizar una imagen de flujo ascendente mantenida por la comunidad para agregar paquetes a una imagen original mantenida por la comunidad.

  1. Se mostrará el siguiente prompt

    jovyan@jupyter-username:~/my-repo$ gh-scoped-creds
    You have 15 minutes to go to https://github.com/login/device and enter the code: XXXX-XXXX
    Waiting....
    

    Copia el código desde el prompt y pégalo en login/device tal como se indica.

  2. Autoriza al hub para acceder a GitHub haciendo clic en el botón verde que tiene la etiqueta Authorize (Autorizar) .

  3. Ahora deberías ser capaz de extraer (pull) e introducir (push) a GitHub desde el hub sin introducir tus credenciales.

La autorización expirará automáticamente después de 8 horas (o cuando tu servidor JupyterHub se detenga), y tendrás que repetir estos pasos para renovarla.

Consejo

Si recibes un error que dice Permission denied (Permiso denegado) después de seguir estos pasos, entonces gh-scoped-creds no fue habilitado para tu hub. Los Campeones y Campeonas del Hub deben consultar los pasos en Habilitación de cred-gh para tu hub.

Habilitación de gh-scoped-creds para tu hub#

Si esta opción no está ya habilitada para tu hub, entonces se deben seguir algunos pasos adicionales para que los Campeones y Campeonas del Hub habiliten gh-scoped-creds (requiere permisos del propietario de la organización de GitHub).

  1. Revisa que gh-scoped-creds ya no esté habilitado para tu Hub abriendo una Terminal y ejecutando

    jovyan@jupyter-username:~$ echo $GH_SCOPED_CREDS_CLIENT_ID
    
    • Si esta acción no devuelve ningún resultado, ve al siguiente paso.

    • Si esta acción devuelve un ID de cliente de la forma Iv1.xxxxxxxxxxxxxxxx, entonces ve al Paso 3.

    Una URL de la aplicación del GitHub tiene la forma https://github.com/apps/<gh-app-name>.

  2. Envía un ticket al Soporte de 2i2c y registra una solicitud de funciones para gh-scoped-creds. 2i2c creará una aplicación GitHub, proporcionará una URL pública de la aplicación de GitHub y actualizará la configuración del hub para que las variables del entorno GH_SCOPED_CREDS_CLIENT_ID y GH_SCOPED_CREDS_APP_URL estén disponibles en tu hub.

  3. Revisa que la aplicación GitHub esté instalada en tu cuenta personal de GitHub Organization/GitHub que tenga los repositorios a los que te gustaría acceder.

    • GitHub Organization: Navega a la GitHub Organization que utilizas para administrar el acceso a tu hub. En esta lección utilizamos la 2i2c-community-showcase GitHub Organization para administrar el acceso al Hub de muestra comunitario.

    • Cuenta personal de GitHub: Navega a tu repositorio personal de GitHub al que te gustaría acceder en el hub.

    • Haz clic en Settings (Configuración) > GitHub Apps (Aplicaciones de GitHub).

    • En Installed GitHub Apps (Aplicaciones instaladas del GitHub), revisa si la URL de la aplicación de GitHub proporcionada por 2i2c coincide con alguna aplicación de la lista. En la siguiente captura de pantalla, el ejemplo de la aplicación de GitHub se llama 2i2c Community Showcase Hub GitHub.Hub de muestra comunitario de 2i2c.

    Captura de pantalla de la sección Aplicaciones del GitHub instaladas que muestra una lista de las aplicaciones instaladas, es decir, la aplicación de GitHub 2i2c Community Showcase Hub.
    • Si la aplicación de GitHub no está instalada, sigue el próximo paso.

    • Si la aplicación de GitHub está instalada, ve al paso 5.

  4. Instala la aplicación GitHub en tu GitHub Organization (requiere permisos del propietario de la GitHub Organization) o en tu cuenta personal de GitHub.

    • Navega a la URL de la aplicación de GitHub proporcionada por 2i2c.

    • Haz clic en el botón gris Configure (Configuración) para instalar la aplicación GitHub.

    • Selecciona la cuenta personal de GitHub o la de GitHub Organization para la que quieres activar gh-scoped-creds.

      Captura de pantalla de la página para instalar una aplicación del GitHub que muestra cómo puedes seleccionar la organización para habilitar `gh-scoped-creds`.

      Recomendamos encarecidamente que permitas el acceso únicamente a repositorios seleccionados para tener un control de acceso más fino. Esto puede configurarse nuevamente más tarde si lo deseas.

    • Elige si habilitarás gh-scoped-creds para todos los repositorios o solo para repositorios específicos y revisa que la opción Read and write access to code (Acceso de lectura y escritura al código) esté habilitada.

      Captura de pantalla de la página para instalar una aplicación de GitHub que muestra dónde se seleccionan los repositorios para los que deseas habilitar `gh-scoped-creds` y revisar cuáles tienen permisos de lectura-escritura.
    • Haz clic en el botón verde que tiene la etiqueta Install (Instalar).

  5. Revisa que el paquete gh-scoped-creds esté instalado en tu imagen en el hub.

    • Inicia un servidor con la imagen que deseas.

    • Abre una terminal.

    • Ejecuta el comando gh-scoped-creds.

      • Continúa con Usando gh-scoped-creds normalmente.

      • Si ves bash: gh-scoped-creds: command not found, entonces gh-scoped-creds no está instalado en la imagen que seleccionaste para tu servidor. Consulta la Guía de servicio del Hub - Personalizar una imagen de flujo ascendente mantenida por la comunidad para agregar paquetes a una imagen original mantenida por la comunidad.

Ejercicio: Insertar (push) código de GitHub

Al usar la extensión Git JupyterLab para enviar (push) código a un repositorio remoto en GitHub se abre el siguiente cuadro:

Cuadro de información que solicita credenciales de GitHub como nombre de usuario y token de acceso personal.

¿Qué debes hacer?

  1. Introducir tu nombre de usuario de GitHub y el token de acceso personal tal como se solicita y después hacer clic en Save my login temporarily (Guardar mi acceso temporalmente)

  2. Hacer clic en Cancel (Cancelar), abrir una Terminal, introducir el comando gh-scoped-creds y seguir el prompt

Solución

La respuesta correcta es 2 - Nunca introduzcas tus credenciales de GitHub (contraseña de GitHub, tokens de acceso personal o de cualquier otro tipo) en ninguna infraestructura compartida (por ejemplo, nube privada y pública, HPC, cualquier máquina remota) ya que esta información estará en riesgo.

🔑 PUNTOS CLAVE

  • Los usuarios pueden almacenar pequeños archivos y conjuntos de datos en su directorio principal, los cuales persistirán entre sesiones.

  • Los Campeones y Campeonas del Hub pueden distribuir los datos mediante el directorio shared (compartido).

  • Los datos temporales para archivos intermedios pueden almacenarse en el directorio /tmp.

  • El almacenamiento de objetos en la nube se puede utilizar para almacenar conjuntos de datos grandes.

  • Utiliza gh-scoped-creds para insertar (push) y extraer (pull) código a GitHub.

Atención

Por favor, prepárate para la Parte 2 del taller completando el Ejercicio 1 del próximo episodio antes de la sesión sincrónica.


[1]

Dato curioso: jovyan es un juego con la palabra “Jovian” (Joviano), que es la forma adjetiva del planeta Júpiter 🪐. La palabra jovyan se usa para describir a los miembros de la comunidad del Proyecto Jupyter en general.

anterior

Administración de imágenes de software

siguiente

Solución de problemas y soporte al usuario

Contenido
  • Directorio home
  • Directorio compartido
  • El directorio /tmp
  • Almacenamiento de objetos en la nube
  • Compartir y administrar código con GitHub
    • Uso de gh-scoped-creds
    • Habilitación de gh-scoped-creds para tu hub

Por The Catalyst Project Team

© Copyright 2024.

Actualizado por última vez en Sep 02, 2024.