15: 2021-09-16 (木) 00:22:54 iseki |
16: 2021-09-17 (金) 14:38:42 iseki |
- | * mod_mdlds [#vc2f0b1e] | + | * mod_ltids [#vc2f0b1e] |
| + | - サポート対象の MDLDockerSpawner が [[LTIDockerSpawner>JupyterHub/LTIDockerSpawner]] に名称を変更したので,このモジュールも mod_mdlds から mod_ltids へ名称を変更しました.(2021 9/17) |
| + | #br |
| | | |
| ** [[Moodle]] Module for Moodle & [[JupyterHub]] Integration [#s675b15a] | | ** [[Moodle]] Module for Moodle & [[JupyterHub]] Integration [#s675b15a] |
- | - gitlab: https://gitlab.nsl.tuis.ac.jp/iseki/mod_mdlds | + | - gitlab: https://gitlab.nsl.tuis.ac.jp/iseki/mod_ltids |
| | | |
- | - [[MDLDockerSpawner>JupyterHub/MDLDockerSpawner]] をサポートする,Moodle用モジュール | + | - [[LTIDockerSpawner>JupyterHub/LTIDockerSpawner]] をサポートする,Moodle用モジュール |
| - see also. [[Moodle+JupyterHub]] | | - see also. [[Moodle+JupyterHub]] |
| #br | | #br |
| | | |
| **** カスタムパラメータ一覧 [#zb17a132] | | **** カスタムパラメータ一覧 [#zb17a132] |
- | - mdl_users= | + | - lms_users= |
- | - mdl_teachers= | + | - lms_teachers= |
- | - mdl_image= | + | - lms_image= |
- | - mdl_defburl= | + | - lms_defburl= |
- | - mdl_cpulimit= | + | - lms_cpulimit= |
- | - mdl_memlimit= | + | - lms_memlimit= |
- | - mdl_vol_表示名= | + | - lms_vol_表示名= |
- | - mdl_sub_表示名= | + | - lms_sub_表示名= |
- | - mdl_prs_表示名= | + | - lms_prs_表示名= |
- | - mdl_iframe= | + | - lms_iframe= |
- | - mdl_sessionifo= | + | - lms_sessionifo= |
| | | |
| - カスタムパラメータ名は snake_case | | - カスタムパラメータ名は snake_case |
| | | |
| **** Accessible users [#l4e19364] | | **** Accessible users [#l4e19364] |
- | - LTIのカスタムパラメータの ''mdl_users'' に対応 | + | - LTIのカスタムパラメータの ''lms_users'' に対応 |
| - Volume セクションで記述したボリュームをマウントできるユーザを指定する. | | - Volume セクションで記述したボリュームをマウントできるユーザを指定する. |
| - ユーザはMoodleのユーザ名を,カンマ(,)または空白で区切って記述する. | | - ユーザはMoodleのユーザ名を,カンマ(,)または空白で区切って記述する. |
| | | |
| **** Teachers [#zc5de450] | | **** Teachers [#zc5de450] |
- | - LTIのカスタムパラメータの ''mdl_teachers'' に対応 | + | - LTIのカスタムパラメータの ''lms_teachers'' に対応 |
- | - コースの教師を指定する.指定の仕方は,mdl_user と同じ.* も使えるが,使う意味がない.(全員教師って何?) | + | - コースの教師を指定する.指定の仕方は,lms_user と同じ.* も使えるが,使う意味がない.(全員教師って何?) |
| - 途中で教師のメンバを変更した場合は,task volume および submit volume のオーナが教師グループから外れる可能性があるので,注意が必要. | | - 途中で教師のメンバを変更した場合は,task volume および submit volume のオーナが教師グループから外れる可能性があるので,注意が必要. |
| -'' 教師の特権'' | | -'' 教師の特権'' |
| | | |
| **** Container image [#h616d693] | | **** Container image [#h616d693] |
- | - LTIのカスタムパラメータの ''mdl_image'' に対応 | + | - LTIのカスタムパラメータの ''lms_image'' に対応 |
| - 起動するコンテイメージを指定する.デフォルトの場合は,設定ファイルで指定したイメージ. | | - 起動するコンテイメージを指定する.デフォルトの場合は,設定ファイルで指定したイメージ. |
| - Jupyter Lab/Notebook 以外のイメージを選択した場合は,漏れなくシステムが死にます. | | - Jupyter Lab/Notebook 以外のイメージを選択した場合は,漏れなくシステムが死にます. |
| | | |
| **** Default URL [#b8add38d] | | **** Default URL [#b8add38d] |
- | - LTIのカスタムパラメータの ''mdl_defburl'' に対応 | + | - LTIのカスタムパラメータの ''lms_defburl'' に対応 |
| - Lab か Notebook のどちらにアクセスするかのURLを指定する.デフォルトは設定ファイルで指定したURL. | | - Lab か Notebook のどちらにアクセスするかのURLを指定する.デフォルトは設定ファイルで指定したURL. |
| - Lab を指定した場合は,起動するコンテイメージが Labをサポートしていないと 404 not found になる. | | - Lab を指定した場合は,起動するコンテイメージが Labをサポートしていないと 404 not found になる. |
| | | |
| **** CPU Limit [#nd4baaa6] | | **** CPU Limit [#nd4baaa6] |
- | - ''mdl_cpulimit'' に対応. | + | - ''lms_cpulimit'' に対応. |
| - Docker コンテナ内での CPU数の上限 | | - Docker コンテナ内での CPU数の上限 |
| #br | | #br |
| | | |
| **** Memory Limit [#d46eb1f0] | | **** Memory Limit [#d46eb1f0] |
- | - ''mdl_memimit'' に対応. | + | - ''lms_memimit'' に対応. |
| - Docker コンテナ内での メモリの上限 | | - Docker コンテナ内での メモリの上限 |
| - CPU Limit は 0.1 でも結構動くが,メモリ 120Mぐらいだと JupyterHub/singleuser のコンテナは起動しない. | | - CPU Limit は 0.1 でも結構動くが,メモリ 120Mぐらいだと JupyterHub/singleuser のコンテナは起動しない. |
| -- 140M くらいだと何とかコンテナは起動するが,ほぼ使えない. | | -- 140M くらいだと何とかコンテナは起動するが,ほぼ使えない. |
| -- 180M くらいで何とか使用できるようになる. | | -- 180M くらいで何とか使用できるようになる. |
- | -- mod_mdlds では,余裕を考えてきりのいい 200M から表示. | + | -- mod_ltids では,余裕を考えてきりのいい 200M から表示. |
| #br | | #br |
| | | |
| **** Volume セクション [#m11ddd29] | | **** Volume セクション [#m11ddd29] |
| - Task volume, Submit volume はユーザが JupyterHubにアクセスしたときに(許可があれば)マウントされる. | | - Task volume, Submit volume はユーザが JupyterHubにアクセスしたときに(許可があれば)マウントされる. |
- | -- 許可ユーザの書き方は mdl_user(Accessible users) と同じ.ただしデフォルト(空欄)では,全てのユーザが許可される. | + | -- 許可ユーザの書き方は lms_user(Accessible users) と同じ.ただしデフォルト(空欄)では,全てのユーザが許可される. |
| -- md_user(Accessible users)よりも,ここで指定される個々の許可ユーザの方が優先される. | | -- md_user(Accessible users)よりも,ここで指定される個々の許可ユーザの方が優先される. |
| -- * も使用できるが意味はない. 空欄にしておけば良いので. | | -- * も使用できるが意味はない. 空欄にしておけば良いので. |
| | | |
| ***** Task volume [#j8ff684d] | | ***** Task volume [#j8ff684d] |
- | - LTIのカスタムパラメータの ''mdl_vol_表示名=アクセス名: 許可ユーザ'' に対応 | + | - LTIのカスタムパラメータの ''lms_vol_表示名=アクセス名: 許可ユーザ'' に対応 |
| - 課題提示用ボリューム.教師は書き込み可能だが,学生は読み出しのみ可能 | | - 課題提示用ボリューム.教師は書き込み可能だが,学生は読み出しのみ可能 |
| - Volumes タブで削除可能 | | - Volumes タブで削除可能 |
| | | |
| ***** Submit volume [#h71a48b0] | | ***** Submit volume [#h71a48b0] |
- | - LTIのカスタムパラメータの ''mdl_sub_表示名=アクセス名: 許可ユーザ'' に対応 | + | - LTIのカスタムパラメータの ''lms_sub_表示名=アクセス名: 許可ユーザ'' に対応 |
| - 課題回収用ボリューム.教師は読み出し(書き込み,削除:これはオーナのみ)が可能だが,学生は課題の提出(書き込み)と自分の提出した課題にのみアクセス(読み出し,削除)可能 | | - 課題回収用ボリューム.教師は読み出し(書き込み,削除:これはオーナのみ)が可能だが,学生は課題の提出(書き込み)と自分の提出した課題にのみアクセス(読み出し,削除)可能 |
| - Volumes タブで削除可能 | | - Volumes タブで削除可能 |
| | | |
| ***** Personal volume [#xde7793d] | | ***** Personal volume [#xde7793d] |
- | - LTIのカスタムパラメータの ''mdl_prs_表示名=アクセス名: 許可ユーザ'' に対応 | + | - LTIのカスタムパラメータの ''lms_prs_表示名=アクセス名: 許可ユーザ'' に対応 |
| - これはユーザの専用ボリュームに''恒久的に作成されるディレクトリ''である. | | - これはユーザの専用ボリュームに''恒久的に作成されるディレクトリ''である. |
| - ユーザ本人しかアクセスできない.(コンテナ起動時の管理プロセスを除く) | | - ユーザ本人しかアクセスできない.(コンテナ起動時の管理プロセスを除く) |
| | | |
| **** その他のカスタムパラメータ [#w8e77374] | | **** その他のカスタムパラメータ [#w8e77374] |
- | - ''mdl_sessionifo'' : このモジュールのインスタンスIDと対応する LTIインスタンスのIDが自動的に設定される. | + | - ''lms_sessionifo'' : このモジュールのインスタンスIDと対応する LTIインスタンスのIDが自動的に設定される. |
| -- ユーザが気にすることは何もない.このデータは実際には feserver の feplg_nbwsモジュールに送られてる. | | -- ユーザが気にすることは何もない.このデータは実際には feserver の feplg_nbwsモジュールに送られてる. |
- | - ''mdl_iframe'' : iframeサポート.自動的に設定される. | + | - ''lms_iframe'' : iframeサポート.自動的に設定される. |
| -- %%ただし正常に動かすためには,jupyterhub_config.py の host_url を設定しなければならない.%% | | -- %%ただし正常に動かすためには,jupyterhub_config.py の host_url を設定しなければならない.%% |
| -- host_url を設定しなくとも動きますが,デフォルトの host_url はセキュリティ的にちと甘いです.可能なら設定してください. | | -- host_url を設定しなくとも動きますが,デフォルトの host_url はセキュリティ的にちと甘いです.可能なら設定してください. |
- | -- ホストの Python のバージョンが 3.7以下の場合は使用できない(jupyterhubのエラーになる).cookie の samesite を処理できないため. | + | -- ホストの Python のバージョンが 3.7以下の場合は使用できない(jupyterhubのエラーになる).tornado が cookie の samesite を処理できないため. |
| --- jupyterhub のエラーメッセージ:http.cookies.CookieError: Invalid attribute 'samesite' | | --- jupyterhub のエラーメッセージ:http.cookies.CookieError: Invalid attribute 'samesite' |
| | | |
| - 現時点で(実装しているけど)使用していないカスタムパラメータ. | | - 現時点で(実装しているけど)使用していないカスタムパラメータ. |
- | -- mdl_option :コマンドオプション.そのうち使うかも. | + | -- lms_option :コマンドオプション.そのうち使うかも. |
- | -- mdl_grname:教師用グループのグループ名.固定名(TEACHERS)で十分な気がする. | + | -- lms_grname:教師用グループのグループ名.固定名(TEACHERS)で十分な気がする. |
| | | |
| - このモジュールが使用するもの以外の カスタムパラメータには一切影響を及ぼさない. | | - このモジュールが使用するもの以外の カスタムパラメータには一切影響を及ぼさない. |
| - Personal volume は操作対象外. | | - Personal volume は操作対象外. |
| - 表示されるボリューム名(表示名)は,省略された名前. | | - 表示されるボリューム名(表示名)は,省略された名前. |
- | - ボリュームのフルネーム(正式名): ''mdl_[ vol | sub | prs ]_表示名_コースID_MoodleホストのFQDN'' | + | - ボリュームのフルネーム(正式名): ''lms_[ vol | sub | prs ]_表示名_コースID_MoodleホストのFQDN'' |
- | -- 例:''mdl_vol_xyz_98_el.mml.tuis.ac.jp'' | + | -- 例:''lms_vol_xyz_98_el.mml.tuis.ac.jp'' |
| + | #br |
| + | |
| + | *** ipynb_deploy [#r5db573e] |
| + | - ipynb ファイル内のコードセルに通し番号を付ける. |
| #br | | #br |
| | | |
| ** 課題の配布と回収例 [#z4207c5c] | | ** 課題の配布と回収例 [#z4207c5c] |
| | | |
- | *** mdl_vol と mdl_sub を使用する. [#c7ce7bf8] | + | *** lms_vol と lms_sub を使用する. [#c7ce7bf8] |
| **** 課題作成 [#k47c555f] | | **** 課題作成 [#k47c555f] |
| + 設定 | | + 設定 |
- | -- mdl_user : 空欄 | + | -- lms_user : 空欄 |
- | -- mdl_teacher : 自分のユーザ名 | + | -- lms_teacher : 自分のユーザ名 |
- | -- mdl_image : 課題で使用するイメージ | + | -- lms_image : 課題で使用するイメージ |
- | -- mdl_vol : 適当なアクセス名,許可ユーザに自分のユーザ名 | + | -- lms_vol : 適当なアクセス名,許可ユーザに自分のユーザ名 |
| + JupyterHub にログイン. | | + JupyterHub にログイン. |
- | + mdl_vol 内で教材を作成.他の適当なディレクトリで作業しても良い. | + | + lms_vol 内で教材を作成.他の適当なディレクトリで作業しても良い. |
| + ipynb_deploy コマンドでファイルを変換. | | + ipynb_deploy コマンドでファイルを変換. |
| ++ ipynb_deploy コマンドは,後で採点や統計作業を行い易いようにするために,ファイル内のコードセルに通し番号を付ける. | | ++ ipynb_deploy コマンドは,後で採点や統計作業を行い易いようにするために,ファイル内のコードセルに通し番号を付ける. |
- | ++ mdl_vol 内で作業していて,作業場所をそのまま公開する場合は,''ipynb_deploy . ''と入力する. | + | ++ lms_vol 内で作業していて,作業場所をそのまま公開する場合は,''ipynb_deploy . ''と入力する. |
| ++ ipynb_deploy コマンドを実行する前に,必ずファイルのバックアップを取ること.もし ipynb_deploy の実行によりファイルが破損しても,当方は一切責任は持てません. | | ++ ipynb_deploy コマンドを実行する前に,必ずファイルのバックアップを取ること.もし ipynb_deploy の実行によりファイルが破損しても,当方は一切責任は持てません. |
| #br | | #br |
| **** 課題公開 [#f395156f] | | **** 課題公開 [#f395156f] |
| + 設定 | | + 設定 |
- | -- mdl_user : * | + | -- lms_user : * |
- | -- mdl_teacher : 自分のユーザ名 | + | -- lms_teacher : 自分のユーザ名 |
- | -- mdl_image : 課題で使用するイメージ | + | -- lms_image : 課題で使用するイメージ |
- | -- mdl_vol : 課題提示用ボリューム.適当なアクセス名を指定.許可ユーザは空欄 | + | -- lms_vol : 課題提示用ボリューム.適当なアクセス名を指定.許可ユーザは空欄 |
- | -- mdl_sub : 課題収集用ボリューム.適当なアクセス名を指定.許可ユーザは空欄. | + | -- lms_sub : 課題収集用ボリューム.適当なアクセス名を指定.許可ユーザは空欄. |
| #br | | #br |
| | | |
| **** 課題の実施(学生) [#dc3f3da2] | | **** 課題の実施(学生) [#dc3f3da2] |
- | + ''学生は,mdl_vol 内から,自分の作業用場所(~/jupyter または ~/jupyter/works 下など)に課題ファイルをコピー'' | + | + ''学生は,lms_vol 内から,自分の作業用場所(~/jupyter または ~/jupyter/works 下など)に課題ファイルをコピー'' |
| + 課題を行う. | | + 課題を行う. |
- | + 提出は,課題ファイルを指定された提出用 mdl_sub ボリュームにコピーする.この際,ファイル名に自分の学籍番号,名前を追加する. | + | + 提出は,課題ファイルを指定された提出用 lms_sub ボリュームにコピーする.この際,ファイル名に自分の学籍番号,名前を追加する. |
| ++ ファイル提出の際には ''ipynb_submit'' コマンドが使用できる.ipynb_submi はファイル名にユーザ名を自動的に付け加えて,指定されたフォルダにコピーする. | | ++ ファイル提出の際には ''ipynb_submit'' コマンドが使用できる.ipynb_submi はファイル名にユーザ名を自動的に付け加えて,指定されたフォルダにコピーする. |
| ++ 例)''ipynb_submit kadai-1.ipynb 課題1提出用'' | | ++ 例)''ipynb_submit kadai-1.ipynb 課題1提出用'' |
| #br | | #br |
| | | |
- | *** 加えて mdl_prs を使用する. [#f2ab0290] | + | *** 加えて lms_prs を使用する. [#f2ab0290] |
| **** 課題作成 [#u9ae551e] | | **** 課題作成 [#u9ae551e] |
| + 設定 | | + 設定 |
- | -- mdl_user : 空欄 | + | -- lms_user : 空欄 |
- | -- mdl_teacher : 自分のユーザ名 | + | -- lms_teacher : 自分のユーザ名 |
- | -- mdl_image : 課題で使用するイメージ | + | -- lms_image : 課題で使用するイメージ |
- | -- mdl_vol : ''先頭にマイナス(-)を付けたアクセス名''.許可ユーザに自分のユーザ名 | + | -- lms_vol : ''先頭にマイナス(-)を付けたアクセス名''.許可ユーザに自分のユーザ名 |
| + JupyterHub にログイン. | | + JupyterHub にログイン. |
- | + mdl_vol 内で教材を作成.以前作成した教材ファイルとファイル名が被らないように注意する.他の適当なディレクトリで作業しても良い. | + | + lms_vol 内で教材を作成.以前作成した教材ファイルとファイル名が被らないように注意する.他の適当なディレクトリで作業しても良い. |
| + ipynb_deploy コマンドで課題ファイルを変換. | | + ipynb_deploy コマンドで課題ファイルを変換. |
| ++ ipynb_deploy コマンドは,後で採点や統計作業を行い易いようにするために,ファイル内のコードセルに通し番号を付ける. | | ++ ipynb_deploy コマンドは,後で採点や統計作業を行い易いようにするために,ファイル内のコードセルに通し番号を付ける. |
- | ++ mdl_vol 内で作業していて,作業場所をそのまま公開する場合は,''ipynb_deploy . ''と入力する. | + | ++ lms_vol 内で作業していて,作業場所をそのまま公開する場合は,''ipynb_deploy . ''と入力する. |
| ++ 注)ipynb_deploy コマンドを実行する前に,必ずファイルのバックアップを取ること.もし ipynb_deploy の実行によりファイルが破損しても,当方は一切責任は持てません. | | ++ 注)ipynb_deploy コマンドを実行する前に,必ずファイルのバックアップを取ること.もし ipynb_deploy の実行によりファイルが破損しても,当方は一切責任は持てません. |
| #br | | #br |
| **** 課題公開 [#leb1cb54] | | **** 課題公開 [#leb1cb54] |
| + 設定 | | + 設定 |
- | -- mdl_user : * | + | -- lms_user : * |
- | -- mdl_teacher : 自分のユーザ名 | + | -- lms_teacher : 自分のユーザ名 |
- | -- mdl_image : 課題で使用するイメージ | + | -- lms_image : 課題で使用するイメージ |
- | -- mdl_vol : 先頭にマイナス(-)を付けたアクセス名,許可ユーザは空欄.学生にはリンク名は表示されない. | + | -- lms_vol : 先頭にマイナス(-)を付けたアクセス名,許可ユーザは空欄.学生にはリンク名は表示されない. |
- | -- mdl_prs : 適当な名前.許可ユーザは空欄. | + | -- lms_prs : 適当な名前.許可ユーザは空欄. |
- | -- mdl_sub : 課題収集用ボリューム.適当なアクセス名.許可ユーザは空欄. | + | -- lms_sub : 課題収集用ボリューム.適当なアクセス名.許可ユーザは空欄. |
| #br | | #br |
| | | |
| **** 課題の実施(学生) [#g9c148c0] | | **** 課題の実施(学生) [#g9c148c0] |
- | + ''学生は mdl_prs 内にあるファイルを使って,そのまま課題を行う.'' | + | + ''学生は lms_prs 内にあるファイルを使って,そのまま課題を行う.'' |
- | + 提出は,課題ファイルを指定された提出用 mdl_sub ボリュームにコピーする.この際,ファイル名に自分の学籍番号,名前を追加する. | + | + 提出は,課題ファイルを指定された提出用 lms_sub ボリュームにコピーする.この際,ファイル名に自分の学籍番号,名前を追加する. |
| ++ ファイル提出の際には ''ipynb_submit'' コマンドが使用できる.ipynb_submi はファイル名にユーザ名を自動的に付け加えて,指定されたフォルダにコピーする. | | ++ ファイル提出の際には ''ipynb_submit'' コマンドが使用できる.ipynb_submi はファイル名にユーザ名を自動的に付け加えて,指定されたフォルダにコピーする. |
| ++ 例)''ipynb_submit kadai-1.ipynb 課題1提出用'' | | ++ 例)''ipynb_submit kadai-1.ipynb 課題1提出用'' |
| *** Install [#cb55e0da] | | *** Install [#cb55e0da] |
| # cd {moodle_dir}/mod | | # cd {moodle_dir}/mod |
- | # git clone https://gitlab.nsl.tuis.ac.jp/iseki/mod_mdlds.git | + | # git clone https://gitlab.nsl.tuis.ac.jp/iseki/mod_ltids.git |
- | # mv mod_mdlds mdlds | + | # mv mod_ltids ltids |
- | # chown -R apache.apache mdlds | + | # chown -R apache.apache ltids |
| access to moodle by admin | | access to moodle by admin |
| | | |
| *** [[DB>./DB]] [#df5455f9] | | *** [[DB>./DB]] [#df5455f9] |
| | | |
- | **** [[mdl_mdlds>./DB/mdl_mdlds]] [#q6c18d6f] | + | **** [[mdl_ltids>./DB/mdl_ltids]] [#q6c18d6f] |
- | **** [[mdl_mdlds_websock_data>./DB/mdl_mdlds_websock_data]] [#tcb471ae] | + | **** [[mdl_ltids_websock_data>./DB/mdl_ltids_websock_data]] [#tcb471ae] |
- | **** [[mdl_mdlds_websock_session>./DB/mdl_mdlds_websock_session]] [#r217fd43] | + | **** [[mdl_ltids_websock_session>./DB/mdl_ltids_websock_session]] [#r217fd43] |
- | **** [[mdl_mdlds_websock_tags>./DB/mdl_mdlds_websock_tags]] [#y6a5decf] | + | **** [[mdl_ltids_websock_tags>./DB/mdl_ltids_websock_tags]] [#y6a5decf] |
| #br | | #br |