18: 2022-02-17 (木) 18:45:36 iseki |
現: 2024-04-17 (水) 20:19:46 iseki |
| + | * This page is out of date. [#fb9d7b14] |
| + | * Please see https://polaris.star-dust.jp/pukiwiki/?Moodle%2BJupyterHub [#m22e2071] |
| + | |
| + | |
| * Moodle & JupyterHub 連携 [#t72c88ce] | | * Moodle & JupyterHub 連携 [#t72c88ce] |
| + | - %%''現行システムは JupyterHub-2.3.1, 3.1.1 では動作するが,4.0.0 では動作しない''%% |
| + | -- 動くようになりました. |
| + | |
| - LTI カスタムパラメータを使用した Moodle + JupyterHub 連携を研究中 | | - LTI カスタムパラメータを使用した Moodle + JupyterHub 連携を研究中 |
| - [[Moodle]] | | - [[Moodle]] |
| - %%[[feserver]]%% | | - %%[[feserver]]%% |
| - [[Ltictr_Proxy]] | | - [[Ltictr_Proxy]] |
| + | #br |
| + | |
| + | *** 最新メモ [#k8d9209c] |
| + | **** 2023/05/07 [#mc229461] |
| + | - JupyterHub v3 で Podman も Docker 同様に扱えるようになった模様. |
| + | -- JupyterHub v3 では jupyterhub_podman_config.py と最新の Dockerイメージ(ltids)の組み合わせは使用できない.(パーミッションエラーが出る) |
| + | -- JupyterHub v3 で最新の Dockerイメージ(ltids)を使用したい場合は,Podmanであっても jupyterhub_docker_config.py を使用すること. |
| + | - JupyterHub v4 では XSRFクッキー関連で,[[ltiauthenticator>LTI#o7520050]] が使用できない.[[JupyterHub>JupyterHub#s373921d]] |
| + | -- site-packages/jupyterhub/handlers/base.py の関数 check_xsrf_cookie(self) でそまま True を返させる. |
| + | --- base.py- 2023-05-07 01:44:18.173130119 -0400 |
| + | +++ base.py 2023-05-07 01:44:31.750265669 -0400 |
| + | @@ -235,7 +235,8 @@ |
| + | |
| + | def check_xsrf_cookie(self): |
| + | try: |
| + | - return super().check_xsrf_cookie() |
| + | + return True |
| + | + #return super().check_xsrf_cookie() |
| + | except Exception as e: |
| + | # ensure _juptyerhub_user is defined on rejected requests |
| + | if not hasattr(self, "_jupyterhub_user"): |
| + | #br |
| + | |
| + | |
| + | ** GitHub [#ad573858] |
| + | *** LTIContainerSpawner [#r4c1946d] |
| + | - https://github.com/jupyter-fumihax/lticontainerspawner |
| + | #br |
| + | |
| + | *** mod_lticontainer [#mdf183de] |
| + | - https://github.com/moodle-fumihax/mod_lticontainer |
| #br | | #br |
| | | |
| | | |
| *** [[JupyterHub]] [#z52a6900] | | *** [[JupyterHub]] [#z52a6900] |
| + | **** with pip [#fe40fb20] |
| + | # yum install python39 |
| + | # alternatives --config python3 |
| + | # /usr/bin/pip3.9 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 |
| | | |
- | **** [[JupyterHub]] [#m57f62f0] | + | **** with conda [#b575bbb0] |
| (base) # conda create -n jupyterhub python=3.8 -y | | (base) # conda create -n jupyterhub python=3.8 -y |
| (base) # conda activate jupyterhub | | (base) # conda activate jupyterhub |
| (jupyterhub) # conda install jupyter_client -y | | (jupyterhub) # conda install jupyter_client -y |
| (jupyterhub) # pip --no-cache-dir install git+https://github.com/jupyterhub/dockerspawner.git #(必要なら) | | (jupyterhub) # pip --no-cache-dir install git+https://github.com/jupyterhub/dockerspawner.git #(必要なら) |
| + | **** 設定&起動 [#qd28c9f2] |
| - 作業ディレクトリ | | - 作業ディレクトリ |
| -- mkdir -p /var/lib/jupyterhub/ | | -- mkdir -p /var/lib/jupyterhub/ |
| -- IPアドレス,サーバ証明書,Dockerイメージの選択 | | -- IPアドレス,サーバ証明書,Dockerイメージの選択 |
| - 起動 | | - 起動 |
- | -- conda activate jupyterhub | + | -- conda activate jupyterhub (condaの場合) |
| -- jupyterhub -f jupyterhub_config.py | | -- jupyterhub -f jupyterhub_config.py |
| #br | | #br |
| -- conda install oauthlib or pip install oauthlib | | -- conda install oauthlib or pip install oauthlib |
| | | |
| + | - v1.5.0 release |
| + | -- https://pypi.org/project/jupyterhub-ltiauthenticator/1.5.0/ |
| - v1.2.0 release (2021 9/2) | | - v1.2.0 release (2021 9/2) |
| -- https://pypi.org/project/jupyterhub-ltiauthenticator/1.2.0/ | | -- https://pypi.org/project/jupyterhub-ltiauthenticator/1.2.0/ |
| -- Moodle に対して Patch 不要 | | -- Moodle に対して Patch 不要 |
| | | |
- | (jupyterhub)# pip install jupyterhub-ltiauthenticator==1.2.0 | + | (jupyterhub)# pip install --upgrade jupyterhub-ltiauthenticator |
| | | |
| - Jupyterhub_conifg.py | | - Jupyterhub_conifg.py |
| *** [[LTIContainerSpawner>JupyterHub/LTIContainerSpawner]] [#va019dd5] | | *** [[LTIContainerSpawner>JupyterHub/LTIContainerSpawner]] [#va019dd5] |
| - https://gitlab.nsl.tuis.ac.jp/iseki/lticontainerspawner | | - https://gitlab.nsl.tuis.ac.jp/iseki/lticontainerspawner |
| + | -- git clone https://gitlab.nsl.tuis.ac.jp/iseki/lticontainerspawner.git |
| + | |
| - [[Moodle]](その他の LTIコンシューマ) と [[JupyterHub]] の連携をとるための Spawner クラス. | | - [[Moodle]](その他の LTIコンシューマ) と [[JupyterHub]] の連携をとるための Spawner クラス. |
| | | |
| - LTIContainerSpawner は LTIDockerSpawner と LTIPodmanSpawner を纏めた呼び方. | | - LTIContainerSpawner は LTIDockerSpawner と LTIPodmanSpawner を纏めた呼び方. |
| -- ''LTIContainerSpawner = LTIDockerSpawner + LTIPodmanSpawner'' | | -- ''LTIContainerSpawner = LTIDockerSpawner + LTIPodmanSpawner'' |
| + | |
| + | git clone https://gitlab.nsl.tuis.ac.jp/iseki/lticontainerspawner.git |
| + | cd lticontainerspawner/ |
| + | make |
| + | |
| + | |
| #br | | #br |
| | | |
| -- socket を読み書きできるアクセス用ユーザを作成する(グループが同じになるようにする). | | -- socket を読み書きできるアクセス用ユーザを作成する(グループが同じになるようにする). |
| --- 例えば podman グループ(アクセス用ユーザはこのグループに参加する必要がある)を作成した場合 (root podman drwxrws---) | | --- 例えば podman グループ(アクセス用ユーザはこのグループに参加する必要がある)を作成した場合 (root podman drwxrws---) |
| + | |
| - /usr/lib/systemd/system/podman.socket | | - /usr/lib/systemd/system/podman.socket |
| [Unit] | | [Unit] |
| Description=Podman API Socket | | Description=Podman API Socket |
| Documentation=man:podman-system-service(1) | | Documentation=man:podman-system-service(1) |
| + | |
| [Socket] | | [Socket] |
| ExecStartPre=/usr/bin/chgrp podman /var/run/podman | | ExecStartPre=/usr/bin/chgrp podman /var/run/podman |
| ListenStream=%t/podman/podman.sock | | ListenStream=%t/podman/podman.sock |
| SocketMode=0660 | | SocketMode=0660 |
| + | |
| [Install] | | [Install] |
| WantedBy=sockets.target | | WantedBy=sockets.target |
| #br | | #br |
| - start.sh 入れ替え後でも,通常の DockerSpanwer で問題なく起動できるようにしたい(下位互換性) | | - start.sh 入れ替え後でも,通常の DockerSpanwer で問題なく起動できるようにしたい(下位互換性) |
| + | #br |
| + | ** Trouble Shooting [#c5d119dc] |
| + | *** mod_lticontainer [#b6461f04] |
| + | **** 500 Server Error [#jc469646] |
| + | - mod_lticontainer でユーザを削除する. |
| + | #br |
| + | **** local user で JupyterHubにアクセスできない.アクセスバーは途中まで. [#c06188d6] |
| + | - ホームディレクトリ内のドット付きディレクトリのユーザを調べる. |
| + | - 本来のオーナでない場合は,修正する. |
| + | #br |
| + | ** Setup [#q4494417] |
| + | *** Example [#eca873a2] |
| + | - Rocky Linux |
| + | - [[Debian>./Debian]] |
| #br | | #br |