As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usar autenticação PAM
A criação de usuários do PAM JupyterHub no Amazon EMR é um processo de duas etapas. A primeira etapa é adicionar usuários ao sistema operacional em execução no contêiner jupyterhub
no nó principal e adicionar um diretório inicial do usuário correspondente para cada usuário. A segunda etapa é adicionar esses usuários do sistema operacional como JupyterHub usuários — um processo conhecido como lista branca em. JupyterHub Depois que um JupyterHub usuário é adicionado, ele pode se conectar ao JupyterHub URL e fornecer suas credenciais do sistema operacional para acesso.
Quando um usuário faz login, JupyterHub abre a instância do servidor do notebook para esse usuário, que é salva no diretório inicial do usuário no nó principal, que é/var/lib/jupyter/home/
. Se uma instância do servidor do notebook não existir, JupyterHub gera uma instância do notebook no diretório inicial do usuário. As seções a seguir demonstram como adicionar usuários individualmente ao sistema operacional e ao sistema operacional JupyterHub, seguido por um script bash rudimentar que adiciona vários usuários.username
Adicionar um usuário do sistema operacional ao contêiner
O exemplo a seguir usa primeiro o comando useradd
sudo docker exec jupyterhub useradd -m -s /bin/bash -N diego
sudo docker exec jupyterhub bash -c "echo diego:diego | chpasswd"
Adicionando um JupyterHub usuário
Você pode usar o painel do administrador JupyterHub ou a API REST para adicionar usuários e administradores, ou apenas usuários.
Para adicionar usuários e administradores usando o painel de administração no JupyterHub
Conecte-se ao nó principal usando SSH e faça login em https: //:9443
MasterNodeDNS
com uma identidade que tenha permissões de administrador.Escolha Control Panel (Painel de Controle), Admin.
Escolha User (Usuário), Add Users (Adicionar usuários) ou escolha Admin, Add Admins (Adicionar admins).
Para adicionar um usuário usando a API REST
Conecte-se ao nó principal usando o SSH e use o seguinte comando no nó principal, ou execute o comando como uma etapa.
Adquira um token administrativo para fazer solicitações de API e substitua-o
AdminToken
na etapa seguinte por esse token.Use o comando a seguir,
UserName
substituindo-o por um usuário do sistema operacional que tenha sido criado dentro do contêiner.curl -XPOST -H "Authorization: token
AdminToken
" "https://$(hostname):9443/hub/api/users/UserName
nota
Você é automaticamente adicionado como usuário JupyterHub não administrador ao fazer login na interface da JupyterHub web pela primeira vez.
Exemplo: script Bash para adicionar vários usuários
O exemplo de script bash a seguir reúne as etapas anteriores desta seção para criar vários JupyterHub usuários. O script pode ser executado diretamente no nó principal, ou pode ser carregado no Amazon S3 e, em seguida, executado como uma etapa.
O script primeiro estabelece uma matriz de nomes de usuário e usa o comando jupyterhub token
para criar um token de API para o administrador padrão, jovyan. Em seguida, ele cria um usuário do sistema operacional no contêiner jupyterhub
para cada usuário, atribuindo uma senha inicial a cada um que é igual ao seu nome de usuário. Por fim, ele chama a operação da API REST para criar cada usuário em JupyterHub. Ele transmite o token gerado anteriormente no script e envia a resposta REST para o jq
para facilitar a visualização.
# 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
Salve o script em um local do Amazon S3, como s3://amzn-s3-demo-bucket/createjupyterusers.sh
. Em seguida, você pode usar o script-runner.jar
para executá-lo como uma etapa.
Exemplo: executar o script ao criar um cluster (AWS CLI)
nota
Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).
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"]
Executar o script em um cluster existente (AWS CLI)
nota
Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).
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"]