6: 2021-08-31 (火) 11:11:09 iseki |
7: 2021-09-02 (木) 03:04:04 iseki |
| - https://gitlab.nsl.tuis.ac.jp/iseki/mod_mdlds | | - https://gitlab.nsl.tuis.ac.jp/iseki/mod_mdlds |
| #br | | #br |
| + | ** 機能(Tab) [#d7fb0b70] |
| + | |
| + | *** Over View [#tad57f26] |
| + | - 表紙 |
| + | - 設定表示 |
| + | #br |
| + | |
| + | *** Lti Connections [#h22de680] |
| + | - コース内にある LTI接続の一覧 -> Lti Edit へのリンク |
| + | - 表示設定へのリンク |
| + | #br |
| + | |
| + | *** Lti Setting [#z3069e1d] |
| + | - Lti Connections での,表示・非表示設定 |
| + | #br |
| + | |
| + | *** Lti Edit [#ae39bec4] |
| + | - LTI(外部サービス)インスタンスのカスタムパラメータを書き換える. |
| + | -- 通常は DB上のデータを書き換えるだけ. |
| + | - データを更新したタイミングで Dockerのボリュームを作成するように設定することも可能. |
| + | #br |
| + | |
| + | **** Accessible users [#l4e19364] |
| + | - LTIのカスタムパラメータの ''mdl_user'' に対応 |
| + | - Volume セクションで記述したボリュームをマウントできるユーザを指定する. |
| + | - ユーザはMoodleのユーザ名を,カンマ(,)または空白で区切って記述する. |
| + | - デフォルト(空欄)では全てのユーザがボリュームをマウントできない. |
| + | - アスタリスク(*)は全てのユーザがボリュームをマウントできることを表す. |
| + | #br |
| + | |
| + | **** Teachers [#zc5de450] |
| + | - LTIのカスタムパラメータの ''mdl_teacher'' に対応 |
| + | - コースの教師を指定する.指定の仕方は,mdl_user と同じ.* も使えるが,使う意味がない.(全員教師って何?) |
| + | - 教師の特権 |
| + | -- Task volume に書き込みができる. |
| + | -- Submit volume にあるファイルの読み込み,コピー,削除ができる. |
| + | -- ボリュームのアクセス名の先頭に マイナス(-) を付けた場合,教師に対してのみアクセス用のリンクが張られる(-は削除される) |
| + | --- 学生にリンクによるアクセスをさせたくない場合に使用(セキュリティ的な意味ではなく,操作上の学生の混乱を少なくさせるためのもの) |
| + | --- Personal volume を使うときに,Task volumeに使うと便利.と言うか,そのために作った. |
| + | #br |
| + | |
| + | **** Container image [#h616d693] |
| + | - LTIのカスタムパラメータの ''mdl_image'' に対応 |
| + | - 起動するコンテイメージを指定する.デフォルトの場合は,設定ファイルで指定したイメージ. |
| + | - Jupyter Lab/Notebook 以外のイメージを選択した場合は,漏れなくシステムが死にます. |
| + | -- じゃあ,Jupyter Lab/Notebook のイメージだけ表示すればと言われても,私の現時点でのスキルでは無理です. |
| + | #br |
| + | |
| + | **** Sub URL [#b8add38d] |
| + | - LTIのカスタムパラメータの ''mdl_suburl'' に対応 |
| + | - Lab か Notebook のどちらにアクセスするかのURLを指定する.デフォルトは設定ファイルで指定したURL. |
| + | - Lab を指定した場合は,起動するコンテイメージが Labをサポートしていないと 404 not found になる. |
| + | #br |
| + | |
| + | **** Volume セクション [#m11ddd29] |
| + | - Task volume, Submit volume はユーザが JupyterHubにアクセスしたときに(許可があれば)マウントされる. |
| + | -- 許可ユーザの書き方は mdl_user と同じ.ただしデフォルト(空欄)では,全てのユーザが許可される. |
| + | -- md_user よりも,ここで指定される個々の許可ユーザの方が優先される. |
| + | -- * も使用できるが意味はない. 空欄にしておけば良いので. |
| + | -- 通常は誰かが jupyterHubにアクセスしてログインした瞬間に(ボリュームが存在しなければ)ボリュームが作成され,マウントされる. |
| + | -- マウントポイントは,ボリュームを外した場合もそのまま残るので見た目が良くない.ドット(.) ディレクトリの下に隠すと良い. |
| + | - コースの LTIインスタンス毎にユーザに見せるディレクトリを変更できる. |
| + | - マウントしたボリュームには,アクセス名によるシンボリックリンクでアクセス可能. |
| + | -- ボリュームの再利用に便利. |
| + | -- マウントポイントだけ存在して,実際にはマウントされてないボリュームとの識別に便利 |
| + | -- マウントポイントをドット(.) ディレクトリの下に隠すことができるので,見た目もすっきり. |
| + | |
| + | |
| + | - 表示名の指定についての制約 |
| + | -- アルファベット小文字,及び数字のみ使用可能 |
| + | -- 三種類のボリューム(vol, sub, prs)について,同じ表示名が指定できる. |
| + | #br |
| + | |
| + | ***** Task volume [#j8ff684d] |
| + | - LTIのカスタムパラメータの ''mdl_vol_表示名=アクセス名: 許可ユーザ'' に対応 |
| + | - 課題提示用ボリューム.教師は書き込み可能だが,学生は読み出しのみ可能 |
| + | - Volumes タブで削除可能 |
| + | - パーミッション:rwxrwsr-x, オーナ:一番最初にアクセスした教師,グループ:教師 |
| + | - 教師 UMASK 0033, 学生 UMASK 0037 |
| + | #br |
| + | |
| + | ***** Submit volume [#h71a48b0] |
| + | - LTIのカスタムパラメータの ''mdl_sub_表示名=アクセス名: 許可ユーザ'' に対応 |
| + | - 課題回収用ボリューム.教師は読み出し(書き込み,削除:これはオーナのみ)が可能だが,学生は課題の提出(書き込み)と自分の提出した課題にのみアクセス(読み出し,削除)可能 |
| + | - Volumes タブで削除可能 |
| + | - パーミッション:rwxrwsrwt,オーナ:一番最初にアクセスした教師,グループ:教師 |
| + | - 教師 UMASK 0033, 学生 UMASK 0037 |
| + | #br |
| + | |
| + | ***** Personal volume [#xde7793d] |
| + | - LTIのカスタムパラメータの ''mdl_prs_表示名=アクセス名: 許可ユーザ'' に対応 |
| + | - これはユーザの専用ボリュームに''恒久的に作成されるディレクトリ''である. |
| + | - ユーザ本人しかアクセスできない.(コンテナ起動時の管理プロセスを除く) |
| + | - Task volume, Submit volume は Volumes タブで削除可能だが,これは一度作成するとシステムの管理者またはユーザ本人しか削除できない |
| + | -- このモジュールからの削除は,やってやれないこともないが,現時点ではその機能は実装されていない. |
| + | - ''Task volume と同じ名前(表示名)で作成すると,コンテナ起動時に Task vokume の内容がここにコピーされる.'' |
| + | -- 課題配布に使用するのが主な目的. |
| + | -- 取り扱いが面倒だが,上手く使えば強力. |
| + | - 許可ユーザに名前がない場合は,ディレクトリに対して何の操作も行われない.(ディレクトリ自体は存在) |
| + | -- アクセス名からのリンクは行われない. |
| + | -- Task volume と同じ名前(表示名)にしても,コピーは行われない. |
| + | #br |
| + | **** その他のカスタムパラメータ [#w8e77374] |
| + | - mdl_sessionifo : このモジュールのインスタンスIDと対応する LTIインスタンスのIDが自動的に設定される. |
| + | -- ユーザが気にすることは何もない.このデータは実際には feserver の feplg_nbwsモジュールに送られてる. |
| + | - このモジュールが使用するもの以外の カスタムパラメータには一切影響を及ぼさない. |
| + | #br |
| + | |
| + | *** Volumes [#v8f11413] |
| + | - 関連する Dockerボリュームの表示名の一覧とその削除. |
| + | - 表示されるボリューム名(表示名)は,省略された名前 |
| + | - 本来の名前: ''mdl_[ vol | sub | prs ]_表示名_コースID_MoodleホストのFQDN'' |
| + | -- 例:''mdl_vol_xyz_98_el.mml.tuis.ac.jp'' |
| + | #br |
| + | |
| + | ** 課題の配布と回収 [#z4207c5c] |
| + | #br |
| + | |
| + | ** XML-RPC [#w4125370] |
| + | #br |
| + | |
| + | ** Install, 設定 [#h55d9c51] |
| + | |
| *** Install [#cb55e0da] | | *** Install [#cb55e0da] |
| # cd {moodle_dir}/mod | | # cd {moodle_dir}/mod |
| *** docker_rsock.sh [#b8408faf] | | *** docker_rsock.sh [#b8408faf] |
| - docker のリモートコントロール用シェルスクリプト | | - docker のリモートコントロール用シェルスクリプト |
| + | - ssh のポートフォワーディングを使って,UNIXのソケットファイルを繋げる. |
| + | - Dockerホスト側に,sshでログイン可能な(ログイン)ユーザが必要. |
| #br | | #br |
| + | |
| **** Moodle 側について [#x2ea61d9] | | **** Moodle 側について [#x2ea61d9] |
| - docker クライアント(/usr/bin/docker)が必要 | | - docker クライアント(/usr/bin/docker)が必要 |
| #br | | #br |
- | **** docker 側のユーザについて [#u03a87eb] | + | **** docker 側のログインユーザについて [#u03a87eb] |
| + ユーザのホームディレクトリについて,ユーザが書き込み可能であること. | | + ユーザのホームディレクトリについて,ユーザが書き込み可能であること. |
- | + ユーザが docker のグループに属していること | + | ++ CentOS8 で嵌った.ユーザを dockerにしたんだが,dockerのホームディレクトリなのに,dockerが書き込み可能でなかった. |
| + | + ユーザが docker のグループに属していること(UNIXソケットファイルにアクセスするため). |
| + ユーザのログインシェルは不要 | | + ユーザのログインシェルは不要 |
| | | |
| #br | | #br |
| | | |
| + | ** Hack [#o0db98a7] |
| *** [[DB>./DB]] [#df5455f9] | | *** [[DB>./DB]] [#df5455f9] |
| + | |
| **** [[mdl_mdlds>./DB/mdl_mdlds]] [#q6c18d6f] | | **** [[mdl_mdlds>./DB/mdl_mdlds]] [#q6c18d6f] |
| **** [[mdl_mdlds_websock_data>./DB/mdl_mdlds_websock_data]] [#tcb471ae] | | **** [[mdl_mdlds_websock_data>./DB/mdl_mdlds_websock_data]] [#tcb471ae] |