#author("2023-08-29T02:47:03+00:00","default:iseki","iseki")
* LTIPodmanSpawner [#o4d49f50]
- [[JupyterHub]] から [[Podman]] を使用して,JupyterLab の pod を起動する.
- JupyterHub/Spawner クラスを継承
- Podman の root less モードでは全体の制御が難しいので,敢えて ''root モード''で起動する.
- see also. [[Moodle+JupyterHub]]
** LTIPodmanSpawner [#t7a18b72]
- gitlab: https://gitlab.nsl.tuis.ac.jp/iseki/lticontainerspawner
- 機能は,ほぼ [[LTIDockerSpawner>../LTIDockerSpawner]] と同じ.
- niklas netter 氏の podmanspawner を利用 (very thanks!)
-- https://github.com/gatoniel/podmanspawner
-- [[PodmanSpawner]]
- 現時点(2021/10) では pod の起動に Popen() を使用している.
- 設定ファイルは'' etc/jupyter_podman_config.py''
** 必要システム [#kd8f3323]
*** LTI コンシューマ [#f99c61b4]
- Moodle しかテストしていない
*** [[altfiles>NSS]] [#n90bdca5]
- ユーザの passwd, grouop 情報が必要
- SystemUserSpawner 用の [[NSS]] を使用した システムのユーザ情報の入手手法([[LDAP]] を使用する手もある)
- getent passwd と getent group で情報が取れるようになれば OK
- ファイルの設置場所はコンパイル時に指定
*** [[LTI]] [#g284e3bf]
- Moodle と連携する為の 認証モジュール(Moodleの外部サービスを使用)
- 先に authlib を入れておく.
-- conda install oauthlib or pip install oauthlib
*** cull_idle_servers.py (option)[#n8a3f52c]
- オプション機能.無くても良い.
-- 使用しない場合は,LTIDockerSpawner/LTIPodmanSpawner の設定ファイルの該当部分をコメントアウトする.
- [[cull_idle_servers>JupyterHub/DockerSpawner#zc9428f7]]
- 接続の切れた docker コンテナを削除
- https://github.com/jupyterhub/jupyterhub/tree/a6b7e303df03865d6420f6bccdf627b39f1d0dc1/examples/cull-idle
-- 色々と試した中ではこれが一番良かった.
- wget で DLして /usr/local/bin にコピー
pip3 install pycurl
wget https://raw.githubusercontent.com/jupyterhub/jupyterhub/a6b7e303df03865d6420f6bccdf627b39f1d0dc1/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