21: 2022-07-19 (火) 16:01:38 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] | | **** with pip [#fe40fb20] |
- | # yum install python3 | + | # yum install python39 |
- | # pip3 install --upgrade pip | + | # alternatives --config python3 |
| + | # /usr/bin/pip3.9 install --upgrade pip |
| # yum install npm | | # yum install npm |
| # npm install -g configurable-http-proxy | | # npm install -g configurable-http-proxy |
| -- 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/ |
| *** [[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 |
| + | ** Setup [#q4494417] |
| + | *** Example [#eca873a2] |
| + | - Rocky Linux |
| + | - [[Debian>./Debian]] |
| #br | | #br |