6: 2021-10-02 (土) 15:06:01 iseki |
7: 2021-10-02 (土) 18:57:11 iseki |
| - [[LTI Hack>Moodle/Moodle-LTI]] | | - [[LTI Hack>Moodle/Moodle-LTI]] |
| - [[LTIDockerSpawner>JupyterHub/LTIDockerSpawner]] | | - [[LTIDockerSpawner>JupyterHub/LTIDockerSpawner]] |
| + | - [[LTIPodmanSpawner>JupyterHub/LTIPodmanSpawner]] |
| + | |
| | | |
| - [[mod_ltids]] | | - [[mod_ltids]] |
| - JupyterHub が動くホストとは別のホストでもOK | | - JupyterHub が動くホストとは別のホストでもOK |
| - 外部サービス,Webサービスを使用する. | | - 外部サービス,Webサービスを使用する. |
| + | |
| + | - LTIDockerSpawner を使用する場合はMoodle ホスト側に,少なくとも ''docker-ce-cli''/docker-cli がインストールされている必要がある. |
| + | - LTIPodmanSpawner を使用する場合はMoodle ホスト側に,少なくとも ''podman-remote'' がインストールされている必要がある. |
| + | #br |
| + | |
| #br | | #br |
| | | |
| **** Webサービス [#k4138c47] | | **** Webサービス [#k4138c47] |
| - Feserver からの XML-RPC を受け入れて,データをDBに格納する. | | - Feserver からの XML-RPC を受け入れて,データをDBに格納する. |
| + | -- データ収集を行わない(Feserverを使用しない)なら,不必要 |
| #br | | #br |
| | | |
- | *** [[Docker]] [#cd2ef212] | + | *** Container [#od457509] |
- | **** CentOS8 [#ufeb99f8] | + | - Docker または Podman が使用可能 |
| + | #br |
| + | |
| + | **** [[Docker]] [#cd2ef212] |
| + | - [[LTIDockerSpawner>JupyterHub/LTIDockerSpawner]] を使用 |
| + | |
| + | - 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 |
| (base) # docker pull jupyterhub/singleuser | | (base) # docker pull jupyterhub/singleuser |
| (base) # docker pull jupyter/datascience-notebook | | (base) # docker pull jupyter/datascience-notebook |
| + | #br |
| + | |
| + | **** [[Podman]] [#k2bdffda] |
| + | - [[LTIPodmanSpawner>JupyterHub/LTIPodmanSpawner]] を使用 |
| + | |
| + | - CentOS8 |
| + | (base) # dnf -y install podman |
| + | (base) # dnf -y install podman-remote |
| + | (base) # dnf -y install podman-docker |
| + | |
| #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 |
| #br | | #br |
| | | |
- | **** cull_idle_servers.py [#n8a3f52c] | + | **** cull_idle_servers.py (option)[#n8a3f52c] |
| + | - オプション機能.無くても良い. |
| + | -- 使用しない場合は,LTIDockerSpawner/LTIPodmanSpawner の設定ファイルの該当部分をコメントアウトする. |
| - [[cull_idle_servers>JupyterHub/DockerSpawner#zc9428f7]] | | - [[cull_idle_servers>JupyterHub/DockerSpawner#zc9428f7]] |
| - 接続の切れた docker コンテナを削除 | | - 接続の切れた docker コンテナを削除 |
| | | |
| - https://github.com/jupyterhub/jupyterhub/tree/a6b7e303df03865d6420f6bccdf627b39f1d0dc1/examples/cull-idle | | - https://github.com/jupyterhub/jupyterhub/tree/a6b7e303df03865d6420f6bccdf627b39f1d0dc1/examples/cull-idle |
| + | -- 色々と試した中ではこれが一番良かった. |
| - wget で DLして /usr/local/bin にコピー | | - wget で DLして /usr/local/bin にコピー |
| pip3 install pycurl | | pip3 install pycurl |
| #br | | #br |
| | | |
- | *** [[LTIDockerSpawner>JupyterHub/LTIDockerSpawner]] [#k758b918] | + | *** [[LTIContainerSpawner>JupyterHub/LTIContainerSpawner]] [#va019dd5] |
- | - https://gitlab.nsl.tuis.ac.jp/iseki/ltidockerspawner | + | - https://gitlab.nsl.tuis.ac.jp/iseki/lticontainerspawner |
| + | - [[Moodle]](その他の LTIコンシューマ) と [[JupyterHub]] の連携をとるための Spawner クラス. |
| | | |
- | - [[Moodle]] と [[JupyterHub]] の連携をとるための Spawner クラス. | + | - LTIContainerSpawner は LTIDockerSpawner と LTIPodmanSpawner を纏めた呼び方. |
| + | -- LTIContainerSpawner = LTIDockerSpawner + LTIPodmanSpawner |
| + | #br |
| + | |
| + | **** [[LTIDockerSpawner>JupyterHub/LTIDockerSpawner]] [#kfa79499] |
| - [[SystemUserSpawner>JupyterHub/SystemUserSpawner]] クラスを継承. | | - [[SystemUserSpawner>JupyterHub/SystemUserSpawner]] クラスを継承. |
- | - 現時点(2021/08)では jupyterhub_config.py の中で実装 | + | - 現時点(2021/10)では ''etc/jupyterhub_docker_config.py'' の中で実装 |
| + | #br |
| + | |
| + | **** [[LTIPodmanSpawner>JupyterHub/LTIPodmanSpawner]] [#u1b06d85] |
| + | - [[Podman]] が使用可能 |
| + | - niklas netter 氏の [[podmanspawner>PodmanSpawner]] を利用 (very thanks!) |
| + | -- https://github.com/gatoniel/podmanspawner |
| + | |
| + | - 現時点(2021/10) では pod の起動に Popen() を使用している. |
| + | - 設定ファイルは'' etc/jupyter_podman_config.py'' |
| #br | | #br |
| | | |
| -- 教材の配布と収集に便利 | | -- 教材の配布と収集に便利 |
| - Volume への任意名でのアクセス. | | - Volume への任意名でのアクセス. |
- | - 起動イメージのリモート選択.Jupyter Lab/Notebook でないイメージを選択すると漏れなく死にます :-o | + | - 起動イメージのリモート選択.表示名のフィルタリング.Jupyter Lab/Notebook でないイメージを選択すると漏れなく死にます :-o |
| - 起動 URL(Lab/Notebook)の選択. | | - 起動 URL(Lab/Notebook)の選択. |
- | - iframe サポート | + | - %%iframe サポート%% 動くための条件がシビア(tornado のバージョンやブラウザの種類によって条件が変わる) |
| - CPU/Momery の制限 | | - CPU/Momery の制限 |
| #br | | #br |
| | | |
| **** Volume 名に関する制約 [#q7b847fc] | | **** Volume 名に関する制約 [#q7b847fc] |
- | - ボリューム名には小文字のアルファベット・数字以外は使用できない.特殊文字も使用できない. | + | - ボリューム名には小文字のアルファベット・数字以外は使用できない.特殊文字も使用できない.(snake_case) |
| - 大文字のボリューム名は小文字に変換される. | | - 大文字のボリューム名は小文字に変換される. |
| - 同じボリューム名・アクセス名を指定した場合は,最初の物が優先される. | | - 同じボリューム名・アクセス名を指定した場合は,最初の物が優先される. |
| **** 注意事項 [#n57178a3] | | **** 注意事項 [#n57178a3] |
| - %%Moodle で埋め込み(iframe)表示を行う場合は,Moodle と JupyterHub を同じホストにするか,Moodle のホスト上で feserver を動かす.%% | | - %%Moodle で埋め込み(iframe)表示を行う場合は,Moodle と JupyterHub を同じホストにするか,Moodle のホスト上で feserver を動かす.%% |
- | - iframe 対応.ただし tornado が cookie の samesite を解釈可能なこと.(python3.8以上) | + | - %%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 |
- | #br | + | - jupyterhub -f lticontainerspawner/etc/jupyterhub_podman_config.py |
- | | + | |
- | *** [[LTIPodmanSpawner>JupyterHub/LTIPodmanSpawner]] [#eb2e9361] | + | |
- | - テスト中. | + | |
| #br | | #br |
| | | |