e1234
2024年3月11日 11時09分
Armadillo Base OSでコンテナ更新をしたい為、Hawkbitサーバーを立てております。
以下の内容を参照し、実施しました。
Armadillo Base OS:Hawkbitサーバーを用いてソフトウェアアップデートする方法
https://armadillo.atmark-techno.com/blog/15349/13372
現在、「ウェブサーバーからイメージのインストール(手動)」を行いたいと思っています。
そのため、以下を行いました。
(1)上記Webページでは、Armadillo側から10分間隔でhawkbitサーバーにアクセスしに行っているので、
Armadillo側のサービス(swupdate-hawkbitサービス)を停止
(2)上記Webページの「4.アップデート実行(Rollout)」を実行し、
hawkbitサーバーにswuイメージをアップロード
(3)Armadilloで以下のコマンドを実行
swupdate -d '-u http://(hawkbitサーバーのIPアドレス):8080/DEFAULT/controller/v1/armadillo-0001/softwaremodules/14/artifacts/sample_container_update.swu'
コマンドについては、
https://armadillo.atmark-techno.com/files/downloads/armadillo-640/docum…
p47 ウェブサーバーからイメージのインストール(手動)
を参照しています。
すると、Armadilloでswupdateコマンド実行したところ、401エラーが返ってきました。【添付ファイル①、②】
通信パケットを確認したところ、
TargetTokenがついていなかったので、TargetTokenを付けた通信が必要だと思っております。
そこで、
(4)Armadilloで以下のコマンドを実行(-kオプション使用)
swupdate -d '-u http://(hawkbitサーバーのIPアドレス):8080/DEFAULT/controller/v1/armadillo-0001/softwaremodules/14/artifacts/sample_container_update.swu' -k (TargetTokenの値)
を行うと、エラーになりました。【添付ファイル③】
ちなみに、この時 通信ログは出ていませんでした。
手動でインストールを行う場合、TargetTokenを付けて通信するにはどうすればよいか、
ご教授いただけないでしょうか?
■添付ファイル
①Armadillo_hawkbitサーバーへの手動アクセス.txt
/var/log/messagesの内容
②通信パケット_hawkbitサーバーへの手動アクセス.pdf
③Armadillo_hawkbitサーバーへの手動アクセス(TargetToken).pdf
Armadilloのコンソールログ
■環境
・VirtualBox
・Ubuntu22.04
・Docker(Docker Engine on Ubuntu)
■BaseOSインストールディスクイメージ
https://download.atmark-techno.com/armadillo-640/image/baseos-600-insta…
baseos-600-installer-3.18.6-at.10.img
■コンテナ
・Hawkbit docker-composeコンテナ
https://armadillo.atmark-techno.com/resources/software/armadillo-640/ab…
hawkbit-compose-4.15.1.tar.xz
ファイル | ファイルの説明 |
---|---|
Armadillo_hawkbitサーバーへの手動アクセス.txt | /var/log/messagesの内容 |
通信パケット_hawkbitサーバーへの手動アクセス.pdf | |
Armadillo_hawkbitサーバーへの手動アクセス(TargetToken).pdf | Armadilloのコンソールログ |
コメント
e1234
at_dominique.m…
2024年3月11日 11時37分
e1234さん、
お世話になっています、
マルティネです。
hawkbit サーバーで直接にアップデートすることはサポートしてません。
理由はいくつかありますが、こういう風にアップデートをインストールしても hawkbit サーバーにアップデート状態が通信されないので、hawkbit を使うメリットがありません。
開発時に10分の待ち時間を無理やりにスキップしたい場合でしたら swupdate-hawkbit サービスをリスタートすればアップデートがすぐに開始されます。
運用のための調査でしたら申し訳ございませんが、Armadillo Twin を検討するか、別の方法でアップデートを管理してください。swupdate -d でしたら普通の web サーバーでも同じです。
一応把握している範囲で回答します。
> TargetTokenがついていなかったので、TargetTokenを付けた通信が必要だと思っております。
はい、おそらくそうですね。
https://eclipse.dev/hawkbit/concepts/authentication/#anonymous-access の設定でトークンなくてもダウンロードを許可できるはずです。
> そこで、
> (4)Armadilloで以下のコマンドを実行(-kオプション使用)
> swupdate -d '-u http://(hawkbitサーバーのIPアドレス):8080/DEFAULT/controller/v1/armadillo-0001/softwaremodules/14/artifacts/sample_container_update.swu' -k (TargetTokenの値)
このオプションは target token の設定ではなく、public key の設定です:
targettoken は
swupdate -u '-k <token>'
で設定できますが、おそらく -d モードでは使用されないと思います。(コンフィグファイルには書いてますので、コマンドラインに同じ値を指定しても同じです)よろしくお願いします