flagflag  
4: 2021-09-17 (Fri) 14:51:03 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]]
- [[Docker]] - [[Docker]]
 +- [[Podman]]
- [[LTI]] - [[LTI]]
- [[LTI Hack>Moodle/Moodle-LTI]] - [[LTI Hack>Moodle/Moodle-LTI]]
- [[LTIDockerSpawner>JupyterHub/LTIDockerS​pawner]] - [[LTIDockerSpawner>JupyterHub/LTIDockerS​pawner]]
 +- [[LTIPodmanSpawner>JupyterHub/LTIPodmanS​pawner]]
-- [[mod_ltids]] + 
-- [[feserver]]+- [[mod_lticontainer]] 
 +- %%[[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 
 + 
 +*** Source Code [#k535d3ae] 
 +- LTIContainerSpawner 
 +-- https://gitlab.nsl.tuis.ac.jp/iseki/ltic​ontainerspawner/ 
 +- mod_lticontainer 
 +-- https://gitlab.nsl.tuis.ac.jp/iseki/mod_​lticontainer/
#br #br
Line 21: Line 78:
- JupyterHub が動くホストとは別のホストでもOK - JupyterHub が動くホストとは別のホストでもOK
- 外部サービス,Webサービスを使用する. - 外部サービス,Webサービスを使用する.
 +
 +- LTIDockerSpawner を使用する場合はMoodle ホスト側に,少なくとも ''docker-ce-cli''/docker-cli がインストールされている必要がある.
 +- LTIPodmanSpawner を使用する場合はMoodle ホスト側に,少なくとも ''podman-remote'' がインストールされている必要がある.
 +#br
 +
#br #br
Line 30: Line 92:
**** Webサービス [#k4138c47] **** Webサービス [#k4138c47]
 +- Option
- Feserver からの XML-RPC を受け入れて,データをDBに格納する. - Feserver からの XML-RPC を受け入れて,データをDBに格納する.
 +-- データ収集を行わない(Feserverを使用しない)なら,不必要
#br #br
-*** [[Docker]] [#cd2ef212+*** Container [#od457509] 
-**** CentOS8 [#ufeb99f8]+- Docker または Podman が使用可能 
 +#br 
 + 
 +**** [[Docker]] [#cd2ef212] 
 +- CentOS8
 (base) # dnf config-manager --add-repo https://download.docker.com/linux/centos​/docker-ce.repo  (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) # dnf -y install docker-ce docker-ce-cli containerd.io --nobest --allowerasing
Line 43: Line 111:
#br #br
-*** [[JupyterHub]]/[[SystemUserSpawner>JupyterHub/SystemUserSpawner]]   [#z52a6900] +**** [[Podman]] [#k2bdffda] 
-**** [[JupyterHub]] [#m57f62f0]+- CentOS8 
 + (base) # dnf -y install podman 
 + (base) # dnf -y install podman-remote 
 + (base) # dnf -y install podman-docker 
 + 
 +#br 
 + 
 +*** [[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 
 + 
 +**** 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 53: 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 62: 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] 
-- JupyterHub の DockerSpawner を継承. +- ''最新版では未使用''
--- システムのユーザを使用可能. +
--- システムのユーザのホーム領域をマウント可能.+
-- 2021 7/12(またはそれ以降) 版推奨 +- ''Container として Docker を使用する場合に必要.Podman を使用する場合は不要.''
-- https://github.com/jupyterhub/dockerspaw​ner/blob/master/dockerspawner/systemuser​spawner.py +
-- JupyterHub のインストールで,一緒にインストールされる.(バージョンが古い場合は手動インストール)+
-- SystemUserSpawner を動かすには /etc/passwd(/etc/group) 情報が必要+-- JupyterHub の DockerSpawner を継承. 
 +--- システムのユーザを使用可能. 
 +--- システムのユーザのホーム領域をマウント可能. 
 + 
 +-- 2021 7/12(またはそれ以降) 版推奨 
 +-- https://github.com/jupyterhub/dockerspaw​ner/blob/master/dockerspawner/systemuser​spawner.py 
 +-- JupyterHub のインストールで,一緒にインストールされる.(バージョンが古い場合は手動インストール) 
 +#br 
 + 
 +*** NSS [#x24645ee] 
 +- ユーザ情報として /etc/passwd(/etc/group) の情報が必要 
 +- システム(Containerを動かすホスト上)のユーザでなくても良い.
-- LDAP か下記の altfiles を使用する -- LDAP か下記の altfiles を使用する
#br #br
**** [[altfiles>NSS]] [#n90bdca5] **** [[altfiles>NSS]] [#n90bdca5]
 +- ユーザの passwd, grouop 情報が必要
- SystemUserSpawner 用の [[NSS]] を使用した システムのユーザ情報の入手方法([[LDAP]] を使用する手もある) - SystemUserSpawner 用の [[NSS]] を使用した システムのユーザ情報の入手方法([[LDAP]] を使用する手もある)
- getent passwd と getent group で情報が取れるようになれば OK - getent passwd と getent group で情報が取れるようになれば OK
Line 100: Line 201:
 group:  files altfiles  group:  files altfiles
- ユーザアカウントの整合性を取る. - ユーザアカウントの整合性を取る.
 +-- システム(Containerを動かすホスト上)のユーザとユーザ名,ユーザIDが被っていないかチェックする.
#br #br
-**** [[LTI]] [#g284e3bf]+*** [[LTI Authenticator>LTI]] [#g284e3bf]
- Moodle と連携する為の 認証モジュール(Moodleの外部サービスを使用) - Moodle と連携する為の 認証モジュール(Moodleの外部サービスを使用)
- 先に authlib を入れておく. - 先に authlib を入れておく.
-- 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 129: Line 233:
#br #br
-**** cull_idle_servers.py [#n8a3f52c+*** Culler(option) [#w04c68db
-- [[cull_idle_servers>JupyterHub/DockerSpa​wner#zc9428f7]] +- オプション機能.無くても良い. 
-- 接続の切れた docker コンテナを削除+- 接続の切れた docker コンテナを削除する 
 +- 使用しない場合は,LTIDockerSpawner/LTIPodmanSpawner の設定ファイルの該当部分をコメントアウトする. 
 +-- [[cull_idle_servers>JupyterHub/DockerSpa​wner#zc9428f7]]
 +#br
 +
 +**** cull_idle_servers.py [#n8a3f52c]
- https://github.com/jupyterhub/jupyterhub​/tree/a6b7e303df03865d6420f6bccdf627b39f​1d0dc1/examples/cull-idle - https://github.com/jupyterhub/jupyterhub​/tree/a6b7e303df03865d6420f6bccdf627b39f​1d0dc1/examples/cull-idle
 +-- 色々と試した中ではこれが一番良かった.
- 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 143: Line 254:
** 連携拡張 by [[NSL]] [#ma810a39] ** 連携拡張 by [[NSL]] [#ma810a39]
- MS Windows のことは何も考慮していませんので,MS Windowsでは多分動きません. - MS Windows のことは何も考慮していませんので,MS Windowsでは多分動きません.
 +#br
 +*** Moodle [#dea0e11b]
 +- LTIDockerSpawner を使用する場合はMoodle ホスト側に,少なくとも ''docker-ce-cli''/docker-cli がインストールされている必要がある.
 +- LTIPodmanSpawner を使用する場合はMoodle ホスト側に,少なくとも ''podman-remote'' がインストールされている必要がある.
 +#br
 +
 +*** [[LTIContainerSpawner>JupyterHub/LTICont​ainerSpawner]] [#va019dd5]
 +- 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 クラス.
 +
 +- LTIContainerSpawner は LTIDockerSpawner と LTIPodmanSpawner を纏めた呼び方.
 +-- ''LTIContainerSpawner = LTIDockerSpawner + LTIPodmanSpawner''
 +
 + git clone https://gitlab.nsl.tuis.ac.jp/iseki/ltic​ontainerspawner.git
 + cd lticontainerspawner/
 + make
 +
 +
 +#br
 +
 +**** [[LTIDockerSpawner>JupyterHub/LTIDockerS​pawner]] [#kfa79499]
 +- JupyterHub/[[SystemUserSpawner>JupyterHu​b/SystemUserSpawner]] クラスを継承.
 +- 現時点(2021/10)では ''etc/jupyterhub_docker_config.py''  の中で実装
#br #br
-*** [[LTIDockerSpawner>JupyterHub/LTIDockerSpawner]] [#k758b918+**** [[LTIPodmanSpawner>JupyterHub/LTIPodmanSpawner]] [#u1b06d85
-- https://gitlab.nsl.tuis.ac.jp/iseki/ltidockerspawner+- [[Podman]] が使用可能 
 +- JupyterHub/Spawner クラスを継承 
 +- niklas netter 氏の [[podmanspawner>PodmanSpawner]] を利用 (very thanks!) 
 +-- https://github.com/gatoniel/podmanspawner
-- [[Moodle]] と [[JupyterHub]] の連携をとるための Spawner クラス. +- 現時点(2021/10) では pod の起動に Popen() を使用している. 
-- [[SystemUserSpawner>JupyterHub/SystemUserSpawner]] クラスを継承. +- 設定ファイルは'' etc/jupyter_podman_config.py''
-- 現時点(2021/08)では jupyterhub_config.py の中で実装+
#br #br
Line 158: Line 296:
- 環境変数を使用した start.sh による Jupyter Lab/Notebook コンテナの動作制御. - 環境変数を使用した start.sh による Jupyter Lab/Notebook コンテナの動作制御.
#br #br
-- 教師ユーザと学生ユーザの分離. +- 以下の機能をコースの外部サービス毎に設定可能 
-- ユーザ毎の Volume のマウント,及びアクセス権(教師と学生)の設定. +-- 教師ユーザと学生ユーザの分離. 
--- 教材の配布と収集に便利 +-- ユーザ毎の Volume のマウント,及びアクセス権(教師と学生)の設定. 
-- Volume への任意名でのアクセス. +--- 教材の配布と収集に便利 
-- 起動イメージのリモート選択.Jupyter Lab/Notebook でないイメージを選択すると漏れなく死にます :-o +-- ユーザの作業用 Volumeの設定 
-- 起動 URL(Lab/Notebook)の選択. +-- Volume への任意名でのアクセス. 
-- iframe サポート +-- 起動イメージのリモート選択.表示名のフィルタリング.Jupyter Lab/Notebook でないイメージを選択すると漏れなく死にます :-o 
-- CPU/Momery の制限+-- 起動 URL(Lab/Notebook)の選択. 
 +-- %%iframe サポート%%  一部のみサポート:動くための条件がシビア(tornado のバージョンやブラウザの種類によって条件が変わる) 
 +-- CPU/Momery の制限
#br #br
**** Volume 名に関する制約 [#q7b847fc] **** Volume 名に関する制約 [#q7b847fc]
-- ボリューム名には小文字のアルファベット・数字以外は使用できない.特殊文字も使用できない.+- ボリューム名には小文字のアルファベット・数字以外は使用できない.特殊文字も使用できない.(snake_case)
- 大文字のボリューム名は小文字に変換される. - 大文字のボリューム名は小文字に変換される.
-- 同じボリューム名・アクセス名を指定した場合は,最初の物が優先される.+- ボリュームに対して同じボリューム名・アクセス名を指定した場合は,最初の物が優先される.
- 一個の JupyterHub に対して複数の Moodle からのアクセスをサポート - 一個の JupyterHub に対して複数の Moodle からのアクセスをサポート
 +- アクセス名の先頭に - を付けた場合は,教師ユーザのみシンボリックリンクが張られる
 +- 注)アクセス名:ボリュームへ張られるシンボリックリンクの名前
#br #br
**** 注意事項 [#n57178a3] **** 注意事項 [#n57178a3]
-- %%Moodle で埋め込み(iframe)表示を行う場合は,Moodle と JupyterHub を同じホストにするか,Moodle のホスト上で feserver を動かす.%% +- iframe 
-- iframe 対応.ただし tornado が cookie の samesite を解釈可能なこと.(python3.8以上)+-- %%Moodle で埋め込み(iframe)表示を行う場合は,Moodle と JupyterHub を同じホストにするか,Moodle のホスト上で feserver を動かす.%% 
 +-- %%iframe 対応.ただし tornado が cookie の samesite を解釈可能なこと.(python3.8以上)%% 
 +-- tornado のバージョンやブラウザの種類によって条件が変わるので,部分的サポートとする.
#br #br
**** 起動 [#bdc8edbc] **** 起動 [#bdc8edbc]
-- jupyterhub -f mdldockerspawner/etc/jupyterhub_config.py+- jupyterhub -f lticontainerspawner/etc/jupyterhub_docker_config.py 
 +- jupyterhub -f lticontainerspawner/etc/jupyterhub_podma​n_config.py
#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 サポート用 Moodleモジュール+- MDLDockerSpawner/LTIPodmanSpawner サポート用 Moodleモジュール
- docker のリモート制御について - docker のリモート制御について
--- docker クライアント(/usr/bin/docker)が必要 +-- docker クライアント(docker-cd-cli : /usr/bin/docker) が必要 
--- dockerd が動いているホストに ssh できる,ホスト上のユーザ(dockerグループに所属)が必要+-- dockerd が動いているホストに ssh できる,ホスト上のユーザ(dockerのソケットのグループに所属)が必要 
 + 
 +- podman のリモート制御について 
 +-- podman コマンド(podman-remote) が必要 
 +-- podman が動いているホストに ssh できる,ホスト上のユーザ(podmanのソケットのグループに所属)が必要
#br #br
**** 機能 [#m538ed2a] **** 機能 [#m538ed2a]
- LTI のカスタムパラメータ管理 - LTI のカスタムパラメータ管理
-- Docker のリモート制御+- Docker/Podman のリモート制御
-- イメージの一覧の取得 -- イメージの一覧の取得
-- Volume 管理(作成,表示,削除) -- Volume 管理(作成,表示,削除)
Line 207: Line 356:
#br #br
-*** [[feserver]]  [#va0d030b]+**** [[Docker]] を使う場合 [#d9c2f77c] 
 +- JupyterHub/Docker が起動するホスト上にアクセス用ユーザを用意する. 
 +-- %%アクセス用ユーザのホームディレクトリについて,アクセス用ユーザが書き込み可能であること.%% 
 +--- %%CentOS8 で嵌った.ユーザを dockerにしたんだが,dockerのホームディレクトリなのに,dockerが書き込み可能でなかった.%% (勘違い?) 
 +-- アクセス用ーザが docker のグループに属していること(UNIXソケットファイルにアクセスするため). 
 +-- アクセス用ユーザのログインシェルは不要-- アクセス用ーザが docker のグループに属していること(UNIXソケットファイルにアクセスするため). 
 +-- アクセス用ユーザのログインシェルは不要 
 +- Webサーバの実効ユーザが自分のホームディレクトリについて,書き込み可能であること. 
 + 
 +#br 
 + 
 +**** [[Podman]] を使う場合 [#nd0d330c] 
 +- JupyterHub/Podman が起動するホスト上にアクセス用ユーザを用意する. 
 +-- アクセス用ユーザのログインシェルは不要 
 +-- Moodleホストからのアクセスには podman-remote か podman  --remote コマンドを使用する 
 +- Webサーバの実効ユーザが自分のホームディレクトリについて,書き込み可能であること. 
 +- Podman が起動するホスト上の socket は /var/run/podman/podman.sock 
 +-- /var/run/podman/ のパーミッションを drwxrws--- とし,グループを root 以外に設定. 
 +-- socket を読み書きできるアクセス用ユーザを作成する(グループが同じになるようにする). 
 +--- 例えば podman グループ(アクセス用ユーザはこのグループに参加する必要がある)を作成した場合 (root  podman  drwxrws---) 
 +  
 +- /usr/lib/systemd/system/podman.socket 
 + [Unit] 
 + Description=Podman API Socket 
 + Documentation=man:podman-system-service​(1) 
 +  
 + [Socket] 
 + ExecStartPre=/usr/bin/chgrp podman /var/run/podman 
 + ExecStartPre=/usr/bin/chmod g+rwxs /var/run/podman 
 + ListenStream=%t/podman/podman.sock ​
 + SocketMode=0660 
 +  
 + [Install] 
 + 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 
 +-- podman.socket が勝手に再起動を繰り返す. 
 +-- 再起動する度に /var/run/podman が作り直されるので,パーミッションが rwx------ に戻ってしまう. 
 +-- 制御用のユーザプロセスが ソケットにアクセスできなくなる. 
 +--- これは CentOS7 での現象(バージョンが古いせいかも).CentOS8では問題なし. 
 +#br 
 + 
 +*** [[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
- feserver フロントエンドサーバ(TCP中継サーバ) - feserver フロントエンドサーバ(TCP中継サーバ)
-- MITM 的動作を行う私的試験用ツール.(一応公開もしている)+- MITM 的動作を行う私的試験用ツール.(一応公開もしている. svn co http://www.nsl.tuis.ac.jp/svn/linux/fese​rver/trunk feserver)
- 各種モジュールを読み込むことにより,色々な通信データの処理が可能. - 各種モジュールを読み込むことにより,色々な通信データの処理が可能.
- コンパイルに [[JunkBox_Lib]] が必要 - コンパイルに [[JunkBox_Lib]] が必要
 + # svn co http://www.nsl.tuis.ac.jp/svn/linux/Junk​Box_Lib/trunk JunkBox_Lib
 + # cd JunkBox_Lib
 + # ./config.sh
 + # ./configure --enable-ssl
 + # make
 + # cd ..
 + # svn co http://www.nsl.tuis.ac.jp/svn/linux/fese​rver/trunk feserver
 + # cd feserver
 + # make
 + # vi nbsw.conf
 + # ./fesvr ......  -m feplg_nbws.so  --conf nbsw.conf
#br #br
 +
**** 起動例 [#d9e04c03] **** 起動例 [#d9e04c03]
-  ./fesvr -h 172.22.1.75:8000 -p 9000 -m feplg_nbws.so -c -s --conf nbsw.conf -  ./fesvr -h 172.22.1.75:8000 -p 9000 -m feplg_nbws.so -c -s --conf nbsw.conf
Line 228: Line 442:
-- -c : クライアントに対してSSL/TLS接続になる(fesrv はSSL/TLSサーバとなる). -- -c : クライアントに対してSSL/TLS接続になる(fesrv はSSL/TLSサーバとなる).
-- --conf : 設定ファイル指定 -- --conf : 設定ファイル指定
--- --cert : -c を指定した場合のサーバ証明書:PEM形式. デフォルトは /etc/pki/tls/certs/postfix.pem +-- --cert : -c を指定した場合のサーバ証明書:PEM形式.設定ファイル内でも指定可能. デフォルトは /etc/pki/tls/certs/server.pem 
--- --key  : -c を指定した場合のサーバの秘密鍵:PEM形式.デフォルトは /etc/pki/tls/private/postfix.key+-- --key  : -c を指定した場合のサーバの秘密鍵:PEM形式.設定ファイル内でも指定可能. デフォルトは /etc/pki/tls/private/key.pem
#br #br
Line 256: Line 470:
- 以下,各モジュール共通の設定.コマンドラインで指定した場合は,そちらが優先. - 以下,各モジュール共通の設定.コマンドラインで指定した場合は,そちらが優先.
-- Fesvr_Server_Cert = Feserver 本体用の設定.HTTPS通信を行う場合のサーバ証明書(PEM形式) -- Fesvr_Server_Cert = Feserver 本体用の設定.HTTPS通信を行う場合のサーバ証明書(PEM形式)
---- デフォルトは /etc/pki/tls/certs/postfix.pem+--- デフォルトは /etc/pki/tls/certs/server.pem
-- Fesvr_Private_Key = Feserver 本体用の設定.HTTPS通信を行う場合の秘密鍵ファイル(PEM形式) -- Fesvr_Private_Key = Feserver 本体用の設定.HTTPS通信を行う場合の秘密鍵ファイル(PEM形式)
----デフォルトは /etc/pki/tls/private/postfix.key+---デフォルトは /etc/pki/tls/private/key.pem
#br #br
Line 279: Line 493:
*** ipynb_conv [#b15438d1] *** ipynb_conv [#b15438d1]
- ipynb ファイルの(コード)タグに解析用の通し番号を入れるツール - ipynb ファイルの(コード)タグに解析用の通し番号を入れるツール
-- MDLDockerSpawner に同梱(C言語) +- LTIContainerSpawner に同梱(C言語) 
-- phpバージョンもあり (現時点で使用予定なし.サンプルコード.)+- %%phpバージョンもあり (現時点で使用予定なし.サンプルコード)%% 
 +--  PHPバージョンは,C言語バージョンにバグがあった場合の保険.(最初から PHPバージョンを使えと言う指摘は最もですが.... C言語バージョンを折角作ったので....)
#br #br
Line 289: 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

43 user(s) are online (4 user(s) are browsing xpwiki)

Members: 0
Guests: 43

more...

Access Counter

Today : 935935935
Yesterday : 4372437243724372
Total : 2366244823662448236624482366244823662448236624482366244823662448
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com