- JupyterHub から通知を受けて動作する通信経路制御のための ltictr_api_server と,実際に通信を中継して WebSocketデータを解析する ltictr_proxy_server から成る.
- 通常は ltictr_proxy_server からチャイルドプロセスとして ltictr_api_server が起動される.
- ltictr_proxy_server と ltictr_api_server はそれぞれ独立に起動することも可能.
- ltictr_proxy_server は単体で普通のWeb用リバースプロキシサーバとしても使用可能.
- 機能詳細
- JupyterHub の通信経路制御に対応
- 通信の中継
- WebSocket 通信の解析.
- HTTP(S)通信の解析.
- Cookie の挿入.(Moodle のコース識別を行うため)
- 収集したデータを Moodle へ
XML-RPC REST通信で渡す.(MoodleのWebサービスを使用)
ltictr_proxy_server†[edit]
Usage... %s -p client_side_port [-c] [-h host_url[:port]] [-a [api_url:]port] [-u user] [-d]
[--noexecapi] [--chunked] [--conf config_file]
[--cert cert_file] [--key key_file] [--pid pid_file]
- -p : Webブラウザの通信を受けるローカルサーバポート番号.必須.
- -c : Webブラウザに対してSSL/TLS接続になる.
- -h : WWWサーバを明示的に指定するためのURL.ltictr_api_server を使用する場合は省略可.
- -a : ltictr_api_server を指定するためのURL.ポート番号のみの場合,URL部分は http://127.0.0.1 となる.
- -u : 実効ユーザ名.
- -d : デバッグモード.
- -n, --noexecapi : ltictr_api_server を起動しない.
- --chunked : chunkデータをchunkデータとして扱う.通常動作では chunkデータは,一旦全部受信されてから転送される.
- --conf : 設定ファイルを指定する(コマンドラインと競合する場合は,設定ファイル優先)
- --cert : -c を指定した場合のサーバ証明書:PEM形式.設定ファイル内でも指定可能.
- デフォルトは /etc/pki/tls/certs/server.pem
- --key : -c を指定した場合のサーバの秘密鍵:PEM形式.設定ファイル内でも指定可能.
- デフォルトは /etc/pki/tls/private/key.pem
- --pid : pid ファイルを指定する.
- デフォルトは /var/run/ltictr_proxy.pid
ltictr_api_server†[edit]
Usage... %s -a [api_url:]port [-u user] [-d]
[--conf config_file] [--cert cert_file] [--key key_file] [--apid pid_file]
- -a : サーバポートのURL.必須.FQDNの部分は無視する.TLS通信を行う場合は https://:8001 のように記述する.
- -u : 実効ユーザ名.
- -d : デバッグモード.
- --conf : 設定ファイルを指定する(コマンドラインと競合する場合は,設定ファイル優先)
- --cert : -c を指定した場合のサーバ証明書:PEM形式.設定ファイル内でも指定可能.
- デフォルトは /etc/pki/tls/certs/server.pem
- --key : -c を指定した場合のサーバの秘密鍵:PEM形式.設定ファイル内でも指定可能.
- デフォルトは /etc/pki/tls/private/key.pem
- --pid : pid ファイルを指定する.
- デフォルトは /var/run/ltictr_proxy.pid
systemd を使用する.†[edit]
# vi /usr/local/etc/ltictr_proxy.conf
# vi /usr/lib/systemd/system/ltictr_proxy.service
# systemctl enable ltictr_proxy.service
# systemctl start ltictr_proxy.service
# ltictr_proxy_server -p 8100 -c -a 8001 --conf /usr/local/etc/ltictr_proxy.conf
# jupyterhub -f jupyterhub_XXX_config.py
2. ltictr_api_server と ltictr_proxy_server を別々に起動する場合†[edit]
# ltictr_api_server -a 8001 --conf ./ltictr_proxy.conf
# ltictr_proxy_server -p 8100 -c -a 8001 -n --conf /usr/local/etc/ltictr_proxy.conf
# jupyterhub -f jupyterhub_XXX_config.py
3. configarable-http-proxy と併用する場合.または通常の Webリバースプロキシとして使用する場合†[edit]
# ltictr_proxy_server -p 8100 -c -n -h http://202.26.150.55:8000 --conf /usr/local/etc/ltictr_proxy.conf
# jupyterhub -f jupyterhub_XXX_config.py
JupyterHub の設定†[edit]
設定ファイル (/usr/local/etc/ltictr_proxy.conf)†[edit]
Moodle_Host = XML-RPC を行うホスト名(FQDNまたはIPアドレス). 廃止.クッキーからの自動設定に変更.
Moodle_Port = XML-RPC を行うホストのポート番号. 廃止.クッキーからの自動設定に変更.
Moodle_TLS = XML-RPC を行う際に HTTPS を使用するかどうか.. 廃止.クッキーからの自動設定に変更.
Moodle_Token = Moodle から発行されたトークン.下記参照.必須. 廃止.クッキーからの自動設定に変更.
- Rest_Path =
XML-RPC RESTを行うURLのディレクトリ情報.
- デフォルトは /webservice/rest/server.php
- Rest_Response =
XML-RPC RESTを行った場合の返答を表示するかどうか.
- Rest_Service =
XML-RPC RESTのサービス名.
- デフォルトから変更する必要はない.変更すると動かなくなる.
- デバッグ用.デフォルトは mod_mdlds_write_nblogs
- Rest_HTTPver =
XML-RPC RESTを行う際の HTTPのプロトコルバージョン.1.1 か 1.0 を指定.
- LTICTR_PID_File = ltictr_proxy_server の pidファイル.
- LTICTR_API_PID_File = ltictr_api_server の pidファイル.
- LTICTR_API_Token = APIサーバの接続用トークン.任意の文字列.JupyterHub の設定ファイルのc.ConfigurableHTTPProxy.auth_token と同じ値にする.ltictr_proxy_server でも必要.
- LTICTR_Server_Cert = HTTPS通信を行う場合のサーバ証明書(PEM形式)
- デフォルトは /etc/pki/tls/certs/server.pem
- LTICTR_Server_Chain = HTTPS通信を行う場合のサーバ証明書のチェイン(PEM形式)
- LTICTR_Private_Key = HTTPS通信を行う場合の秘密鍵ファイル(PEM形式)
- デフォルトは /etc/pki/tls/private/key.pem
Moodle 側の設定 (Webサービスを利用するためのトークンの取得)†[edit]
- 管理者IDで「サイト設定」 -> 「プラグイン」 -> 「ウェブサービス」 -> 「外部サービス」
- 「Jupyter Notebook Data」の項目を確認
- 「Jupyter Notebook Data」の 「許可ユーザ」をクリック
- 適当なユーザ(教師ロールのユーザ)を選択し,許可ユーザとする
- ウェブサービスのメニューまで戻って,「トークンを管理する」を選択.
- 「追加」をクリック.
- ユーザ名に先程選択したユーザ名を入れる.
- サービスは「Jupyter Notebook Data」を選択
- 「変更を保存する」をクリック
- 「トークンを管理する」まで戻ると,ユーザ用のトークンができているので,それをコピーする.
- トークンを設定ファイル(ltictr_proxy.conf)の Moodle_Token に設定する.