Armadilloフォーラム

コンテナ内部からのSWUアップデート

t_ichihara

2025年2月26日 11時35分

==========
製品型番:AGX4500-C00Z(Armadillo-IoT G4)
Debian/ABOSバージョン:3.20.3-at.7
カーネルバージョン:5.10.224-0-at
3G/LTE モジュール情報 (Debianのみ):利用なし
仮想環境:VirtualBox 7.0.18
ATDE9
==========

お世話になります。市原です。

コンテナ内部より、swuファイルのインストールを実施したく、以下のコマンドを実行しております。
curl -k -H "Authorization:Bearer (トークン)" -F swu=@"/vol_data/tmp/xxx.swu" https://xxx.xxx.xxx.xxx:58080/api/swu/install/upload

しかし、実行すると、適用中にコンテナが停止しABOS Webからも登録済みコンテナが見えなくなる現象になっております。
コンテナ内部からswuファイルのインストールは可能であるか、またのその実現方法をご教示頂きたく、よろしくお願い致します。

コメント

at_satoshi.ohta

2025年2月26日 15時21分

太田です。

こちらでも原因を調査中です。

お手数ですが、コンテナ内部で

curl -k -H "Authorization:Bearer (トークン)" -F swu=@"/vol_data/tmp/xxx.swu" https://xxx.xxx.xxx.xxx:58080/api/swu/install/upload

を実行したときのエラーメッセージを添付していただいてもよろしいでしょうか?

どうぞよろしくお願いいたします。

> 太田です。
>
> こちらでも原因を調査中です。
>
> お手数ですが、コンテナ内部で
>

> curl -k -H "Authorization:Bearer (トークン)" -F swu=@"/vol_data/tmp/xxx.swu" https://xxx.xxx.xxx.xxx:58080/api/swu/install/upload
> 

> を実行したときのエラーメッセージを添付していただいてもよろしいでしょうか?
>
> どうぞよろしくお願いいたします。

お世話になります。市原です。
ご返信頂き、ありがとうございます。
実行時のエラーメッセージは以下の通りです。

[container ~]# curl -k -H "Authorization:Bearer (トークン)" -F swu=@"/vol_data/tmp/xxx.swu" https://xxx.xxx.xxx.xxx:58080/api/swu/install/upload
{"stdout":"SWUpdate v2023.05_git20231025-r0\n"}development.swu" https://192.168.0
{"stdout":"\n"}
{"stdout":"Licensed under GPLv2. See source distribution for detailed copyright notices.\n"}
{"stdout":"\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [main] : Running on AGX4500 Revision at1\n"}
{"stdout":"[INFO ] : SWUPDATE started :  Software Update started !\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing pre_script\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : No base os update: copying current os over\n"}
{"stdout":"[WARN ] : SWUPDATE running :  [read_lines_notify] : ----------------------------------------------\n"}
{"stdout":"[WARN ] : SWUPDATE running :  [read_lines_notify] : WARNING: Persistent storage is used for podman, stopping all containers before updating\n"}
{"stdout":"[WARN ] : SWUPDATE running :  [read_lines_notify] : ----------------------------------------------\n"}
[armadillo ~]#

最後のメッセージを最後に、コンテナが終了している状況になります。
お手数おかけいたしますが、よろしくお願い致します。

at_satoshi.ohta

2025年2月26日 16時29分

太田です。

エラーメッセージを添付して頂きありがとうございます。
Armadillo Base OS(ホスト側)で以下のコマンドを実行してコンテナイメージのストレージのtmpfsに変更した後、もう一度試すとどうなりますでしょうか?

armadillo:~# abos-ctrl podman-strage --tmpfs

どうぞよろしくお願いいたします。

> 太田です。
>
> エラーメッセージを添付して頂きありがとうございます。
> Armadillo Base OS(ホスト側)で以下のコマンドを実行してコンテナイメージのストレージのtmpfsに変更した後、もう一度試すとどうなりますでしょうか?
>

> armadillo:~# abos-ctrl podman-strage --tmpfs
> 

>
> どうぞよろしくお願いいたします。

市原です。
上記の内容を確認した所、SWUアップデートに成功しました。

[container ~]# curl -k -H "Authorization:Bearer (トークン)" -F swu=@"/vol_data/tmp/xxx.swu" https://192.168.0.234:58080/api/swu/install/upload
{"stdout":"SWUpdate v2023.05_git20231025-r0\n"}
{"stdout":"\n"}
{"stdout":"Licensed under GPLv2. See source distribution for detailed copyright notices.\n"}
{"stdout":"\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [main] : Running on AGX4500 Revision at1\n"}
{"stdout":"[INFO ] : SWUPDATE started :  Software Update started !\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing pre_script\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : No base os update: copying current os over\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Waiting for btrfs to flush deleted subvolumes\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing swdesc_files --extra-os swu/app\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing swdesc_command 'rm -rf /var/app/rollback/volumes/webment_agent'\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing swdesc_files --dest webment_agent swu/dest\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing swdesc_embed_container swu/webment_agent.tar\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Command 'command podman --root /target/var/lib/containers/storage_readonly --storage-opt additionalimagestore= load -i /var/tmp/webment_agent.tar' output:\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Getting image source signatures\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:74897dce82dbd3c8d3846fdc4a8682e9fd32b72fa97f45ff45370968138835f8\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:3341783e88176a978af120dea213c7e8a64ed890a48e0f96f49109047cb71fec\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:d1d5f92dfd231f5e2b5e163f7bcecf3f8c83e6b3fc56754273d67d5016e4f327\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:3e620c160447d1acff162610a533282fc64863123cba28ce40eaf98c17dde780\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:9cfb6b9a0baeed4a311baace6a593e117f2fc4ebd938310dd23c4131e9e9eee8\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:3b75bc55c42085cf27583d2d44c99776cbdba11bb1685db35a91e8d56a1b23bc\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:5411e2787242b272678eb0916c871ff9e9278f70572fbfb9204539180889ffce\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:433d3069ae676c274e555ff12c80839a45aef64584a4e1b92b56b0d6f481f0bd\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:dd72e55d732a5650de3d468552ac3825ccaeda70acbc35bb99768dc527d46e4d\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:5dd99fd12a8a64fb55b4b84db12431312e1c27a1f696cac0b17b3f20ed6a5bee\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:507f3c701ada2df65b3f279acf0bb48bc63c735be6025a29cf1c2f74e00c3948\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:041ae3340bfa888c552ca4f1f6023e534d3b2b7c915324488d1317733affd347\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:7dba85dc17a8ed45b472f8fe1ec44cbf98502b9879a864f83eeb1ecafa10e165\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:3535f63e940e78db6354357ee900de807c9c3f822d36c4d55ac5e79b096967d9\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:813d2a1cf7fbe64e1c6b86b352addc3febf615720ac139cb345da9ab66a8fea6\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying config sha256:eee3ec8cc0fd41d4f8b9874b8f7f59233dd176e0672d147dd4364214ab725b8c\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Writing manifest to image destination\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Storing signatures\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Loaded image: localhost/webment_agent:latest\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing swdesc_command --extra-os 'mkdir -p /root/.ssh' 'ssh-keygen -A' 'rc-update add sshd default'\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing swdesc_script --extra-os /usr/share/mkswu/examples/update_preserve_files.sh -- --file /root/.ssh/authorized_keys --comment 'ssh key for vscode project' --add -- 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC2+Vt96sG+K8mJnpceQqU2lzkSqe/S8/lnZ+3ml+NJu atmark@atde9'\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing post_script\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Removing unused containers\n"}
{"stdout":"[WARN ] : SWUPDATE running :  [read_lines_notify] : Warning: image localhost/sshd_alpine:latest in /target/etc/atmark/containers/sshd_alpine.conf not found in image store !\n"}
{"stdout":"[WARN ] : SWUPDATE running :  [read_lines_notify] : Warning: image localhost/webment_agent_ct2:latest in /target/etc/atmark/containers/webment_agent_ct2.conf not found in image store !\n"}
{"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : swupdate triggering reboot!\n"}
{"exit_signal":9}

> > 太田です。
> >
> > エラーメッセージを添付して頂きありがとうございます。
> > Armadillo Base OS(ホスト側)で以下のコマンドを実行してコンテナイメージのストレージのtmpfsに変更した後、もう一度試すとどうなりますでしょうか?
> >

> > armadillo:~# abos-ctrl podman-strage --tmpfs
> > 

> >
> > どうぞよろしくお願いいたします。
>
> 市原です。
> 上記の内容を確認した所、SWUアップデートに成功しました。
>

> [container ~]# curl -k -H "Authorization:Bearer (トークン)" -F swu=@"/vol_data/tmp/xxx.swu" https://192.168.0.234:58080/api/swu/install/upload
> {"stdout":"SWUpdate v2023.05_git20231025-r0\n"}
> {"stdout":"\n"}
> {"stdout":"Licensed under GPLv2. See source distribution for detailed copyright notices.\n"}
> {"stdout":"\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [main] : Running on AGX4500 Revision at1\n"}
> {"stdout":"[INFO ] : SWUPDATE started :  Software Update started !\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing pre_script\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : No base os update: copying current os over\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Waiting for btrfs to flush deleted subvolumes\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing swdesc_files --extra-os swu/app\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing swdesc_command 'rm -rf /var/app/rollback/volumes/webment_agent'\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing swdesc_files --dest webment_agent swu/dest\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing swdesc_embed_container swu/webment_agent.tar\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Command 'command podman --root /target/var/lib/containers/storage_readonly --storage-opt additionalimagestore= load -i /var/tmp/webment_agent.tar' output:\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Getting image source signatures\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:74897dce82dbd3c8d3846fdc4a8682e9fd32b72fa97f45ff45370968138835f8\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:3341783e88176a978af120dea213c7e8a64ed890a48e0f96f49109047cb71fec\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:d1d5f92dfd231f5e2b5e163f7bcecf3f8c83e6b3fc56754273d67d5016e4f327\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:3e620c160447d1acff162610a533282fc64863123cba28ce40eaf98c17dde780\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:9cfb6b9a0baeed4a311baace6a593e117f2fc4ebd938310dd23c4131e9e9eee8\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:3b75bc55c42085cf27583d2d44c99776cbdba11bb1685db35a91e8d56a1b23bc\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:5411e2787242b272678eb0916c871ff9e9278f70572fbfb9204539180889ffce\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:433d3069ae676c274e555ff12c80839a45aef64584a4e1b92b56b0d6f481f0bd\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:dd72e55d732a5650de3d468552ac3825ccaeda70acbc35bb99768dc527d46e4d\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:5dd99fd12a8a64fb55b4b84db12431312e1c27a1f696cac0b17b3f20ed6a5bee\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:507f3c701ada2df65b3f279acf0bb48bc63c735be6025a29cf1c2f74e00c3948\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:041ae3340bfa888c552ca4f1f6023e534d3b2b7c915324488d1317733affd347\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:7dba85dc17a8ed45b472f8fe1ec44cbf98502b9879a864f83eeb1ecafa10e165\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:3535f63e940e78db6354357ee900de807c9c3f822d36c4d55ac5e79b096967d9\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying blob sha256:813d2a1cf7fbe64e1c6b86b352addc3febf615720ac139cb345da9ab66a8fea6\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Copying config sha256:eee3ec8cc0fd41d4f8b9874b8f7f59233dd176e0672d147dd4364214ab725b8c\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Writing manifest to image destination\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Storing signatures\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Loaded image: localhost/webment_agent:latest\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing swdesc_command --extra-os 'mkdir -p /root/.ssh' 'ssh-keygen -A' 'rc-update add sshd default'\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing swdesc_script --extra-os /usr/share/mkswu/examples/update_preserve_files.sh -- --file /root/.ssh/authorized_keys --comment 'ssh key for vscode project' --add -- 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC2+Vt96sG+K8mJnpceQqU2lzkSqe/S8/lnZ+3ml+NJu atmark@atde9'\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [install_single_image] : Installing post_script\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : Removing unused containers\n"}
> {"stdout":"[WARN ] : SWUPDATE running :  [read_lines_notify] : Warning: image localhost/sshd_alpine:latest in /target/etc/atmark/containers/sshd_alpine.conf not found in image store !\n"}
> {"stdout":"[WARN ] : SWUPDATE running :  [read_lines_notify] : Warning: image localhost/webment_agent_ct2:latest in /target/etc/atmark/containers/webment_agent_ct2.conf not found in image store !\n"}
> {"stdout":"[INFO ] : SWUPDATE running :  [read_lines_notify] : swupdate triggering reboot!\n"}
> {"exit_signal":9}
> 

>
お世話になっております。市原です。
上記の内容で最終的に解決しました。
ご回答いただき、ありがとうございました。