ブログ

Armadillo Base OS:アプリケーションからアップデートを実行する方法(ABOS WebのREST APIを使用)

at_shinya.matsumoto
2024年6月25日 15時03分

Armadillo Base OSでコンテナ内(アプリケーション)からアップデートを実行する方法を紹介します。

実施手順

本手順はArmadillo Base OSのバージョンが 3.19.1-at.2 以降で使用する事が出来ます。
バージョンが古い場合はアップデートしてからお試し下さい。

1.ABOS Webでトークンの設定を行う
2.コンテナにcurlをインストールする
3.コンテナのコンフィグファイルを修正
4.コンテナ内からアップデートを行う

1.ABOS Webでトークンの設定を行う

最初にABOS Webを開いてトークンの設定を行います。
ABOS Webへのアクセス方法は製品マニュアルまたはこちらを参照下さい。

ABOS Webを開き、下記の設定管理を開きます。

この設定管理ではパスワード変更以外に、トークンの追加/削除や権限の設定を行う事ができます。
※トークンの権限は製品マニュアルの「REST API」を参照下さい。

今回はアップデート(swupdate)を行う必要がある為、トークンにSwuInstallの権限を追加しておきます。
SwuViewは現在インストールしているソフトウェアのバージョンを確認する際に使用します。

これでトークン側の設定は完了です。

2.コンテナにcurlをインストールする

VScodeでコンテナ(アプリケーション)を作成する場合は、packages.txtに curl を追記し、
ビルド時にインストールしておきます。

3.コンテナのコンフィグファイルを修正

トークンを変数AUTHとして設定
 VScodeのapp.conf(Armadillo Base OSでは/etc/atmark/containers/コンテナ名.conf)に下記の様に
 変数としてトークンを設定しておくと楽です。
 (コンテナに/etc/atmark/abos_web/tokensをマウントする事でもコンテナ内から確認出来ます)

add_args --env=AUTH="Authorization:Bearer 8ac4afd5-1615-4216-b5cf-77841f62fbbe"


上記のコンテナ及びコンフィグファイルをArmadilloにインストールした前提で次に進みます。

4.コンテナ内でアップデートを行う

ここではコマンドの検証の為、コンテナ内に入って動作確認を行います。

コンテナの再起動
[armadillo]# podman_start [コンテナ名]
 
コンテナに入る
[armadillo]# podman exec -it [コンテナ名] /bin/bash


アップデートファイルのURLを指定してアップデートを行う場合は下記コマンドを実行します。
※swu作成時のdescファイルで指定しない限り、アップデート後に自動で再起動します。

コンテナ内からURLを指定してアップデート実行
※ここでは例としてArmadillo-IoT A6EのArmadillo Base OS最新版のURLを指定
[container]# curl -k -H "$AUTH" \
-d url=https://armadillo.atmark-techno.com/files/downloads/armadillo-iot-a6e/image/baseos-6e-latest.swu \
https://host.containers.internal:58080/api/swu/install/url

上記コマンド実行後、Armadilloが再起動します。

以上で、アップデート完了です。


開発手順・TIPS集のTOPに戻る