Armadillo Base OS搭載製品ではABOS WebのREST APIを使用して、コンテナ内からアップデートや
ネットワークの変更、コンテナの操作、電源制御などを行う事が可能です。
本ブログでは量産時にREST APIを使用する為のトークンを固有のトークンとして作成する方法を紹介します。
実施手順
1.ABOS Webのトークンを削除
開発が完了したら量産用にインストールディスクを作成しますが、このまま量産用インストールディスクを
作成するとトークンが全て同じになります。異なるトークンにしたい場合は一度トークンを削除します。
2.SDカードを入れてインストールディスクを作成
Armadillo-IoT A6Eの無線LAN搭載版以外はSDカードを挿入した状態でabos-ctrl make-installerコマンドを
実行すると実機をコピーしたインストールディスクが作成されます。
その際、第二パーティションを使うか聞かれますので適当なサイズ(最小の16MBで十分です)を指定して
実行します。
インストールディスク作成
[armadillo]# abos-ctrl make-installer
3.SDカードの第二パーティションに下記スクリプトを配置
SDカードを見ると第二パーティションが作成されていますので、下記の”installer_overrides.sh ”を配置します。
実行権限も付けて配置してください。
installer_overrides.sh (下記はSwuView,SwuInstallの権限を与える例)
#installer_overrides.sh
preinstall() {
: "Preinstall function, run before eMMC is partitionned"
}
postinstall() {
: "Postinstall function, run after all other steps except sending logs"
token=$(cat /proc/sys/kernel/random/uuid)
mkdir -p /target/etc/atmark/abos_web/tokens
echo '{"permissions":["SwuView","SwuInstall"]}' > "/target/etc/atmark/abos_web/tokens/${token}.token"
}
send_log() {
: "This function is called after aggregating logs for archival"
}
4.インストールを実行(固有のトークンが書き込まれる)
SDカードを入れてインストールを実行すると、ABOS Webまたは/etc/atmark/abos_web/tokens/を確認すると
固有のトークンが作成されている事が分かります。
作成されたトークンの確認
armadillo:~# ls /etc/atmark/abos_web/tokens/
16ac5299-991e-4fdc-8698-a9d405da075a.token
トークンの権限
armadillo:~# cat /etc/atmark/abos_web/tokens/16ac5299-991e-4fdc-8698-a9d405da075a.token
{"permissions":["SwuView","SwuInstall"]}
コンテナから操作するにはトークンを知る必要がありますが、/etc/atmark/abos_web/tokens/をコンテナの
コンフィグファイル(app.conf または コンテナ名.conf)でボリュームマウント設定しておくことでコンテナから
トークンを確認出来ます。
例) add_volumes /etc/atmark/abos_web/tokens:/vol_tokens
以上で完了です。