JupyterHub
をテンプレートにして作成
[
トップ
] [
タイトル一覧
|
ページ一覧
|
新規
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
** JupyterHub [#mb71944e]
*** Over View
- マルチユーザのための [[Jupyter]] サーバー(ユーザ認証機...
- https://github.com/jupyterhub/jupyterhub
- https://github.com/gatoniel/jupyterhub 改良版
- https://jupyterhub.readthedocs.io/en/0.7.2/getting-star...
- https://horomary.hatenablog.com/entry/2019/11/09/181614
- see also: ''[[Jupyter]]''
- see also: [[Docker]], [[Podman]]
- see also: [[Kubernetes]], [[PodmanSpawner]]
- see also: [[configurable-http-proxy]]
- [[DockerSpawner>./DockerSpawner]]
- [[LTIDockerSpawner>./LTIDockerSpawner]]
- [[LTIPodmanSpawner>./LTIPodmanSpawner]]
- [[Moodle+JupyterHub]]
- [[開発>./devel]]
- [[API>./API]]
** Latest Trouble Shooting [#y59ed799]
*** Internal Server Error 500 [#pfdb0ef3]
**** Error starting server XXXX: 500 Server Error for 20...
<pre>
Jun 3 18:07:39 castor1 jupyterhub[8182]: [E 2024-06-03 1...
Error starting server XXXX: 500 Server Error for http+doc...
156e13cd92fbcaea275b1bfb6508fff5cd46ff923012a6cc1c587468f...
You have to remove that container to be able to reuse tha...
</pre>
+ volatile-containers.json のエントリ削除
+ docker rm 156e13cd92fbcaea275b1bfb6508fff5cd46ff923012a...
+ jupyterhub 再起動で直った
**** 2023/12/27 docker.errors.DockerException: Error whil...
- エラーが出て全く繋がらん! けしからん! Proxy を作り直...
- requests が 2.30.0 だと動かんらしい.
pip install requests==2.29.0
**** podman での Internal Server Error 500 [#v573988b]
- /var/lib/containers/storage/overlay-containers/[[volati...
- ロックを外すプログラムを [[LTIContainerSpawner]] に実装...
** INSTALL [#nfb5f43c]
*** Rocky Linux 8 [#g6e6c1d1]
- [[Detail Log>./RockyLinux8_install]]
*** pip [#ecfe7cfb]
*** conda [#n0e2837f]
- conda update -c conda-forge jupyterhub -y
*** for CentOS 8.5 with pip [#l08667b3]
# yum install python3
# pip3 install --upgrade pip
# yum install npm
# npm install -g configurable-http-proxy
# pip install setuptools_rust
# pip install jupyterhub
# pip install dockerspawner
# pip install --upgrade notebook
# pip install --upgrade jupyterlab
# jupyterhub --version
# jupyter --version
# jupyter notebook --version
# jupyter lab --version
*** 2.0.0 with conda [#e269f8c5]
**** Change Log [#qacdfa95]
- https://jupyterhub.readthedocs.io/en/stable/changelog.h...
**** Install [#j385e508]
(base) # conda install -c conda-forge conda==4.11.0 -y
(base) # conda activate jupyterhub
(jupyterhub) # conda update -c conda-forge jupyterhub -y
(jupyterhub) # jupyterhub --upgrade-db
(jupyterhub) # jupyterhub -f .....
**** podmanspawner.PodmanSpawner [#nefeece2]
- おおっ class のサンプルに Podman がある!
-- と思ったら niklas netter 氏の [[podmanspawner>https://...
**** websocket モジュールが無いとのことで起動しなくなった...
ModuleNotFoundError: No module named 'websocket'
- conda 環境で websocket をインストール
# conda install -c conda-forge websocket-client
- pip なら pip install websockets
**** データベースのスキーマが合わないとのことで,起動しな...
- jupyterhub upgrade-db してもだめなので,/var/lib/jupyte...
*** 1.4.2 [#i2818e12]
**** conda を使用 [#z4c989ab]
(base) # conda create -n jupyterhub python=3.8 -y
(base) # conda activate jupyterhub
(jupyterhub) # conda install -c conda-forge notebook -y
(jupyterhub) # conda install -c conda-forge jupyterlab -y
(jupyterhub) # conda install -c conda-forge jupyterhub==...
(jupyterhub) # conda install -c conda-forge voila -y
(jupyterhub) # conda install jupyter_client -y
(jupyterhub) # git clone https://github.com/jupyterhub/n...
(jupyterhub) # pip install -e nativeauthenticator (認...
(jupyterhub) # pip install dockerspawner
- ディレクトリのパーミッションの設定を忘れずに!
- nodejs: CentOS7 の場合は nodejs はバージョンが古くて,c...
curl -sL https://rpm.nodesource.com/setup_14.x | bash -
yum remove nodejs npm -y
yum install nodejs -y
node -v
-- nodejs のバージョンがアップしない場合は,/var/tmp/yum...
-- https://rpm.nodesource.com/setup_##.x は非推奨となった...
--- see https://github.com/nodesource/distributions
npm install -g configurable-http-proxy
python3 -m pip install jupyterhub
python3 -m pip install dockerspawner
python3 -m pip install --upgrade notebook
python3 -m pip install --upgrade jupyterlab
*** Notebook の Docker イメージ [#s9b5f83a]
# docker pull jupyter/datascience-notebook
# docker pull jupyter/tensorflow-notebook
*** Version Up 1.0.0 -> 1.4.1 [#f7719705]
# conda install -c conda-forge jupyterhub
# conda install notebook
**** バージョンの確認 [#m3c5a1bd]
- (jupyterhub) # jupyterhub --version
*** [[LTI Authenticator>LTI]] [#g284e3bf]
- Moodle と連携する為の 認証モジュール(Moodleの外部サー...
- 先に authlib を入れておく.
-- conda install oauthlib or pip install oauthlib
- v1.2.0 release (2021 9/2)
-- https://pypi.org/project/jupyterhub-ltiauthenticator/1...
-- Moodle に対して Patch 不要
(jupyterhub)# pip install --upgrade jupyterhub-ltiauthen...
** 設定 [#idb49705]
- https://zero-to-jupyterhub.readthedocs.io/en/latest/cus...
- https://zero-to-jupyterhub.readthedocs.io/en/latest/adm...
- jupyterhub --generate-config を実行すると カレントディ...
- 個人的には jupyterhub が /usr/local 以下にある場合は /u...
- 設定ファイルは拡張子が .py でないと,読み込まれない場合...
*** Authenticator Class (authenticator_class) [#g1e9cdae]
**** auth.DummyAuthenticator [#g40f4bb4]
- その名の通りダミー.認証無し.
- 全てのユーザを許可する.(一応パスワード入力欄は表示さ...
**** jupyterhub.auth.PAMAuthenticator (default) [#n3ace...
- 認証に[[PAM]]を使用する.恐らくサービスは login
- v1.1.0 にバグあり. [[Trouble Shooting>#rf83821d]] 参照.
**** nativeauthenticator.NativeAuthenticator [#u43dca72]
- 追加モジュール(オプション)
- 詳細は検証中
**** [[LDAP]]: ldapauthenticator.LDAPAuthenticator [#n1c5...
- LDap 認証用.
- モジュールのInstall
(jupyterhub) # conda install -c conda-forge jupyterhub-l...
- jupyterhub_config.py
102 # for LDAP
103 c.JupyterHub.authenticator_class = 'ldapauthenticato...
104 #c.LDAPAuthenticator.server_address = '202.26.150.*'
105 c.LDAPAuthenticator.server_address = '202.26.144.*'
106 c.LDAPAuthenticator.use_ssl = True
107
108 ## AD: template 付き(ユーザバインド)
109 c.LDAPAuthenticator.lookup_dn = False
110 c.LDAPAuthenticator.bind_dn_template = [
111 'cn={username},ou=教員,ou=ユーザー,dc=edutuis,dc...
112 'cn={username},ou=学生,ou=ユーザー,dc=edutuis,dc...
113 ]
114 c.LDAPAuthenticator.user_search_base = 'dc=edutuis,d...
115 c.LDAPAuthenticator.user_attribute = 'sAMAccountName'
116
117 ## AD: template なし
118 #c.LDAPAuthenticator.lookup_dn = True
119 #c.LDAPAuthenticator.user_search_base = 'dc=edutuis,...
120 #c.LDAPAuthenticator.user_attribute = 'sAMAccountName'
121 #c.LDAPAuthenticator.lookup_dn_search_user = 'cn=lda...
122 #c.LDAPAuthenticator.lookup_dn_search_password = '**...
123 #c.LDAPAuthenticator.lookup_dn_user_dn_attribute = '...
124
125 ## NSL: username から dn が探せる場合(ユーザバイン...
126 #c.LDAPAuthenticator.lookup_dn = False
127 #c.LDAPAuthenticator.bind_dn_template = 'cn={usernam...
128
129 ## NSL: ツリーを検索する場合
130 #c.LDAPAuthenticator.lookup_dn = True
131 #c.LDAPAuthenticator.user_search_base = 'ou=user,dc=...
132 #c.LDAPAuthenticator.user_attribute = 'uid'
133 #c.LDAPAuthenticator.lookup_dn_search_user = 'cn=Man...
134 #c.LDAPAuthenticator.lookup_dn_search_password = '**...
135 #c.LDAPAuthenticator.lookup_dn_user_dn_attribute = '...
136
**** [[LTI]] モジュール [#m4467ad6]
*** Server Class [#dded2dd0]
**** jupyterhub.spawner.LocalProcessSpawner (default)[#...
- [[LocalProcessSpawner >./LocalProcessSpawner]]
- サーバに,各ユーザの環境でアクセスできる.
- Jupiter Notebook はサーバにインストールされている物を使...
- 通常作業ディレクトリは /home/{username}/notebook (v1...
- 使用ポートは 8000/tcp, 8081/tcp
**** jupyterhub.spawner.SimpleLocalProcessSpawner [#eb28d...
- 名前がややこしい
- 詳細は不明(検証する気はあまりない)
**** dockerspawner.DockerSpawner [#dc30b0cf]
- [[''DockerSpawner''>./DockerSpawner]]
- https://github.com/jupyterhub/dockerspawner
- サーバでユーザ毎に ''[[Docker]]'' でNotebook コンテナを...
- 作業ホームは /home/jovjan/work 固定(多分 Docker Image...
- 使用ポートは 8000/tcp, 8081/tcp, 8001/tcp
- Install
(jupyterhub) # pip --no-cache-dir install git+https://gi...
or
(jupyterhub) # pip install dockerspawner
**** dockerspawner.SystemUserSpawner [#x578909e]
- [[''SystemUserSpawner''>./SystemUserSpawner]]
- https://github.com/jupyterhub/dockerspawner/blob/master...
- dockerspawner.DockerSpawner からの派生クラス
- DockerSpawner と同じパッケージ? 特にインストールして...
- jovyan ではなく,ログインユーザで使用可.ログインユーザ...
- ただしログインユーザの情報がローカルに取れない場合(LDA...
-- 作りこめば大丈夫かもしれん.
**** dockerspawner.SwarmSpawner [#vad945d1]
- [[SwarmSpawner>./SwarmSpawner]]
- dockerspawner.DockerSpawner からの派生クラス
- DockerSpawner と同じパッケージ
- クラスタリング用.
- コンテナを [[Docker Compose]] で管理し,複数のサーバー...
- 使用ポートは 8000/tcp, 8081/tcp, 8001/tcp, 2377/tcp, 79...
**** niicloudoperation/jupyterhub-singleuser [#ld71d218]
- NII開発.自由度低し(個人的感想).[[CoursewareHub]] 用...
- https://github.com/NII-cloud-operation/CoursewareHub-LC...
- Document: https://github.com/nii-gakunin-cloud/ocs-temp...
- [[dockerspawner.SwarmSpawner>./SwarmSpawner]] からの派...
- 検証中
- INSTALL
(jupyterhub) # git clone https://github.com/NII-cloud-op...
(jupyterhub) # cd CoursewareHub-LC_platform/jupyterhub/s...
(jupyterhub) # pip --no-cache-dir install .
*** jovyan って誰? [#w4a21247]
- DockerSpawner を使用すると,作業ディレクトリが /home/jo...
- c.DockerSpawner.notebook_dir 辺りをいじっても変化しない?
- https://github.com/jupyter/docker-stacks/issues/358
** 実行 [#a826d7f6]
**** 前準備 [#xa875240]
# cd /etc/pki/tls
# openssl req -new -newkey rsa:2048 -days 3650 -nodes -k...
# openssl x509 -in server.csr -days 3650 -req -signkey p...
# vi /usr/local/etc/jupyterhub/jupyterhub_config.py
# mkdir /var/lib/jupyterhub
**** 実行 [#k5a94b0c]
(base) # conda activate jupyterhub
(jupyterhub) # jupyterhub -f /usr/local/etc/jupyterhub/j...
- --no-ssl は0.7で廃止された
** Log [#s553f415]
*** LC_nblineage [#q1878f8f]
- https://github.com/NII-cloud-operation/Jupyter-LC_nblin...
-- lab では動かない!
*** LC_wrapper [#q23dcf44]
- https://github.com/NII-cloud-operation/Jupyter-LC_wrapper
** 情報ソース [#s02d97ba]
*** Notebook [#i00ecdd5]
**** Docker Images [#yceb54d2]
***** niicloudoperation/notebook [#b9ddd7f8]
- docker pull niicloudoperation/notebook
*** Spawner [#v67998b2]
**** [[Docker]] [#e1984289]
- https://github.com/jupyterhub/dockerspawner
**** [[Podman]] [#t1db1fc3]
- https://github.com/gatoniel/podmanspawner
**** [[Kubernetes]] [#af74888d]
- https://github.com/jupyterhub/zero-to-jupyterhub-k8s
- https://zero-to-jupyterhub.readthedocs.io/en/latest/
** DB [#v881917b]
*** MySQL [#ge9c722d]
- [[SQLAlchemy]] で PyMySQL ドライバを使用する
- pool_recycle の設定を忘れずに!
- charset は urf8mb4
** NVIDIA [#o78e60f8]
*** Driver [#n52aa03b]
**** nouveau ドライバ(デフォルトのグラフィックドライバ)...
- lsmod | grep nouveau でドライバ確認
- /etc/default/grab のオプションに rd.driver.blacklist=no...
- カーネル設定ファイルの作り直し
-- grub2-mkconfig -o /boot/grub2/grub.cfg (RedHat系)
-- grub-mkconfig -o /boot/grub/grub.cfg (Debian系)
**** Driver [#r1aed2e1]
- nvidia-driver, cuda をインストール
**** Docker [#t87b07eb]
- nvidia-container-toolkit が必要
-- コンテナ内からホストのGPUを使う
-- %%nvidia-smi などのコマンドがインストールされる.%%
*** Tool Kit [#z51a5c81]
- CUDA Toolkit : https://developer.nvidia.com/cuda-toolki...
- Tool Kit をインストールするとドライバもインストールされ...
*** Docker [#xa8f93e3]
- docker run --gpus all nvidia/cuda:12.2.0-devel-ubuntu20...
-- Failed to initialize NVML: Unknown Error
-- ホストの /etc/nvidia-container-runtime/config.toml を...
** Trouble Shooting [#rf83821d]
*** Internal Server Error 500
**** volatile-containers.json から(を)削除してもダメ
- /var/log/message を確認して,該当コンテナIDを探し,dock...
- docker ps -a では表示されないけど docker rm できる.
**** どうしても特定ユーザがログインできない(Podman)
- /var/lib/containers/storage/overlay-containers/[[volati...
<pre>
Request Failed(Internal Server Error): container create: ...
</pre>
*** ltiauthenticator [#s373921d]
- https://pypi.org/project/jupyterhub-ltiauthenticator/
**** Jupyterhub 4.0.0 [#b81f6caf]
- 403 : Forbidden '_xsrf' argument missing from POST の...
-- JupyterHub で XSRFのチェックを強化したらしい
- /usr/local/lib/python3.9/site-packages/jupyterhub/handl...
-- def check_xsrf_cookie(self)
--- super().check_xsrf_cookie() で例外発生
--- 親は tornado のRequestHandlerか?
- 2023 5/29 時点でこのバグは修正されている.
*** JupyterLab [#m9f4d2fd]
**** JupyterHub をバージョンアップしたら Jupyter Labが起...
- 起動する JupyterHub(ex. 2.0.1)とイメージ内のJupyterHu...
*** 日本語のBUG [#ece06e7b]
- 日本語のファイルやディレクトリでコピーなどを行うと errn...
*** [[PAM]] [#cb278bbe]
**** JupyterHub: PAM使用時に 再login するとPAMの認証エラ...
- 認証モジュールに jupyterhub.auth.PAMAuthenticator を使...
-- c.JupyterHub.authenticator_class = 'jupyterhub.auth.PA...
- バグだろ.
- Resolve: jupyterhub_config.py に ''c.PAMAuthenticator.o...
- see: https://github.com/jupyterhub/jupyterhub/issues/486
**** swarm モードだと v1.1.0 でPAM認証のエラーを起こす. ...
- 上記バグもこれか?
- 1.0.0 に戻す.
(jupyterhub) # conda uninstall jupyterhub
(jupyterhub) # conda -c conda-forge install jupyterhub==...
*** homeディレクトの名前を変えたら,ログインできなくなっ...
- ~/.cache, ~/.jupyter, ~/.local ができているので消す.
*** Programing [#uef8ed38]
**** docker [#g330446b]
- https://docker-py.readthedocs.io/en/stable/api.html
- APIClient 呼び出しメソッド順
-- inspect_image
-- inspect_container
-- inspect_image
-- start
-- port
**** podman [#u96870cc]
終了行:
** JupyterHub [#mb71944e]
*** Over View
- マルチユーザのための [[Jupyter]] サーバー(ユーザ認証機...
- https://github.com/jupyterhub/jupyterhub
- https://github.com/gatoniel/jupyterhub 改良版
- https://jupyterhub.readthedocs.io/en/0.7.2/getting-star...
- https://horomary.hatenablog.com/entry/2019/11/09/181614
- see also: ''[[Jupyter]]''
- see also: [[Docker]], [[Podman]]
- see also: [[Kubernetes]], [[PodmanSpawner]]
- see also: [[configurable-http-proxy]]
- [[DockerSpawner>./DockerSpawner]]
- [[LTIDockerSpawner>./LTIDockerSpawner]]
- [[LTIPodmanSpawner>./LTIPodmanSpawner]]
- [[Moodle+JupyterHub]]
- [[開発>./devel]]
- [[API>./API]]
** Latest Trouble Shooting [#y59ed799]
*** Internal Server Error 500 [#pfdb0ef3]
**** Error starting server XXXX: 500 Server Error for 20...
<pre>
Jun 3 18:07:39 castor1 jupyterhub[8182]: [E 2024-06-03 1...
Error starting server XXXX: 500 Server Error for http+doc...
156e13cd92fbcaea275b1bfb6508fff5cd46ff923012a6cc1c587468f...
You have to remove that container to be able to reuse tha...
</pre>
+ volatile-containers.json のエントリ削除
+ docker rm 156e13cd92fbcaea275b1bfb6508fff5cd46ff923012a...
+ jupyterhub 再起動で直った
**** 2023/12/27 docker.errors.DockerException: Error whil...
- エラーが出て全く繋がらん! けしからん! Proxy を作り直...
- requests が 2.30.0 だと動かんらしい.
pip install requests==2.29.0
**** podman での Internal Server Error 500 [#v573988b]
- /var/lib/containers/storage/overlay-containers/[[volati...
- ロックを外すプログラムを [[LTIContainerSpawner]] に実装...
** INSTALL [#nfb5f43c]
*** Rocky Linux 8 [#g6e6c1d1]
- [[Detail Log>./RockyLinux8_install]]
*** pip [#ecfe7cfb]
*** conda [#n0e2837f]
- conda update -c conda-forge jupyterhub -y
*** for CentOS 8.5 with pip [#l08667b3]
# yum install python3
# pip3 install --upgrade pip
# yum install npm
# npm install -g configurable-http-proxy
# pip install setuptools_rust
# pip install jupyterhub
# pip install dockerspawner
# pip install --upgrade notebook
# pip install --upgrade jupyterlab
# jupyterhub --version
# jupyter --version
# jupyter notebook --version
# jupyter lab --version
*** 2.0.0 with conda [#e269f8c5]
**** Change Log [#qacdfa95]
- https://jupyterhub.readthedocs.io/en/stable/changelog.h...
**** Install [#j385e508]
(base) # conda install -c conda-forge conda==4.11.0 -y
(base) # conda activate jupyterhub
(jupyterhub) # conda update -c conda-forge jupyterhub -y
(jupyterhub) # jupyterhub --upgrade-db
(jupyterhub) # jupyterhub -f .....
**** podmanspawner.PodmanSpawner [#nefeece2]
- おおっ class のサンプルに Podman がある!
-- と思ったら niklas netter 氏の [[podmanspawner>https://...
**** websocket モジュールが無いとのことで起動しなくなった...
ModuleNotFoundError: No module named 'websocket'
- conda 環境で websocket をインストール
# conda install -c conda-forge websocket-client
- pip なら pip install websockets
**** データベースのスキーマが合わないとのことで,起動しな...
- jupyterhub upgrade-db してもだめなので,/var/lib/jupyte...
*** 1.4.2 [#i2818e12]
**** conda を使用 [#z4c989ab]
(base) # conda create -n jupyterhub python=3.8 -y
(base) # conda activate jupyterhub
(jupyterhub) # conda install -c conda-forge notebook -y
(jupyterhub) # conda install -c conda-forge jupyterlab -y
(jupyterhub) # conda install -c conda-forge jupyterhub==...
(jupyterhub) # conda install -c conda-forge voila -y
(jupyterhub) # conda install jupyter_client -y
(jupyterhub) # git clone https://github.com/jupyterhub/n...
(jupyterhub) # pip install -e nativeauthenticator (認...
(jupyterhub) # pip install dockerspawner
- ディレクトリのパーミッションの設定を忘れずに!
- nodejs: CentOS7 の場合は nodejs はバージョンが古くて,c...
curl -sL https://rpm.nodesource.com/setup_14.x | bash -
yum remove nodejs npm -y
yum install nodejs -y
node -v
-- nodejs のバージョンがアップしない場合は,/var/tmp/yum...
-- https://rpm.nodesource.com/setup_##.x は非推奨となった...
--- see https://github.com/nodesource/distributions
npm install -g configurable-http-proxy
python3 -m pip install jupyterhub
python3 -m pip install dockerspawner
python3 -m pip install --upgrade notebook
python3 -m pip install --upgrade jupyterlab
*** Notebook の Docker イメージ [#s9b5f83a]
# docker pull jupyter/datascience-notebook
# docker pull jupyter/tensorflow-notebook
*** Version Up 1.0.0 -> 1.4.1 [#f7719705]
# conda install -c conda-forge jupyterhub
# conda install notebook
**** バージョンの確認 [#m3c5a1bd]
- (jupyterhub) # jupyterhub --version
*** [[LTI Authenticator>LTI]] [#g284e3bf]
- Moodle と連携する為の 認証モジュール(Moodleの外部サー...
- 先に authlib を入れておく.
-- conda install oauthlib or pip install oauthlib
- v1.2.0 release (2021 9/2)
-- https://pypi.org/project/jupyterhub-ltiauthenticator/1...
-- Moodle に対して Patch 不要
(jupyterhub)# pip install --upgrade jupyterhub-ltiauthen...
** 設定 [#idb49705]
- https://zero-to-jupyterhub.readthedocs.io/en/latest/cus...
- https://zero-to-jupyterhub.readthedocs.io/en/latest/adm...
- jupyterhub --generate-config を実行すると カレントディ...
- 個人的には jupyterhub が /usr/local 以下にある場合は /u...
- 設定ファイルは拡張子が .py でないと,読み込まれない場合...
*** Authenticator Class (authenticator_class) [#g1e9cdae]
**** auth.DummyAuthenticator [#g40f4bb4]
- その名の通りダミー.認証無し.
- 全てのユーザを許可する.(一応パスワード入力欄は表示さ...
**** jupyterhub.auth.PAMAuthenticator (default) [#n3ace...
- 認証に[[PAM]]を使用する.恐らくサービスは login
- v1.1.0 にバグあり. [[Trouble Shooting>#rf83821d]] 参照.
**** nativeauthenticator.NativeAuthenticator [#u43dca72]
- 追加モジュール(オプション)
- 詳細は検証中
**** [[LDAP]]: ldapauthenticator.LDAPAuthenticator [#n1c5...
- LDap 認証用.
- モジュールのInstall
(jupyterhub) # conda install -c conda-forge jupyterhub-l...
- jupyterhub_config.py
102 # for LDAP
103 c.JupyterHub.authenticator_class = 'ldapauthenticato...
104 #c.LDAPAuthenticator.server_address = '202.26.150.*'
105 c.LDAPAuthenticator.server_address = '202.26.144.*'
106 c.LDAPAuthenticator.use_ssl = True
107
108 ## AD: template 付き(ユーザバインド)
109 c.LDAPAuthenticator.lookup_dn = False
110 c.LDAPAuthenticator.bind_dn_template = [
111 'cn={username},ou=教員,ou=ユーザー,dc=edutuis,dc...
112 'cn={username},ou=学生,ou=ユーザー,dc=edutuis,dc...
113 ]
114 c.LDAPAuthenticator.user_search_base = 'dc=edutuis,d...
115 c.LDAPAuthenticator.user_attribute = 'sAMAccountName'
116
117 ## AD: template なし
118 #c.LDAPAuthenticator.lookup_dn = True
119 #c.LDAPAuthenticator.user_search_base = 'dc=edutuis,...
120 #c.LDAPAuthenticator.user_attribute = 'sAMAccountName'
121 #c.LDAPAuthenticator.lookup_dn_search_user = 'cn=lda...
122 #c.LDAPAuthenticator.lookup_dn_search_password = '**...
123 #c.LDAPAuthenticator.lookup_dn_user_dn_attribute = '...
124
125 ## NSL: username から dn が探せる場合(ユーザバイン...
126 #c.LDAPAuthenticator.lookup_dn = False
127 #c.LDAPAuthenticator.bind_dn_template = 'cn={usernam...
128
129 ## NSL: ツリーを検索する場合
130 #c.LDAPAuthenticator.lookup_dn = True
131 #c.LDAPAuthenticator.user_search_base = 'ou=user,dc=...
132 #c.LDAPAuthenticator.user_attribute = 'uid'
133 #c.LDAPAuthenticator.lookup_dn_search_user = 'cn=Man...
134 #c.LDAPAuthenticator.lookup_dn_search_password = '**...
135 #c.LDAPAuthenticator.lookup_dn_user_dn_attribute = '...
136
**** [[LTI]] モジュール [#m4467ad6]
*** Server Class [#dded2dd0]
**** jupyterhub.spawner.LocalProcessSpawner (default)[#...
- [[LocalProcessSpawner >./LocalProcessSpawner]]
- サーバに,各ユーザの環境でアクセスできる.
- Jupiter Notebook はサーバにインストールされている物を使...
- 通常作業ディレクトリは /home/{username}/notebook (v1...
- 使用ポートは 8000/tcp, 8081/tcp
**** jupyterhub.spawner.SimpleLocalProcessSpawner [#eb28d...
- 名前がややこしい
- 詳細は不明(検証する気はあまりない)
**** dockerspawner.DockerSpawner [#dc30b0cf]
- [[''DockerSpawner''>./DockerSpawner]]
- https://github.com/jupyterhub/dockerspawner
- サーバでユーザ毎に ''[[Docker]]'' でNotebook コンテナを...
- 作業ホームは /home/jovjan/work 固定(多分 Docker Image...
- 使用ポートは 8000/tcp, 8081/tcp, 8001/tcp
- Install
(jupyterhub) # pip --no-cache-dir install git+https://gi...
or
(jupyterhub) # pip install dockerspawner
**** dockerspawner.SystemUserSpawner [#x578909e]
- [[''SystemUserSpawner''>./SystemUserSpawner]]
- https://github.com/jupyterhub/dockerspawner/blob/master...
- dockerspawner.DockerSpawner からの派生クラス
- DockerSpawner と同じパッケージ? 特にインストールして...
- jovyan ではなく,ログインユーザで使用可.ログインユーザ...
- ただしログインユーザの情報がローカルに取れない場合(LDA...
-- 作りこめば大丈夫かもしれん.
**** dockerspawner.SwarmSpawner [#vad945d1]
- [[SwarmSpawner>./SwarmSpawner]]
- dockerspawner.DockerSpawner からの派生クラス
- DockerSpawner と同じパッケージ
- クラスタリング用.
- コンテナを [[Docker Compose]] で管理し,複数のサーバー...
- 使用ポートは 8000/tcp, 8081/tcp, 8001/tcp, 2377/tcp, 79...
**** niicloudoperation/jupyterhub-singleuser [#ld71d218]
- NII開発.自由度低し(個人的感想).[[CoursewareHub]] 用...
- https://github.com/NII-cloud-operation/CoursewareHub-LC...
- Document: https://github.com/nii-gakunin-cloud/ocs-temp...
- [[dockerspawner.SwarmSpawner>./SwarmSpawner]] からの派...
- 検証中
- INSTALL
(jupyterhub) # git clone https://github.com/NII-cloud-op...
(jupyterhub) # cd CoursewareHub-LC_platform/jupyterhub/s...
(jupyterhub) # pip --no-cache-dir install .
*** jovyan って誰? [#w4a21247]
- DockerSpawner を使用すると,作業ディレクトリが /home/jo...
- c.DockerSpawner.notebook_dir 辺りをいじっても変化しない?
- https://github.com/jupyter/docker-stacks/issues/358
** 実行 [#a826d7f6]
**** 前準備 [#xa875240]
# cd /etc/pki/tls
# openssl req -new -newkey rsa:2048 -days 3650 -nodes -k...
# openssl x509 -in server.csr -days 3650 -req -signkey p...
# vi /usr/local/etc/jupyterhub/jupyterhub_config.py
# mkdir /var/lib/jupyterhub
**** 実行 [#k5a94b0c]
(base) # conda activate jupyterhub
(jupyterhub) # jupyterhub -f /usr/local/etc/jupyterhub/j...
- --no-ssl は0.7で廃止された
** Log [#s553f415]
*** LC_nblineage [#q1878f8f]
- https://github.com/NII-cloud-operation/Jupyter-LC_nblin...
-- lab では動かない!
*** LC_wrapper [#q23dcf44]
- https://github.com/NII-cloud-operation/Jupyter-LC_wrapper
** 情報ソース [#s02d97ba]
*** Notebook [#i00ecdd5]
**** Docker Images [#yceb54d2]
***** niicloudoperation/notebook [#b9ddd7f8]
- docker pull niicloudoperation/notebook
*** Spawner [#v67998b2]
**** [[Docker]] [#e1984289]
- https://github.com/jupyterhub/dockerspawner
**** [[Podman]] [#t1db1fc3]
- https://github.com/gatoniel/podmanspawner
**** [[Kubernetes]] [#af74888d]
- https://github.com/jupyterhub/zero-to-jupyterhub-k8s
- https://zero-to-jupyterhub.readthedocs.io/en/latest/
** DB [#v881917b]
*** MySQL [#ge9c722d]
- [[SQLAlchemy]] で PyMySQL ドライバを使用する
- pool_recycle の設定を忘れずに!
- charset は urf8mb4
** NVIDIA [#o78e60f8]
*** Driver [#n52aa03b]
**** nouveau ドライバ(デフォルトのグラフィックドライバ)...
- lsmod | grep nouveau でドライバ確認
- /etc/default/grab のオプションに rd.driver.blacklist=no...
- カーネル設定ファイルの作り直し
-- grub2-mkconfig -o /boot/grub2/grub.cfg (RedHat系)
-- grub-mkconfig -o /boot/grub/grub.cfg (Debian系)
**** Driver [#r1aed2e1]
- nvidia-driver, cuda をインストール
**** Docker [#t87b07eb]
- nvidia-container-toolkit が必要
-- コンテナ内からホストのGPUを使う
-- %%nvidia-smi などのコマンドがインストールされる.%%
*** Tool Kit [#z51a5c81]
- CUDA Toolkit : https://developer.nvidia.com/cuda-toolki...
- Tool Kit をインストールするとドライバもインストールされ...
*** Docker [#xa8f93e3]
- docker run --gpus all nvidia/cuda:12.2.0-devel-ubuntu20...
-- Failed to initialize NVML: Unknown Error
-- ホストの /etc/nvidia-container-runtime/config.toml を...
** Trouble Shooting [#rf83821d]
*** Internal Server Error 500
**** volatile-containers.json から(を)削除してもダメ
- /var/log/message を確認して,該当コンテナIDを探し,dock...
- docker ps -a では表示されないけど docker rm できる.
**** どうしても特定ユーザがログインできない(Podman)
- /var/lib/containers/storage/overlay-containers/[[volati...
<pre>
Request Failed(Internal Server Error): container create: ...
</pre>
*** ltiauthenticator [#s373921d]
- https://pypi.org/project/jupyterhub-ltiauthenticator/
**** Jupyterhub 4.0.0 [#b81f6caf]
- 403 : Forbidden '_xsrf' argument missing from POST の...
-- JupyterHub で XSRFのチェックを強化したらしい
- /usr/local/lib/python3.9/site-packages/jupyterhub/handl...
-- def check_xsrf_cookie(self)
--- super().check_xsrf_cookie() で例外発生
--- 親は tornado のRequestHandlerか?
- 2023 5/29 時点でこのバグは修正されている.
*** JupyterLab [#m9f4d2fd]
**** JupyterHub をバージョンアップしたら Jupyter Labが起...
- 起動する JupyterHub(ex. 2.0.1)とイメージ内のJupyterHu...
*** 日本語のBUG [#ece06e7b]
- 日本語のファイルやディレクトリでコピーなどを行うと errn...
*** [[PAM]] [#cb278bbe]
**** JupyterHub: PAM使用時に 再login するとPAMの認証エラ...
- 認証モジュールに jupyterhub.auth.PAMAuthenticator を使...
-- c.JupyterHub.authenticator_class = 'jupyterhub.auth.PA...
- バグだろ.
- Resolve: jupyterhub_config.py に ''c.PAMAuthenticator.o...
- see: https://github.com/jupyterhub/jupyterhub/issues/486
**** swarm モードだと v1.1.0 でPAM認証のエラーを起こす. ...
- 上記バグもこれか?
- 1.0.0 に戻す.
(jupyterhub) # conda uninstall jupyterhub
(jupyterhub) # conda -c conda-forge install jupyterhub==...
*** homeディレクトの名前を変えたら,ログインできなくなっ...
- ~/.cache, ~/.jupyter, ~/.local ができているので消す.
*** Programing [#uef8ed38]
**** docker [#g330446b]
- https://docker-py.readthedocs.io/en/stable/api.html
- APIClient 呼び出しメソッド順
-- inspect_image
-- inspect_container
-- inspect_image
-- start
-- port
**** podman [#u96870cc]
ページ名: