Edited at

情報銀行のプラットフォームとして利用できるかもしれないPersonium(PDS) を検証してみる 6 <VirtualBoxイメージでサクッと触る>


昨日(2月19日)、OSSチームのコミュニティ内で、これまでのエントリー内でも存在を記載していた vagrant よりも、ちょ〜簡単にPersoniumを触ってみることができるようなになる VirtualBoxイメージ が提供されました。

OSSチームの他に私のように 外の人 としてPersoniumを利用しようとしている @sugimoto さんのご協力により提供されているようです。@sugimoto さん、ありがとうございました!!

これが本当に簡単に構築ができるので、さっくっと手順をまとめます。

私は仮想環境には(古くからの)イメージがいまいち良くなくあまり積極的に利用したいとは思いませんでした。しかし、同時に提供されたドキュメントを見ると、これがまた非常に簡単そうだったのです…

なので別の作業をしながらWindwosマシンに構築してみたところ、本当に簡単!30分程度で構築することができました。

参考ドキュメント: 仮想イメージを使ってPersoniumを始めよう。(https://personium.io/doccheck/ja/server-operator/setupvirtual_image.html)



1.インストール環境

項目
構成
備考

OS      
Windows7 Pro 64ビット
会社からはWin10マシンは提供されているんですが、移行が面倒でまだWin7のまま…

プロセッサ
Intel Corei5 2.6GHz
遅っ!!

メモリ    
8GB
少なっ!!

残ディスク容量
約60GB
枯渇寸前!!

VirtualBox  
確認する前にアップグレードしてしまった…
本当に古いバージョンがインストール済みだったらしい…


2.VirtualBoxのインストール

以下のURLより Windows Hosts をダウンロードする。

 URL   : https://www.virtualbox.org/wiki/Downloads

 ファイル: VirtualBox-6.0.4-128413-Win.exe (214.5MB)

image.png


3.VirtualBoxのインストール実行

VirtualBox-6.0.4-128413-Win.exe をダブルクリックなどで実行します。

※ インストール途中に、Olacleの NetworkInterface やら、ユニバーサルシリアルコントローラやらのインストールを求められるので、環境に合わせて選択してください。

程なく、インストールが完了しますので、「 □Start Oracle VM VirtualBox 6.0.4 after installation 」 にチェックを入れ [ Finish ]します。

image.png


起動しました!

image.png

むか〜しに試した、ETLツールの Talend のイメージが残っていました…(そしてそのイメージも動きました…)


4.Personium のイメージファイルのダウンロードし、VirtualBoxへインポート


まずは、ドキュメントに記載のURLから、Personium のイメージファイルをダウンロードします。

イメージファイル: personium-unit-image-1.6.15.ova (2.1GB)

image.png

※ Personiumのバージョンが 1.6.15 とちょ〜っと古いかもしれませんね??

 そして、ファイルサイズが2.1GBとかなり大きいファイルです。


次に、Personium のイメージファイルを VirtualBox にインポートします。

image.png

詳細な設定は詳しくわからないので、そのままの設定で[ インポート ]をクリック

image.png


インポートには4〜5分くらいかかりました。

image.png


5.起動とその準備

ドキュメントでは起動の前に Hosts の設定をすべきとの記載なので、それに沿って進めます。

Hostsファイル : C:\Windows\System32\drivers\etc\hosts (Windows7の場合)

追記内容   : 127.0.0.1 personium.example.com

image.png


pingで確認

image.png

名前解決はできているようですね!


6.Personiumの起動

Personiumのイメージを選択し[ 起動(T) ]をクリックし起動します。

image.png

image.png


あっさり起動しました!!


本当に起動できているかの確認として、CentOS7が稼働している仮想サーバーへログインしてみます。

IDとパスワードは、以下のようにドキュメントに記載されています。

image.png

image.png


ちゃんとログインもできました。

ドキュメントには unitadmin のIDとパスワードの確認方法も記載されていますので、確認しておきましょう。


7.ユニットマネージャへのアクセス

ここで起動したイメージには、クローズされたこのイメージだけで大体のことを触ってみることができる環境になっているようで、ユニットマネージャもインストールされているようです。

Hostsが設定されている(VirtualBoxが起動されている)PC上のブラウザで以下のURLにアクセスしてみましょう。

 URL: https://personium.example.com/app-uc-unit-manager/__/html/login.html

image.png


unitadmin でログインすると、以下のように表示できました。 完璧です!!

image.png


8.curlでの確認

今回構築した環境は、サーバ証明書は自己証明を利用しているので、curlでは -k のオプションを加えて実行しましょう。


まずはunitadminのトークンの取得

問題なく取得できます。

C:\> curl "https://personium.example.com/unitadmin/__token" \

-X POST -i -k \
-d "grant_type=password&username={{unitAdminUser}}&password={{unitAdminPassword}}&p_target=https://personium.example.com/" \
-H "Content-Type: application/x-www-form-urlencoded"

HTTP/1.1 200
Date: Tue, 19 Feb 2019 03:51:03 GMT
Content-Type: application/json
Content-Length: 4412
Connection: keep-alive
Location: https://personium.example.com/__token
X-Personium-Version: 1.6.15
Server: Personium

{"access_token":"{{unitAdminToken}}","refresh_token_expires_in":86400,"refresh_token":"{{refreshToken}}","p_target":"https:\/\/personium.example.com\/","token_type":"Bearer","expires_in":3600}


次にこのトークンで、セルの一覧の取得

なは〜 これまで知りませんでしたぁ… DOS窓では、ながーいトークンは長すぎて実行できないんですね!!?

さすがWindows! クソですね。

C:\> curl "https://personium.example.com/__ctl/Cell" \

-X GET -i -k \
-H "Accept:application/json" -H "Authorization:Bearer {{unitAdminToken}}"
HTTP/1.1 401
Date: Tue, 19 Feb 2019 03:53:41 GMT
Content-Type: application/json
Content-Length: 77
Connection: keep-alive
WWW-Authenticate: Bearer realm="https://personium.example.com/"
X-Personium-Version: 1.6.15
Server: Personium

{"code":"PR401-AU-0006","message":{"lang":"en","value":"Token parse error."}}
C:\>wbQp4M3NYc1h2ZlgvdmJlZkg3SExZRTExS0x ... kNHQjFRV0IrWFBOSSt
入力行が長すぎます。

C:\>UeWlXRwpjUjVsMWkvWGFWR2FtL2RoW ... 3NlcnRpb24-"' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。


ドキュメントに従い、TeraTerm で接続し、確認してみましょう。

TeraTerm で接続する場合は、以下のIPとポートに接続します。

  IPアドレス: localhost

  ポート  : 2221

image.png

HTTP/1.1 200

Date: Tue, 19 Feb 2019 04:28:01 GMT
Content-Type: application/json;charset=utf-8
Content-Length: 507
Connection: keep-alive
DataServiceVersion: 2.0
X-Personium-Version: 1.6.15
Server: Personium

{
 "d":{
  "results":[
   {
    "__metadata":{
     "uri":"https:\/\/personium.example.com\/__ctl\/Cell('unitadmin')",
     "etag":"W\/\"1-1542615739263\"",
     "type":"UnitCtl.Cell"
    },
    "Name":"unitadmin",
    "__published":"\/Date(1542615739263)\/",
    "__updated":"\/Date(1542615739263)\/"
   },{
    "__metadata":{
     "uri":"https:\/\/personium.example.com\/__ctl\/Cell('app-uc-unit-manager')",
     "etag":"W\/\"5-1550046307880\"",
     "type":"UnitCtl.Cell"
    },
    "Name":"app-uc-unit-manager",
    "__published":"\/Date(1487299211715)\/",
    "__updated":"\/Date(1550046307880)\/"
   }
  ]
 }
}


うん!

だいたい期待通りに動いており、サクッと確認するには申し分のない環境だと思います。

もし、とりあえずほんのちょっと… Personiumを触ってみて、社内などの報告をしたいんだ!!という皆さんには、これがベストな選択だと思います。ぜひご活用ください!!



メニュー