Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de la autenticación PAM
La creación de usuarios de PAM JupyterHub en Amazon EMR es un proceso de dos pasos. El primer paso es añadir usuarios al sistema operativo que se está ejecutando en el contenedor jupyterhub
del nodo principal y añadir un directorio de inicio correspondiente a cada usuario. El segundo paso consiste en añadir a estos usuarios del sistema operativo como JupyterHub usuarios, un proceso que se conoce como inclusión en una lista blanca. JupyterHub Una vez agregado un JupyterHub usuario, este puede conectarse a la JupyterHub URL y proporcionar las credenciales de acceso de su sistema operativo.
Cuando un usuario inicia sesión, JupyterHub abre la instancia del servidor portátil de ese usuario, que se guarda en el directorio principal del usuario en el nodo principal, que es/var/lib/jupyter/home/
. Si no existe una instancia de servidor de notebook, JupyterHub genera una instancia de notebook en el directorio principal del usuario. En las siguientes secciones se muestra cómo añadir usuarios de forma individual al sistema operativo y al mismo JupyterHub, seguido de un rudimentario script bash que añade varios usuarios.username
Agregar un usuario de sistema operativo al contenedor
El siguiente ejemplo primero usa el comando useradd
sudo docker exec jupyterhub useradd -m -s /bin/bash -N diego
sudo docker exec jupyterhub bash -c "echo diego:diego | chpasswd"
Añadir un usuario JupyterHub
Puede usar el panel de administración JupyterHub o la API REST para agregar usuarios y administradores, o solo usuarios.
Para añadir usuarios y administradores mediante el panel de administración de JupyterHub
Conéctese al nodo principal mediante SSH e inicie sesión en https: //:9443
MasterNodeDNS
con una identidad que tenga permisos de administrador.Elija Control Panel (Panel de control), Admin (Administración).
Elija User (Usuario), Add Users (Añadir usuarios) o elija Admin (Administrador), Add Admins (Añadir administradores).
Para añadir un usuario con la API de REST
Conéctese al nodo principal con SSH y utilice el siguiente comando en él o ejecute el comando como un paso.
Adquiera un token administrativo para realizar solicitudes a la API y sustitúyalo por ese token
AdminToken
en el siguiente paso.Usa el siguiente comando y
UserName
sustitúyelo por un usuario del sistema operativo que se haya creado en el contenedor.curl -XPOST -H "Authorization: token
AdminToken
" "https://$(hostname):9443/hub/api/users/UserName
nota
Al iniciar sesión en la interfaz JupyterHub web por primera vez, se le añade automáticamente como usuario JupyterHub no administrador.
Ejemplo: script bash para agregar varios usuarios
El siguiente ejemplo de script bash combina los pasos anteriores de esta sección para crear varios JupyterHub usuarios. El script puede ejecutarse directamente en el nodo maestro o puede cargarse en Amazon S3 y, a continuación, ejecutarse como un paso.
El script establece primero una matriz de nombres de usuario y utiliza el comando jupyterhub token
para crear un token de API para el administrador predeterminado, jovyan. A continuación, crea un usuario de sistema operativo en el contenedor jupyterhub
para cada usuario, asignando a cada uno una contraseña inicial igual que su nombre de usuario. Por último, llama a la operación de la API REST para crear cada usuario. JupyterHub Pasa el token generado anteriormente en el script y canaliza la respuesta REST a jq
para facilitar su visualización.
# Bulk add users to container and JupyterHub with temp password of username
set -x
USERS=(shirley diego ana richard li john mary anaya)
TOKEN=$(sudo docker exec jupyterhub /opt/conda/bin/jupyterhub token jovyan | tail -1)
for i in "${USERS[@]}";
do
sudo docker exec jupyterhub useradd -m -s /bin/bash -N $i
sudo docker exec jupyterhub bash -c "echo $i:$i | chpasswd"
curl -XPOST --silent -k https://$(hostname):9443/hub/api/users/$i \
-H "Authorization: token $TOKEN" | jq
done
Guarde el script en una ubicación en Amazon S3, como s3://amzn-s3-demo-bucket/createjupyterusers.sh
. A continuación, puede utilizar script-runner.jar
para ejecutarlo como un paso.
Ejemplo: ejecución del script al crear un clúster (AWS CLI)
nota
Se incluyen caracteres de continuación de línea de Linux (\) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).
aws emr create-cluster --name="
MyJupyterHubCluster
" --release-label emr-5.36.2 \ --applications Name=JupyterHub --log-uris3://amzn-s3-demo-bucket/MyJupyterClusterLogs
\ --use-default-roles --instance-type m5.xlarge --instance-count2
--ec2-attributes KeyName=MyKeyPair
\ --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\ Jar=s3://region
.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://amzn-s3-demo-bucket/createjupyterusers.sh"]
Ejecución del script en un clúster existente (AWS CLI)
nota
Se incluyen caracteres de continuación de línea de Linux (\) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).
aws emr add-steps --cluster-id
j-XXXXXXXX
--steps Type=CUSTOM_JAR,\ Name=CustomJAR,ActionOnFailure=CONTINUE,\ Jar=s3://region
.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://amzn-s3-demo-bucket/createjupyterusers.sh"]