flagflag  
13: 2021-10-20 (Wed) 16:32:31 iseki source Cur: 2024-04-17 (Wed) 20:19:46 iseki source
Line 1: Line 1:
 +* This page is out of date. [#fb9d7b14]
 +* Please see https://polaris.star-dust.jp/pukiwiki/?M​oodle%2BJupyterHub [#m22e2071]
 +
 +
* Moodle & JupyterHub 連携 [#t72c88ce] * Moodle & JupyterHub 連携 [#t72c88ce]
-- LTI カスタムパラメータを使用した Moodle + JupyterHub 連携を研究中 +- %%''現行システムは JupyterHub-2.3.1, 3.1.1 では動作するが,4.0.0 では動作しない''%% 
-- iseki@rsch.tuis.ac.jp+-- 動くようになりました.
 +- LTI カスタムパラメータを使用した Moodle + JupyterHub 連携を研究中
- [[Moodle]] - [[Moodle]]
- [[JupyterHub]] - [[JupyterHub]]
Line 14: Line 19:
-- [[mod_ltids]] +- [[mod_lticontainer]] 
-- [[feserver]]+- %%[[feserver]]%% 
 +- [[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.p​y の関数 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/ltico​ntainerspawner 
 +#br 
 + 
 +*** mod_lticontainer [#mdf183de] 
 +- https://github.com/moodle-fumihax/mod_lt​icontainer 
 +#br 
 + 
 +** Gitlab [#aaaabdf8] 
 + 
 +*** Gitlab Wiki [#r667be0c] 
 +- English: https://gitlab.nsl.tuis.ac.jp/iseki/ltic​ontainerspawner/-/wikis/Moodle---Jupyter​Hub 
 +- English: https://gitlab.nsl.tuis.ac.jp/iseki/mod_​lticontainer/-/wikis/mod_lticontainer 
 + 
 +- Japanese: https://gitlab.nsl.tuis.ac.jp/iseki/ltic​ontainerspawner/-/wikis/Moodle---Jupyter​Hub-(J) 
 +- Japanese: https://gitlab.nsl.tuis.ac.jp/iseki/mod_​lticontainer/-/wikis/mod_lticontainer-(J​)
#br #br
-** Gitlab Wiki [#j1764a5a] 
*** Source Code [#k535d3ae] *** Source Code [#k535d3ae]
- LTIContainerSpawner - LTIContainerSpawner
-- https://gitlab.nsl.tuis.ac.jp/iseki/ltic​ontainerspawner/ -- https://gitlab.nsl.tuis.ac.jp/iseki/ltic​ontainerspawner/
-- mod_ltids +- mod_lticontainer 
--- https://gitlab.nsl.tuis.ac.jp/iseki/mod_ltids/ +-- https://gitlab.nsl.tuis.ac.jp/iseki/mod_lticontainer/
-#br +
- +
-*** Wiki [#r667be0c] +
-- https://gitlab.nsl.tuis.ac.jp/iseki/ltic​ontainerspawner/-/wikis/Moodle---Jupyter​Hub-(J) +
-- https://gitlab.nsl.tuis.ac.jp/iseki/mod_​ltids/-/wikis/mod_ltids-(J)+
#br #br
Line 79: Line 120:
*** [[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
Line 89: Line 145:
 (jupyterhub) # conda install jupyter_client -y  (jupyterhub) # conda install jupyter_client -y
 (jupyterhub) # pip --no-cache-dir install git+https://github.com/jupyterhub/docker​spawner.git   #(必要なら)  (jupyterhub) # pip --no-cache-dir install git+https://github.com/jupyterhub/docker​spawner.git   #(必要なら)
 +**** 設定&起動 [#qd28c9f2]
- 作業ディレクトリ - 作業ディレクトリ
-- mkdir -p /var/lib/jupyterhub/ -- mkdir -p /var/lib/jupyterhub/
Line 98: Line 155:
-- IPアドレス,サーバ証明書,Dockerイメージの選択 -- IPアドレス,サーバ証明書,Dockerイメージの選択
- 起動 - 起動
--- conda activate jupyterhub+-- conda activate jupyterhub (condaの場合)
-- jupyterhub -f jupyterhub_config.py -- jupyterhub -f jupyterhub_config.py
#br #br
-****  [[SystemUserSpawner>JupyterHub/SystemUse​rSpawner]]  [#m07110de]+****  %%[[SystemUserSpawner>JupyterHub/SystemUse​rSpawner]]%% [#m07110de] 
 +- ''最新版では未使用'' 
- ''Container として Docker を使用する場合に必要.Podman を使用する場合は不要.'' - ''Container として Docker を使用する場合に必要.Podman を使用する場合は不要.''
Line 113: Line 172:
-- JupyterHub のインストールで,一緒にインストールされる.(バージョンが古い場合は手動インストール) -- JupyterHub のインストールで,一緒にインストールされる.(バージョンが古い場合は手動インストール)
#br #br
 +
*** NSS [#x24645ee] *** NSS [#x24645ee]
- ユーザ情報として /etc/passwd(/etc/group) の情報が必要 - ユーザ情報として /etc/passwd(/etc/group) の情報が必要
Line 149: Line 209:
-- conda install oauthlib  or pip  install oauthlib -- conda install oauthlib  or pip  install oauthlib
 +- v1.5.0 release
 +-- https://pypi.org/project/jupyterhub-ltia​uthenticator/1.5.0/
- v1.2.0 release (2021 9/2) - v1.2.0 release (2021 9/2)
-- https://pypi.org/project/jupyterhub-ltia​uthenticator/1.2.0/ -- https://pypi.org/project/jupyterhub-ltia​uthenticator/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
Line 183: Line 245:
-- 色々と試した中ではこれが一番良かった. -- 色々と試した中ではこれが一番良かった.
- wget で DLして /usr/local/bin にコピー - wget で DLして /usr/local/bin にコピー
- pip3 install pycurl+ pip3 install wheel 
 + pip3 install pycurl   (pthon3-devel が必要)
 wget https://raw.githubusercontent.com/jupyte​rhub/jupyterhub/a6b7e303df03865d6420f6bc​cdf627b39f1d0dc1/examples/cull-idle/cull​_idle_servers.py  wget https://raw.githubusercontent.com/jupyte​rhub/jupyterhub/a6b7e303df03865d6420f6bc​cdf627b39f1d0dc1/examples/cull-idle/cull​_idle_servers.py
 cp cull_idle_servers.py /usr/local/bin  cp cull_idle_servers.py /usr/local/bin
Line 199: Line 262:
*** [[LTIContainerSpawner>JupyterHub/LTICont​ainerSpawner]] [#va019dd5] *** [[LTIContainerSpawner>JupyterHub/LTICont​ainerSpawner]] [#va019dd5]
- https://gitlab.nsl.tuis.ac.jp/iseki/ltic​ontainerspawner - https://gitlab.nsl.tuis.ac.jp/iseki/ltic​ontainerspawner
 +-- git clone https://gitlab.nsl.tuis.ac.jp/iseki/ltic​ontainerspawner.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/ltic​ontainerspawner.git
 + cd lticontainerspawner/
 + make
 +
 +
#br #br
Line 259: Line 330:
#br #br
-*** [[mod_ltids]]  [#hbfc4f2f] +*** [[mod_lticontainer]]  [#hbfc4f2f] 
-- https://gitlab.nsl.tuis.ac.jp/iseki/mod_ltids+- https://gitlab.nsl.tuis.ac.jp/iseki/mod_lticontainer
- MDLDockerSpawner/LTIPodmanSpawner サポート用 Moodleモジュール - MDLDockerSpawner/LTIPodmanSpawner サポート用 Moodleモジュール
Line 305: Line 376:
-- socket を読み書きできるアクセス用ユーザを作成する(グループが同じになるようにする). -- socket を読み書きできるアクセス用ユーザを作成する(グループが同じになるようにする).
--- 例えば podman グループ(アクセス用ユーザはこのグループに参加する必要がある)を作成した場合 (root  podman  drwxrws---) --- 例えば podman グループ(アクセス用ユーザはこのグループに参加する必要がある)を作成した場合 (root  podman  drwxrws---)
 + 
 +- /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
Line 314: Line 387:
 ListenStream=%t/podman/podman.sock  ListenStream=%t/podman/podman.sock
 SocketMode=0660  SocketMode=0660
 + 
 [Install]  [Install]
 WantedBy=sockets.target  WantedBy=sockets.target
 +
 +
 + # adduser podman
 + # passwd podman
 + # vi  /usr/lib/systemd/system/podman.socket
 + # mkdir /var/run/podman
 + # systemctl enable podman
 + # systemctl start podman
 +
- Trouble - Trouble
-- podman.socket が勝手に再起動を繰り返す. -- podman.socket が勝手に再起動を繰り返す.
Line 324: Line 406:
#br #br
-*** [[feserver]]  [#va0d030b]+*** [[Ltictr_Proxy]] [#wb4130d9] 
 +- feserver + feplg_nbws.so の代わりとなる ''[[Ltictr_Proxy]]'' を作成したので,今後はこちらを用いる(2022/2/13) 
 +#br 
 +*** 参考:[[feserver]]  [#va0d030b]
- http://www.nsl.tuis.ac.jp/svn/linux/fese​rver/trunk - http://www.nsl.tuis.ac.jp/svn/linux/fese​rver/trunk
Line 419: Line 504:
#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


Front page   New List of Pages Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)

Site Search

Login

Username:

Password:


Lost Password?
Register now!!

Sub Menu

mini Calendar

Last MonthMay 2024Next Month
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today

Who's Online

37 user(s) are online (3 user(s) are browsing xpwiki)

Members: 0
Guests: 37

more...

Access Counter

Today : 2973297329732973
Yesterday : 4345434543454345
Total : 2366011423660114236601142366011423660114236601142366011423660114
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com