環境設定
BENTEN利用のためには、以下の手順で環境設定を行います。
- 文字コードの設定
- ワーキングディレクトリの設定
- 接続する benten-agentサーバの設定
- ローカルストレージパスおよびディスク名設定 (データ登録を行う場合)
文字コードの設定
- BENTENではコマンドスクリプトで日本語の入出力をUTF8経由で行っています。
-
Windows10では、そのままの設定では文字化けをするため、以下のように文字コードの設定を行います。
$ chcp 65001
chcp 932
を実行すると元の設定(シフトJIS表示)に戻すことができます。
- bentenコマンドをpython2.7、かつssh経由で遠隔で呼び出して利用する際は、 utf8のエンコーディングが行われない場合があります。この場合は、 /usr/lib/python2.7/site-packages などに 以下の内容で設定した
sitecostomize.py
を置くことで、デフォルトエンコーディングを utf-8 に設定することができます。
import sys sys.setdefaultencoding("utf-8")
ワーキングディレクトリの設定
- BENTENでは、認証情報や、ストレージ設定などの情報をワーキングディレクトリに保存して活用しています。
-
デフォルト設定では以下ディレクトリをワーキングディレクトリとして設定しています。
~/.benten/
-
デフォルトの設定からワーキングディレクトリを変更する際は、以下の環境変数を設定します。
BENTEN_WORKDIR
接続するbenten-agentサーバの設定
- BENTENを利用する際は、事前に接続するBENTEN用 REST APIサーバの設定する必要があります。
- benten-agentサーバ設定は、以下に示すようにbentenコマンドを用いて行います。
$ benten.py init ### benten init ### ### Repository::init() ### BENTEN_WORKDIR = /xxxxx/.benten current benten_agent_uri = https://localhost:5000 benten_agent_host[default=localhost]: benten-agent01.spring8.or.jp benten_agent_port[default=5000]: ### configurations parameters ### benten_agent_host = benten-agent01.spring8.or.jp benten_agent_port = >> please type 'y' or 'yes' to set parameters :y --> filename = /xxxxx/.benten/benten_config.yml { "benten_agent_uri":"https://benten-agent01.spring8.or.jp:5000" } ==> configuration parameters were updated
-
上記、bentenコマンドで設定するパラメータを以下に示します。
設定変数 注釈 デフォルト値 SPring-8利用での設定値 benten_agent_host benten-aentのホスト名 localhost benten-agent01.spring8.or.jp benten_agent_port benten-agentのポート番号 5000 5000
-
接続するbenten-agentサーバの設定は、以下のように環境変数を用いても行うこともできます。
環境変数 注釈 デフォルト値 BENTEN_AGENT_HOST benten-agentのホスト名 localhost BENTEN_AGENT_PORT benten-agentのポート番号 5000
Warning
接続するbenten-agentサーバの設定が bentenコマンドでの設定と環境変数の両方で行われた場合には、環境変数側の設定が有効となるのでご注意ください。
ローカルストレージパスおよびディスク名設定
- BENTENのデータ登録は、ローカルストレージ側のデータディレクトリ構造が、そのままリポジトリに反映させる形でデータ登録を行います。
- リポジトリ側でさまざまな計算機からのデータ転送を独立に受け付けるため、リポジトリ側でローカルストレージデータからのデータを保存するディレクトリをユニークに割り当てています。
-
リポジトリ側で用意するディレクトリは、以下の形式をとっています。
/[施設名]/[分類名]/[ディスク名]
例えば BL14B2でのトップディレクトリの例は以下のようになります。
/SPring-8/BL14B2/data1
-
この、ディレクトリ設定は、ローカルストレージ側でのディレクトリと対応づけをします。このためには、以下のパラメータを設定する必要があります。
パラメータ名 用途 ローカルストレージパス ローカルストレージ側でのデータ置き場のトップディレクトリ ディスク名 リポジトリ側でローカルストレージのデータをユニークに扱うための名前
- これらのパラメータ設定を行うためには、以下に示すようにbentenコマンドを利用します。
bentenコマンドを用いた設定例
-
登録するデータが以下のローカルストーレジ以下に置かれていると仮定します。
/disk/data1
- 以下のようにパラメータ設定を行うことにします。
パラメータ | 設定値 |
---|---|
ローカルストレージパス | /disk/data1 |
ディスク名 | data |
- 始めに、データ登録用のグループアカウントでログインします。
- 以下では BL14B2アカウントでログインする例を示します。
$ benten.py login -u BL14B2 input password: xxxxx ### benten login ### ==> response (output to /xxxxx/.benten/auth_info.json) --> filename = /xxxxx/.benten/auth_info.json { "access_token":"795b7a0e53e44f00a5b26da7af3ee643", "refresh_token":"7a13963f262742b99c30e30e60638c20", "expires_in":86400, "expires_time":1552257882 }
- 次に、ローカルストレージパスを設定するディレクトリに移動します。
$ cd /disk/data1
benten.py init_storage
コマンドを発行し、ローカルストレージパス、およびディスク名を設定します。
$ benten.py init_storage ### LocalStorage::init() ### BENTEN_WORKDIR = /xxxx/.benten [LocalStorage::authorize] access_token = 795b7a0e53e44f00a5b26da7af3ee643 [Repository::authorize] access_token = 795b7a0e53e44f00a5b26da7af3ee643 ### Initialize configurations ### local_storage_path[default=/disk/data1]: disk_name[default=data1]: ### configurations parameters ### local_storage_path = /disk/data1 facility = SPring-8 class_name = BL14B2 disk_name = data1 >> please type 'y' or 'yes' to set parameters :y ==> configuration parameters were updated