ブログ

Armadillo Twin:遠隔でコマンド実行する

at_shinya.matsumoto
2024年5月1日 16時14分

Armadillo Twinを使用する事でArmadilloを遠隔でコマンド実行する事ができます。
SSH不要なため、グローバルIPを持たないNAT配下のArmadilloに対しても実行する事が可能です。

事前準備

任意コマンド実行には下記2手順が必要になります。

①enable_exec_command.swuを作成してArmadilloにインストールしている


まず、enable_exec_command.swuを作成してArmadilloにインストールします。
initial_setupが完了しているATDEで下記コマンドを実行します。
途中パスワードを求められますが、initial_setupで設定した署名用パスワードを入力します。

[ATDE]$ mkswu /usr/share/mkswu/examples/armadillo-twin/enable_exec_command.desc -o enable_exec_command.swu
Enter pass phrase for /home/atmark/mkswu/swupdate.key:        //←署名用パスワードを入力
enable_exec_command.swu を作成しました。


上記で作成したenable_exec_command.swu をArmadilloにインストールします。
インストール手順はこちらを参照下さい。

②Armadillo Twinのアカウント管理画面で任意コマンド実行機能有効化している


次にArmadillo Twinにサインインし、アカウント管理から任意コマンド実行機能を有効化します。


以上で事前準備は完了です。

任意コマンド実行を試してみる

動いているコンテナを確認する

podman ps コマンドで動いているコンテナを確認します。

この結果からex1というコンテナをex1:latestというコンテナイメージを使用して、21分前から起動中であることが
分かります。(実行コマンドが長い場合は上記の様に表示が省略されます)

コンテナのログ(標準出力)を確認

アプリケーションの標準出力でメッセージやエラー等が出力される場合、podman logs コマンドで見る事が
できます。ここでは例としてex1というコンテナ内のスクリプトでechoで"app start"というメッセージを
出力しています。

コンテナの中でコマンドを実行する

podman execコマンドを使用する事でコンテナ内でコマンドを実行する事が出来ます。
ここでは例としてコンテナ内で ls / を実行します。


今回紹介した内容以外にもLinux一般のコマンドを実行する事が可能です。