flagflag  
12: 2021-08-02 (Mon) 09:58:28 iseki source 13: 2021-08-15 (Sun) 21:42:25 iseki source
Line 60: Line 60:
* Moodle & JupyterHub 連携 [#t72c88ce] * Moodle & JupyterHub 連携 [#t72c88ce]
-** INSTALL [#qb9768b3]+** 既存システム [#yb4a054d] 
 + 
 +*** [[Moodle]] [#y96f887e] 
 +#br 
 +*** [[Docker]] ([[CentOS8]]) [#o38fddf3] 
 + (base) # dnf config-manager --add-repo https://download.docker.com/linux/centos​/docker-ce.repo 
 + (base) # dnf -y install docker-ce docker-ce-cli containerd.io --nobest --allowerasing 
 + (base) # systemctrl enable docker 
 + (base) # systemctrl start docker 
 + (base) # docker pull jupyterhub/singleuser 
 + (base) # docker pull jupyter/datascience-notebook 
 +#br
*** [[Anaconda]] [#jb987bc7] *** [[Anaconda]] [#jb987bc7]
Line 74: Line 85:
 (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
-#br+- 作業ディレクトリ 
 +-- mkdir -p /var/lib/jupyterhub/ 
 +- FireWall 
 +-- firewall-cmd --add-port 8000/tcp --permanent 
 +-- firewall-cmd --reload
-*** [[Docker]] ([[CentOS8]]) [#o38fddf3] +- vi jupyterhub_config.py 
- (base) # dnf config-manager --add-repo https://download.docker.com/linux/centos​/docker-ce.repo +-- IPアドレス,サーバ証明書,Dockerイメージの選択 
- (base) # dnf -y install docker-ce docker-ce-cli containerd.io --nobest --allowerasing +- 起動 
- (base) # systemctrl enable docker +-- conda activate jupyterhub 
- (base) # systemctrl start docker +-- jupyterhub -f jupyterhub_config.py
- (base) # docker pull jupyterhub/singleuser +
- (base) # docker pull jupyter/datascience-notebook+
#br #br
-**** Docker と Moodleが同じマシンで動いている場合 [#bca29c05+** 少し特殊なシステム [#e4866905] 
-- Moodle がローカルなら,Moodleの実効ユーザを docker グループに入れればOK +*** [[SystemUserSpawner>JupyterHub/SystemUse​rSpawner]] [#m07110de
-#br+- JupyterHub の DockerSpawner を継承. 
 +-- システムのユーザを使用可能. 
 +-- システムのユーザのホーム領域をマウント可能.
-**** Docker と Moodleが違うマシンで動いている場合 [#v044d897] +- 2021 7/12 版(それ以降)推奨 
-- リモートとローカルの unix ソケットファイルを ssh でつなぐ. +- https://github.com/jupyterhub/dockerspawner/blob/master/dockerspawner/systemuserspawner.py 
--- Docker の動いているマシンで,グループ docker に属するユーザを作成(例えば docker). +- DockerSpawner のインストールで,一緒にインストールされる.(バージョンが古い場合は手動インストール)
---- パスワードを設定しておく.起動シェルは要らない. +
----- # adduser docker -u 105 -g docker -d /var/lib/docker -s /sbin/nologin +
----- # asswd docker +
--- Moodle の動いているマシンで以下のコマンドを実行.Moodle +
---- ssh -fNL /var/run/mdlds.sock:/var/run/docker.sock docker@202.26.150.55 +
---- chgrp apache /var/run/mdlds.sock +
---- chmod g+rw  /var/run/mdlds.sock +
---- コマンド実行時は ''DOCKER_HOST=unix:///var/run/xxx.sock''​ または ''docker -H unix:///var/run/mdlds.sock ps'' +
---- [[docker_rsock.sh>Docker/docker_rsock.sh​]]+
#br #br
-*** [[altfiles>NSS]] [#n90bdca5]+**** [[altfiles>NSS]] [#n90bdca5] 
 +- SystemUserSpawner 用の [[NSS]] を使用した システムのユーザ情報の入手方法([[LDAP]] を使用する手段もある) 
 +- getent passwd と getent group で情報が取れるようになれば OK 
 # git clone https://github.com/aperezdc/nss-altfiles​.git  # git clone https://github.com/aperezdc/nss-altfiles​.git
 # cd nss-altfiles/  # cd nss-altfiles/
Line 122: Line 131:
#br #br
-*** [[LTI>JupyterHub#m4467ad6]] [#g284e3bf]+**** [[LTI>JupyterHub#m4467ad6]] [#g284e3bf] 
 +- Moodle と連携する為の 認証モジュール
- pip install jupyterhub-ltiauthenticator - pip install jupyterhub-ltiauthenticator
- cd ......./ltiauthenticator - cd ......./ltiauthenticator
Line 128: Line 138:
#br #br
-*** [[MDLDockerSpawner>JupyterHub/MDLDockerS​pawner]] [#s98f7379] +**** cull_idle_servers.py [#n8a3f52c]
-- https://gitlab.nsl.tuis.ac.jp +
-#br +
- +
-**** docker image [#je2a02e3] +
-- docker build で start.sh を置き換えたイメージを作る. +
-#br +
- +
-*** cull_idle_servers.py [#n8a3f52c]+
- 接続の切れた docker コンテナを削除 - 接続の切れた docker コンテナを削除
- [[cull_idle_servers>JupyterHub/DockerSpa​wner#zc9428f7]] - [[cull_idle_servers>JupyterHub/DockerSpa​wner#zc9428f7]]
- https://github.com/jupyterhub/jupyterhub​/tree/a6b7e303df03865d6420f6bccdf627b39f​1d0dc1/examples/cull-idle - https://github.com/jupyterhub/jupyterhub​/tree/a6b7e303df03865d6420f6bccdf627b39f​1d0dc1/examples/cull-idle
-- DLして /usr/local/bin にコピー+- wget で DLして /usr/local/bin にコピー
-- 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
#br #br
-*** JupyterHub [#h8d86a77] +** 独自拡張 [#ma810a39]
-- mkdir -p /var/lib/jupyterhub/ +
-- FireWall +
--- firewall-cmd --add-port 8000/tcp --permanent +
--- firewall-cmd --add-port 9000/tcp --permanent  // feserver 用 +
--- firewall-cmd --reload+
-- vi jupyterhub_config.py +*** [[MSLDockerSpawner>JupyterHub/MDLDockerS​pawner]] [#k758b918] 
--- IPアドレス,サーバ証明書,Dockerイメージの選択+- [[Moodle]] と [[JupyterHub]] の連携をとるための Spawner クラス. 
 +- [[SystemUserSpawner>JupyterHub/SystemUse​rSpawner]] クラスを継承. 
 +- 現時点(2021/08)では jupyterhub_config.py  の中で実装
#br #br
-** 起動 [#hccd8a59]+ 
 +**** 機能 [#o44dc5d5] 
 +- ユーザグループ機能の完全サポート 
 +- Moodle からの LTI カスタムパラメータの受信して動作. 
 +- start.sh による Jupyter Lab/Notebook コンテナの動作制御. 
 +-- 教師ユーザと学生ユーザの分離. 
 +-- ユーザ毎の Volume のマウント,及びアクセス権(教師と学生)の設定. 
 +--- 教材の配布と収集に便利 
 +-- Volume への任意名でのアクセス. 
 +-- 起動イメージのリモート選択. 
 +-- 起動 URL(Lab/Notebook)のリモート選択. 
 + 
 +#br 
 + 
 +**** 起動 [#bdc8edbc]
- jupyterhub -f mdldockerspawner/jupyterhub_config.py - jupyterhub -f mdldockerspawner/jupyterhub_config.py
 +#br
 +
 +*** [[mod_mdlds]]  [#hbfc4f2f]
 +- MDLDockerSpawner サポート用 Moodleモジュール
 +#br
 +**** 機能 [#m538ed2a]
 +- LTI のカスタムパラメータ管理
 +- Docker(リモート)のサポート
 +-- Volume 管理(表示:削除)
 +- WebService
 +-- feserver (feplg_nbws.so)からのデータを xmlrpc で受信し,データベースに格納
 +--データベースのデータ利用については検討中
 +#br
 +
 +*** [[feserver]]  [#va0d030b]
 +- feserver フロントエンドサーバ(TCP中継サーバ)
 +- MITM 的動作を行う私的試験用ツール.(一応公開もしている)
 +- 各種モジュールを読み込むことにより,色々な通信データの処理が可能.
 +- コンパイルに [[JunkBox_Lib]] が必要
 +#br
 +
 +**** feplg_nbws.so モジュール [#abc6a346]
 +- Moodle と JupyterHub の中間に於いて,通信情報を収集して Moodle に返すためのモジュール
 +- JupyterHub から見ると,リバースプロキシのように見える.
 +- 機能
 +-- WebSocket 通信の解析.
 +-- HTTP通信の解析.
 +-- Cookie の挿入.
 +-- Moodle への xmlrpc 通信.
 +
 +- 起動例
 +--  ./fesvr -h 172.22.1.75:8000 -p 9000 -m ./feplg_nbws.so -c -s --conf ./nbsw.conf
#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

25 user(s) are online (2 user(s) are browsing xpwiki)

Members: 0
Guests: 25

more...

Access Counter

Today : 315315315
Yesterday : 5790579057905790
Total : 2365311123653111236531112365311123653111236531112365311123653111
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com