flagflag  If you want to see English page, please click "English" Button at Left.
1: 2021-09-14 (火) 19:13:53 iseki ソース 現: 2024-04-17 (水) 20:19:46 iseki ソース
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]]
 +- [[LTIPodmanSpawner>JupyterHub/LTIPodmanS​pawner]]
-- [[MDLDockerSpawner>JupyterHub/MDLDockerSpawner]] + 
-- [[mod_mdlds]] +- [[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 
 + 
 +*** 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 20: Line 78:
- JupyterHub が動くホストとは別のホストでもOK - JupyterHub が動くホストとは別のホストでもOK
- 外部サービス,Webサービスを使用する. - 外部サービス,Webサービスを使用する.
 +
 +- LTIDockerSpawner を使用する場合はMoodle ホスト側に,少なくとも ''docker-ce-cli''/docker-cli がインストールされている必要がある.
 +- LTIPodmanSpawner を使用する場合はMoodle ホスト側に,少なくとも ''podman-remote'' がインストールされている必要がある.
 +#br
 +
#br #br
Line 29: 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 42: 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 52: 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 61: 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 92: Line 194:
 # cd /usr/local/etc  # cd /usr/local/etc
- # wget https://XXXX.tuis.ac.jp/.../passwd + # wget https://XXXX/.../passwd 
- # wget https://XXXX.tuis.ac.jp/.../group          (group は 必要な物だけ /etc/group を編集しても良い)+ # wget https://XXXX/.../group          (group は 必要な物だけ /etc/group を編集しても良い)
- /etc/nsswitch.conf - /etc/nsswitch.conf
Line 99: 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+-- 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/
--- Patch 不要+-- Moodle に対して Patch 不要
- (jupyterhub)# pip install jupyterhub-ltiauthenticator==1.2.0+ (jupyterhub)# pip install --upgrade jupyterhub-ltiauthenticator
- Jupyterhub_conifg.py - Jupyterhub_conifg.py
Line 128: 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 にコピー
--- wget https://raw.githubusercontent.com/jupyte​rhub/jupyterhub/a6b7e303df03865d6420f6bc​cdf627b39f1d0dc1/examples/cull-idle/cull​_idle_servers.py+ 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 
 + cp cull_idle_servers.py /usr/local/bin 
 + chmod a+rx /usr/local/bin/cull_idle_servers.py
#br #br
Line 140: Line 255:
- MS Windows のことは何も考慮していませんので,MS Windowsでは多分動きません. - MS Windows のことは何も考慮していませんので,MS Windowsでは多分動きません.
#br #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
-*** [[MDLDockerSpawner>JupyterHub/MDLDockerS​pawner]] [#k758b918] 
-- https://gitlab.nsl.tuis.ac.jp/iseki/mdld​ockerspawner 
-- [[Moodle]] [[JupyterHub]] の連携をとるための Spawner クラス. +#br 
-- [[SystemUserSpawner>JupyterHub/SystemUse​rSpawner]] クラスを継承. + 
-- 現時点(2021/08)では jupyterhub_config.py  の中で実装+**** [[LTIDockerSpawner>JupyterHub/LTIDockerSpa​wner]] [#kfa79499
 +- JupyterHub/[[SystemUserSpawner>JupyterHub/SystemUse​rSpawner]] クラスを継承. 
 +- 現時点(2021/10)では ''etc/jupyterhub_docker_config.py'' の中で実装 
 +#br 
 + 
 +**** [[LTIPodmanSpawner>JupyterHub/LTIPodmanS​pawner]] [#u1b06d85] 
 +- [[Podman]] が使用可能 
 +- JupyterHub/Spawner クラスを継承 
 +- niklas netter 氏の [[podmanspawner>PodmanSpawner]] を利用 (very thanks!) 
 +-- https://github.com/gatoniel/podmanspawne​r 
 + 
 +- 現時点(2021/10) では pod の起動に Popen() を使用している. 
 +- 設定ファイルは'' etc/jupyter_podman_config.py''
#br #br
**** 機能 [#o44dc5d5] **** 機能 [#o44dc5d5]
- ユーザグループ機能の完全サポート - ユーザグループ機能の完全サポート
-- Moodle からの LTI カスタムパラメータを受信して動作.+- Moodle(その他の LTIコンシューマ)からの LTI カスタムパラメータを受信して動作.
- 環境変数を使用した 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 
 +-- 起動 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 
 +-- %%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_mdlds]]  [#hbfc4f2f] +*** [[mod_lticontainer]]  [#hbfc4f2f] 
-- https://gitlab.nsl.tuis.ac.jp/iseki/mod_mdlds+- 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 201: 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 222: 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 237: Line 457:
#br #br
-***** feplg_nbws.so の 設定ファイル [#jce86de4]+***** feplg_nbws.so の 設定ファイル(nbws.conf) [#d9285c96]
- Moodle_Host = XML-RPC を行うホスト名(FQDNまたはIPアドレス).デフォルトは localhost - Moodle_Host = XML-RPC を行うホスト名(FQDNまたはIPアドレス).デフォルトは localhost
- Moodle_Port = XML-RPC を行うホストのポート番号.デフォルトは 80 - Moodle_Port = XML-RPC を行うホストのポート番号.デフォルトは 80
Line 250: 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 273: Line 493:
*** ipynb_conv [#b15438d1] *** ipynb_conv [#b15438d1]
- ipynb ファイルの(コード)タグに解析用の通し番号を入れるツール - ipynb ファイルの(コード)タグに解析用の通し番号を入れるツール
-- MDLDockerSpawner に同梱(C言語) +- LTIContainerSpawner に同梱(C言語) 
-- phpバージョンもあり (現時点で使用予定なし.サンプルコード.)+- %%phpバージョンもあり (現時点で使用予定なし.サンプルコード)%% 
 +--  PHPバージョンは,C言語バージョンにバグがあった場合の保険.(最初から PHPバージョンを使えと言う指摘は最もですが.... C言語バージョンを折角作ったので....)
#br #br
Line 283: 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


トップ   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新の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
<今日>

オンライン状況

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

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

もっと...

アクセスカウンタ

今日 : 1030510305103051030510305
昨日 : 1766217662176621766217662
総計 : 2356563723565637235656372356563723565637235656372356563723565637
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com