情報銀行のプラットフォームとして利用できるかもしれないPersonium（PDS） を検証してみる ６ ＜VirtualBoxイメージでサクッと触る＞

##昨日（2月19日）、OSSチームのコミュニティ内で、これまでのエントリー内でも存在を記載していた vagrant よりも、ちょ〜簡単にPersoniumを触ってみることができるようなになる VirtualBoxイメージ が提供されました。
OSSチームの他に私のように 外の人 としてPersoniumを利用しようとしている ＠sugimoto さんのご協力により提供されているようです。＠sugimoto さん、ありがとうございました！！ 
これが本当に簡単に構築ができるので、さっくっと手順をまとめます。

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

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

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

---
###１．インストール環境
|項目|構成|備考|
|:--|:--|:--|
|OS　　　　　　|Windows7 Pro 64ビット|会社からはWin10マシンは提供されているんですが、移行が面倒でまだWin7のまま…|
|プロセッサ|Intel Corei5 2.6GHz|遅っ！！|
|メモリ　　　　|8GB|少なっ！！|
|残ディスク容量|約60GB|枯渇寸前！！|
|VirtualBox 　|確認する前にアップグレードしてしまった…|本当に古いバージョンがインストール済みだったらしい…|


###２．VirtualBoxのインストール
以下のURLより Windows Hosts をダウンロードする。
　URL　　 : https://www.virtualbox.org/wiki/Downloads
　ファイル： VirtualBox-6.0.4-128413-Win.exe （214.5MB）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/7cd85512-e9ca-cdb9-0116-f8fcd3e02107.png)

###３．VirtualBoxのインストール実行

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

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

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/3523fd58-5315-1150-a6f2-356dc6237cc7.png)

#####起動しました！
![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/d4411a5c-92d8-c7f7-89ea-aa616b88ff3e.png)

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


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

#####まずは、ドキュメントに記載のURLから、Personium のイメージファイルをダウンロードします。
[イメージファイル：　personium-unit-image-1.6.15.ova （2.1GB）
](https://personium.io/mvnrepo/image/personium-unit-image-1.6.15.ova)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/202f9bdb-9752-e06f-1bf2-ee2d11e46d2f.png)

※ Personiumのバージョンが 1.6.15 とちょ〜っと古いかもしれませんね？？
　そして、ファイルサイズが2.1GBとかなり大きいファイルです。

#####次に、Personium のイメージファイルを VirtualBox にインポートします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/8fdfc797-f399-fb55-2782-c2f924eedadf.png)

詳細な設定は詳しくわからないので、そのままの設定で［ インポート ］をクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/43fdfd7b-cd2b-bb68-4680-62c641e9ed50.png)

#####インポートには４〜５分くらいかかりました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/85f46e77-de78-c553-ec64-2276926d0cae.png)


###５．起動とその準備

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

Hostsファイル ： C:\Windows\System32\drivers\etc\hosts （Windows7の場合）
追記内容　　　： 127.0.0.1  personium.example.com

![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/3a309080-1d8e-ca7f-d85e-51c65d93f820.png)

####pingで確認
![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/d9922d9e-4a55-9342-6128-c0fc052826f2.png)

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


###６．Personiumの起動

Personiumのイメージを選択し［ 起動（Ｔ） ］をクリックし起動します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/7b7f647a-acdf-92c3-4db5-567de6925b7f.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/d56cd099-7208-c74d-ba09-9586e5dc73cd.png)

####あっさり起動しました！！

#####本当に起動できているかの確認として、CentOS7が稼働している仮想サーバーへログインしてみます。
IDとパスワードは、以下のようにドキュメントに記載されています。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/2e55b5da-68c0-a39a-ccc4-14e00eeb860a.png)


![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/33f0aa8d-3695-7ae2-c402-95fb94586681.png)

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

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

###７．ユニットマネージャへのアクセス

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

Hostsが設定されている（VirtualBoxが起動されている）PC上のブラウザで以下のURLにアクセスしてみましょう。
　URL：　https://personium.example.com/app-uc-unit-manager/__/html/login.html

![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/868e8e77-d374-a8f0-8ab1-c9f865058fc9.png)

#####unitadmin でログインすると、以下のように表示できました。 完璧です！！
![image.png](https://qiita-image-store.s3.amazonaws.com/0/352554/f87c785a-a73e-ce44-8140-f2e81ef67fbd.png)


###８．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](https://qiita-image-store.s3.amazonaws.com/0/352554/29591388-bbe7-8936-d484-03869b44c0f8.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を触ってみて、社内などの報告をしたいんだ！！という皆さんには、これがベストな選択だと思います。ぜひご活用ください！！


---

####メニュー
- [x] [１＜はじめに＞](https://qiita.com/takky0330/items/5352a820e5e59747218c)
- [x] [２＜Personiumに触れてみるには＞](https://qiita.com/takky0330/items/6e7e5686c8ab2a25f7e8)
- [x] [３＜Ansibleでインストールする＞](https://qiita.com/takky0330/items/19449b05e8b2775382d5)
- [x] [４＜ざっくりとPersoniumとは＞](https://qiita.com/takky0330/items/7781d0cb4ac879b65ab5)
- [x] [５＜APIでアクセスしてみる＞](https://qiita.com/takky0330/items/270a5c5386fd80d5d3c1)
- [x] [６＜VirtualBoxイメージでサクッと触る＞](https://qiita.com/takky0330/items/788ff75f675c9207ad6e)
- [x] [７＜APIでWebDavを触ってみる＞](https://qiita.com/takky0330/items/42febbf90de2986bb452)
- [x] [８＜APIでODataを触ってみる＞](https://qiita.com/takky0330/items/c1809ad5f3f7f85430ad)
- [x] [９＜APIでExtRoleを触ってみる＞](https://qiita.com/takky0330/items/74285b516e06fc00edad)
- [ ] １０＜セルとボックスについて理解する＞
- [ ] １１＜ホームアプリを触ってみる＞
- [ ] １２＜ユニットマネージャって便利じゃん＞
- [ ] １３＜テンプレートアプリってなんぞや＞
- [ ] １４＜自分のアプリケーション＞


- [x] [＜成功した手順＞ 新しいバージョン（1.7.9）の Personium を Ansibleでインストールする](https://qiita.com/takky0330/items/9598498f8dbb9681fc9b)
- [x] [＜失敗した手順＞ 新しいバージョン（1.7.9）の Personium を Ansibleでインストールする](https://qiita.com/takky0330/items/1706be1e23122ec2ac86)