ID 연계(GitLab)로 JupyterHub의 사용자 프로비저닝을 손쉽게
동기
환경
구축 절차
1. GitLab: ID 공급자 설정
2. JupyterLab + hub-extension 시작
설정 파일 만들기
이번에는 특히 JupyterHub와 관련된 설정이므로 JupyterHub의 기본 설정에서 따릅니다.
이하, 생성 커맨드 예. 다만, 출력한 설정 파일이 ROOT의 소유물이 된다. (chown라든지 필요)
docker run --rm -v ${PWD}:/etc/jupyterhub jupyterhub/jupyterhub jupyterhub --generate-config -f /etc/jupyterhub/jupyterhub_config.py
설정 파일 편집
추가하는 설정은 이하. (자세한 내용은 그 아래.)
jupyterhub_config.py에 추가 분
from oauthenticator.gitlab import LocalGitLabOAuthenticator
c.JupyterHub.authenticator_class = LocalGitLabOAuthenticator
c.LocalAuthenticator.create_system_users = True
c.Spawner.default_url = '/lab'
c.Authenticator.admin_users = {'admin', }
c.JupyterHub.authenticator_class
c.LocalAuthenticator.create_system_users
인증 및 프로비저닝을 위해. OAuthenticator 정보
... Local이 붙어 있으면, 로컬 유저의 자동 생성이 효과가 있다. (처음 붙이지 않아서 빠졌다)
c.Spawner.default_url
: 로그인 후 JupyterLab을 사용하기 위해. c.Authenticator.admin_users
: JupyterHub의 Admin 사용자 지정. 각 파일 배치
이하의 Dockerfile, YAML을 적절히 수정해, 설정 파일과 아울러 배치한다.
※ 예이므로, 데이터 영속화 등을 하지 않으므로 주의.
배치 예
.
|- dockerfile
| |- Jupyter.dockerfile
|- docker-compose.yml
|- jupyterhub_config.py
Jupyter.dockerfile
FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04
RUN apt update && \
apt install -y python3 python3-pip npm nodejs && \
npm install -g configurable-http-proxy && \
pip3 install jupyterlab oauthenticator && \
jupyter labextension install @jupyterlab/hub-extension
docker-compose.yml
version: "2.3"
services:
jupyter:
build:
- context: dockerfile
- dockerfile: Jupyter.dockerfile
runtime: nvidia
ports:
- "8000:8000"
volumes:
- "./jupyterhub_config.py:/etc/jupyterhub_config.py"
environment:
- GITLAB_URL=http://<GitLabのURL>
- OAUTH_CALLBACK_URL=先ほどの「Callback URL」
- GITLAB_CLIENT_ID=先ほどの「Application ID」
- GITLAB_CLIENT_SECRET=先ほどの「Secret」
command: jupyterhub -f /etc/jupyterhub_config.py
시작
docker-compose build
docker-compose up -d
3. 동작 확인
Jupyter 방문
→ GitLab로 리디렉션 화면이 나옵니다 (화면 1)
→ GitLab로 인증하기(화면 2)
→ JupyterHub로 리디렉션(화면 3)
→ 로그인 완료 완료 및 영역 자동 확보(Linux 사용자 자동 작성)(화면 4)
4. 주의점
GitLab의 유저명에 「. (dot)」가 포함되어 있으면, Linux측의 유저 작성에 실패해 JupyterLab가 일어나지 않기 때문에, 주의.
예)
pekora.usada
는 NG입니다. pekora_usada
OK.※ 적어도 자신이 시도했을 때는.
끝
KubeFlow에서 뭔가하고 싶습니다. .
Reference
이 문제에 관하여(ID 연계(GitLab)로 JupyterHub의 사용자 프로비저닝을 손쉽게), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/miya_sh/items/81c17193ddbd81fd5d14
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(ID 연계(GitLab)로 JupyterHub의 사용자 프로비저닝을 손쉽게), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/miya_sh/items/81c17193ddbd81fd5d14텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)