flagflag  If you want to see English page, please click "English" Button at Left.
12: 2021-08-02 (月) 09:58:28 iseki ソース 13: 2021-08-15 (日) 21:42:25 iseki ソース
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


トップ   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 5月翌月
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
<今日>

オンライン状況

110 人のユーザが現在オンラインです。 (30 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 110

もっと...

アクセスカウンタ

今日 : 8363836383638363
昨日 : 1615016150161501615016150
総計 : 2348765623487656234876562348765623487656234876562348765623487656
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com