Personiumに興味を持っており、Personiumに貢献したいとPersoniumを勉強中のtakaです。
2年ほど前、ある異邦人の技術メモを読み、おやこれは凄いぞ、と素人ながら思いました。Personiumのコンセプト、適用技術、実装と凄く興味を惹きました。少しRDBをかじったことがあるのですが、「木構造のディレクトリ構造をもったファイルシステム的なもの」と「リレーショナルデータ的なもの」が共存しているって面白そうだなあ、と思いました。
それで関心を持つようになりました。少しずつ勉強している段階です。学んだことはQiitaなどでシェアしていければと思っています。
Takkyさんが、情報銀行のプラットフォームとして利用できるかもしれないPersonium(PDS) を検証してみる 5 <APIでアクセスしてみる>でCurlからAPIを利用してPersoniumを操作されていました。これをGUIベースでやるとどうやるべきか、自分なりに手順化してみました。
はじめに
Personiumのドキュメントを見たところ、PersoniumはUnit,Cell,Boxの3つから成り立っているようです。
Personiumのドキュメントを見たりmokumoku会という勉強会に参加したりして、少し分かったことはPersoniumというのはCellという基本単位で構成されているみたいです。
まだよくわかっていませんが、管理Cell、アプリCell、ユーザCellという三種類の使い方があると関係者の方からお聞きしました。
少し詳しいことは、以下のドキュメントに書いてあるみたいです。
Personiumアーキテクチャ
PersoniumではGUIでの操作のためにUnit Managerというツールが用意されているようです。ユニット管理者向けガイドに「以下のユニットマネージャGUIを使うことで、ほぼすべてのAPIアクセスをユニットユーザとして実施することができます。」とあります。Takkyさんのように自前のサーバを立てることが出来なかったため、
Takkyさんも紹介されていた、情報銀行のプラットフォームとして利用できるかもしれないPersonium(PDS) を検証してみる 6 <VirtualBoxイメージでサクッと触る>
の仮想イメージをVirtual Boxにインポートして仮想的にPersoniumを体験できる環境で動作を試してみました。
現行バージョンのPersoniumではCell指定でURLをhttps://{Cell名}.{FQDN名}/とするようですが、この環境ではhttps://{FQDN名}/{Cell名}/ でCellを指定するみたいです。
##Unit Managerへのログイン
- 仮想イメージを使ってPersoniumを始めよう。の手順に従ってPersonium環境を構築します。Cellはマニュアル通りに、Cell名'Sample'を試しに作ってみました。
仮想イメージを利用してPersonium環境構築を試してみて分かったのですが、仮想マシンが立ち上がってPersonium環境を構築する時に、tomcatの起動に失敗してUnit Managerへのログイン前にブラウザ上で502 BadGateWay等のエラーが発生するときがあります。その時は仮想マシンにsshでログインした後に「systemctl status tomcat」コマンドでtomcatのstatusを確認して、tomcatが起動していなかったら
「systemctl restart tomcat」コマンドを実行して、再度「systemctl status tomcat」コマンドを実行してtomcatのstatusがactiveになっていることを確認してください。
また、それ以外にもログイン画面を表示させるためにブラウザーを立ち上げたとき、502 BadGateWayエラーが発生するときがあります。
その時は仮想マシンを再起動すれば直りました。
-
下記のURLにアクセスしてください。下記画面が表示されます。(※この作業の前に仮想マシンは立ち上げておく必要があります。ご注意ください。)
https://personium.example.com/app-uc-unit-manager/__/html/login.html
下記情報を入力してUnit Managerにログインしてみます。
- 説明
Login URL: https://personium.example.com/ユニットユーザ名/
Username: ユニットユーザセルのアカウント名
Password: ユニットユーザセルのパスワード
- 例
Login URL: https://personium.example.com/unitadmin/
Username: unitadmin
Password: hoghoge
詳しい説明は[Personiumの動作確認](https://personium.io/docs/ja/server-operator/setup_virtual_image.html)を参照してください。
注意事項:通常はユーザにunitadminセルは見えません。本記事で使用している環境では、unitadminセルを一切操作しないてください。
今後の記事でunitadminセルについて紹介したいと思います。
Cellの作成
Role作成、Profile作成は後で行うこともできるみたいです。
-
Cellが作られるとmain BoxというBoxが自動的に作られるみたいです。(Personiumのチュートリアルを読み漁って知りました。メインBoxへの最初のデータ配置)
先ほどのCell作成画面でCreate Profileの左のチェックボックスをチェック入れたため、main Boxの配下にファイル(profile.json)が作成されるみたいです。
僕の場合profile.jsonファイルの作成は即時ではありませんでしたが、Takkyさんは即時ではないかと言われていました。調べた結果Unit Managerが古いためと分かり、後でUnit Managerを更新しました(参照先:Unit Manager セットアップ手順)。後日詳しくこの手順についてはご紹介します。
Accountの作成
-
該当CellのAccountタブを選択すると以下の画面が表示されます。「Create Account」を押下してみます。
-
下記のポップアップが表示されるので、Name、Passwordを入力し、Assign Roleのチェックボックスをチェックいれる。Roleが適用されるBoxを指定してCreateボタンを押下してみます。
Roleの作成
-
Roleタブを選び、Create Roleを押下します。下記画面では先ほど作成したadminroleが既に定義されているようです。
-
下記のポップアップが表示されるので、Role名を入力し、Roleが適用されるBoxを指定してCreateボタンを押下してみます。
-
作成したRoleにAccountを割り当てるために、該当するRole名の箇所(下記画面ではfriendrole)をクリックしてみます。
-
以下の画面が表示されました。「Select Acount Name」のプルダウンの中から割り当てたいAccountを選択してみます。
ACLの設定
Roleの削除
Acountの削除
Cellの削除
まとめ
- Takkyさんの記事の中で触れられていたAPI操作は以上でした。
PersoniumのAPIはREST APIなので、APIを利用してCLIプロンプトから操作を実行することが出来るみたいですが、上記のようにUnit ManagerのGUIを利用して同様の操作を行うことも出来るようです。個人的にはUnit Managerがどんな構造になっているのか興味があります。 - Takkyさんも述べられていますが、Personiumがどのようにエコシステムを実現していくのか色々想像を膨らませています。