Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan autentikasi PAM
Membuat pengguna PAM JupyterHub di Amazon EMR adalah proses dua langkah. Langkah pertama adalah menambahkan pengguna ke sistem operasi yang berjalan di jupyterhub
kontainer pada simpul utama, dan menambahkan direktori home pengguna yang sesuai untuk setiap pengguna. Langkah kedua adalah menambahkan pengguna sistem operasi ini sebagai JupyterHub pengguna — proses yang dikenal sebagai daftar putih. JupyterHub Setelah JupyterHub pengguna ditambahkan, mereka dapat terhubung ke JupyterHub URL dan memberikan kredensyal sistem operasi mereka untuk akses.
Ketika pengguna log in, JupyterHub membuka instance server notebook untuk pengguna tersebut, yang disimpan di direktori home pengguna pada node master, yaitu/var/lib/jupyter/home/
. Jika instance server notebook tidak ada, JupyterHub memunculkan instance notebook di direktori home pengguna. Bagian berikut menunjukkan cara menambahkan pengguna secara individual ke sistem operasi dan ke JupyterHub, diikuti oleh skrip bash dasar yang menambahkan beberapa pengguna.username
Menambahkan pengguna sistem operasi ke kontainer
Contoh berikut pertama-tama menggunakan perintah useradd
sudo docker exec jupyterhub useradd -m -s /bin/bash -N diego
sudo docker exec jupyterhub bash -c "echo diego:diego | chpasswd"
Menambahkan JupyterHub pengguna
Anda dapat menggunakan panel Admin di JupyterHub atau REST API untuk menambahkan pengguna dan administrator, atau hanya pengguna.
Untuk menambahkan pengguna dan administrator menggunakan panel admin di JupyterHub
Connect ke master node menggunakan SSH dan masuk ke https: //:9443
MasterNodeDNS
dengan identitas yang memiliki izin administrator.Pilih Panel Kontrol, Admin.
Pilih Pengguna, Tambahkan Pengguna, atau pilih Admin, Tambahkan admin.
Untuk menambahkan pengguna menggunakan REST API
Connect ke simpul utama menggunakan SSH dan gunakan perintah berikut pada simpul utama, atau jalankan perintah sebagai langkah.
Dapatkan token administratif untuk membuat permintaan API, dan ganti
AdminToken
pada langkah berikut dengan token itu.Gunakan perintah berikut, ganti
UserName
dengan pengguna sistem operasi yang telah dibuat di dalam wadah.curl -XPOST -H "Authorization: token
AdminToken
" "https://$(hostname):9443/hub/api/users/UserName
catatan
Anda secara otomatis ditambahkan sebagai pengguna JupyterHub non-admin ketika Anda masuk ke antarmuka JupyterHub web untuk pertama kalinya.
Contoh: Skrip Bash untuk menambahkan beberapa pengguna
Contoh skrip bash berikut mengikat langkah-langkah sebelumnya di bagian ini untuk membuat banyak JupyterHub pengguna. Skrip dapat dijalankan langsung pada simpul utama, atau dapat diunggah ke Amazon S3 dan kemudian dijalankan sebagai langkah.
Skrip pertama menetapkan array nama pengguna, dan menggunakan jupyterhub token
perintah untuk membuat token API untuk administrator default, jovyan. Ini kemudian menciptakan pengguna sistem operasi di jupyterhub
kontainer untuk setiap pengguna, menetapkan kata sandi awal untuk masing-masing yang sama dengan nama pengguna mereka. Akhirnya, ia memanggil operasi REST API untuk membuat setiap pengguna masuk JupyterHub. Melewati token yang dihasilkan sebelumnya dalam skrip dan menyalurkan respon REST jq
agar lebih mudah dilihat.
# 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
Simpan skrip ke lokasi di Amazon S3 seperti s3://amzn-s3-demo-bucket/createjupyterusers.sh
. Kemudian Anda dapat menggunakan script-runner.jar
untuk menjalankannya sebagai langkah.
Contoh: Menjalankan skrip saat membuat sebuah klaster (AWS CLI)
catatan
Karakter lanjutan baris Linux (\) disertakan agar mudah dibaca Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).
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"]
Menjalankan skrip pada klaster yang ada (AWS CLI)
catatan
Karakter lanjutan baris Linux (\) disertakan agar mudah dibaca Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).
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"]