環境設定

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