Moodle & JupyterHub 連携 [edit]

Over View[edit]

最新メモ [edit]

Todo Works[edit]

Trouble[edit]

Moodle 4.3.3 で JupyterLab にログインする途中で止まる(プログレスバーの表示で,半分くらいでタイムアウトする)[edit]
2023/12/27 docker.errors.DockerException: Error while fetching server API version: request() got an unexpected keyword argument 'chunked' [edit]
podman での Internal Server Error 500 [edit]
2023/05/07 [edit]

GitHub [edit]

LTIContainerSpawner [edit]

mod_lticontainer [edit]

既存システム [edit]

Moodle [edit]

外部サービス [edit]
Webサービス [edit]

Container [edit]

Docker [edit]
Podman [edit]

JupyterHub [edit]

with pip [edit]
# 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 jupyter
# pip install --upgrade notebook
# pip install --upgrade jupyterlab
# pip install jupyterlab-language-pack-ja-JP
# pip install jupyter_server_fileid
# pip install jupyter_server_ydoc
# jupyterhub --version
# jupyter --version
# jupyter notebook --version
# jupyter lab --version
with conda [edit]
(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==1.4.2  -y
(jupyterhub) # conda install -c conda-forge voila -y
(jupyterhub) # conda install jupyter_client -y
(jupyterhub) # pip --no-cache-dir install git+https://github.com/jupyterhub/dockerspawner.git   #(必要なら)
設定&起動 [edit]
SystemUserSpawner [edit]

NSS [edit]

altfiles [edit]
# git clone https://github.com/aperezdc/nss-altfiles.git
# cd nss-altfiles/
# ./configure --prefix=/usr --datadir=/usr/local/etc --with-type=pwd,grp
# make
# make install
# ln -s /usr/lib/libnss_altfiles.so.2 /usr/lib64/libnss_altfiles.so
# ldconfig
# cd /usr/local/etc
# wget https://XXXX/.../passwd
# wget https://XXXX/.../group          (group は 必要な物だけ /etc/group を編集しても良い)

LTI Authenticator [edit]

(jupyterhub)# pip install --upgrade jupyterhub-ltiauthenticator
# for LTI v1.2.0
c.JupyterHub.authenticator_class = 'ltiauthenticator.LTIAuthenticator'
c.LTI11Authenticator.consumers = {
   "b18e82ec683724743236fade71350720029a29144a585c66f6741d8e9c6e0d83" : "c0fe2924dbb0f4701d898d36aaf9fd89c7a3ed3a7db6f0003d0e825a7eccb41c"
}
c.LTI11Authenticator.username_key = 'ext_user_username'
* old [edit]

Culler(option) [edit]

cull_idle_servers.py [edit]

連携拡張 by NSL [edit]

Moodle [edit]

LTIContainerSpawner [edit]

git clone https://gitlab.nsl.tuis.ac.jp/iseki/lticontainerspawner.git
cd lticontainerspawner/
make 
LTIDockerSpawner [edit]
LTIPodmanSpawner [edit]
機能 [edit]
Volume 名に関する制約 [edit]
注意事項 [edit]
起動 [edit]

mod_lticontainer [edit]

機能 [edit]
Docker を使う場合 [edit]
Podman を使う場合 [edit]
# adduser podman
# passwd podman
# vi  /usr/lib/systemd/system/podman.socket
# mkdir /var/run/podman
# systemctl enable podman
# systemctl start podman

Ltictr_Proxy [edit]

参考:feserver [edit]

起動例 [edit]
feplg_nbws.so モジュール [edit]
* feplg_nbws.so の 設定ファイル(nbws.conf) [edit]
* Moodle 側の設定 (Webサービスを利用するためのトークンの取得) [edit]
  1. 管理者IDで「サイト設定」 -> 「プラグイン」 -> 「ウェブサービス」 -> 「外部サービス」
    1. 「Jupyter Lab/Notebook Data」の項目を確認
    2. 「Jupyter Lab/Notebook Data」の 「許可ユーザ」をクリック
      1. 適当なユーザ(教師ロールのユーザ)を選択し,許可ユーザとする
  2. ウェブサービスのメニューまで戻って,「トークンを管理する」を選択.
    1. 「追加」をクリック.
      1. ユーザ名に先程選択したユーザ名を入れる.
      2. サービスは「Jupyter Lab/Notebook Data」を選択
      3. 「変更を保存する」をクリック
    2. 「トークンを管理する」まで戻ると,ユーザ用のトークンができているので,それをコピーする.
    3. トークンは feplg_nbws の設定ファイルの Moodle_Token に設定する.

ipynb_conv [edit]

Jupyter Lab/Notebook コンテナイメージ [edit]

Trouble Shooting [edit]

mod_lticontainer [edit]

500 Server Error [edit]
local user で JupyterHubにアクセスできない.アクセスバーは途中まで. [edit]

Setup [edit]

Example [edit]


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-09-02 (月) 16:19:29