ブログ

Armadillo Base OS:コンテナからEthernetの固定IP設定を行う(ABOS WebのREST APIを使用)

at_shinya.matsumoto
2024年3月21日 13時40分

Armadillo Base OSでコンテナ内(アプリケーション)からEthernetの固定IP設定を行う方法を紹介します。

実施手順

1.ABOS Webでトークンの設定を行う
2.コンテナにcurl,jqをインストールし、app.confにトークンを設定
3.コンテナ内で設定変更を行う

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

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

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

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

今回はネットワーク設定を行う必要がある為、トークンにNetworkAdmin、NetworkViewの権限を
追加しておきます。これでトークン側の設定は完了です。

2.コンテナにcurl,jqをインストールし、app.confにトークンを設定

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

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

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

3.コンテナ内で設定変更を行う

コンテナ内に入ってIPアドレスを変更する例を紹介します。

コンテナを起動(起動している場合は省略)
[armadillo]# podman_start [コンテナ名]

コンテナに入る
[armadillo]# podman exec -it [コンテナ名] /bin/bash

コンテナ内からIPアドレスを確認("Wired connection 1"の場合)
[container]# curl -s -k -H "$AUTH" \
 https://host.containers.internal:58080/api/connections/Wired%20connection%201 \
| jq -r '.props."IP4.ADDRESS[1]"'
192.168.3.11/24  //実行結果

コンテナ内からIPアドレスを設定(192.168.3.20/24に変更)
[container]# curl -s -k -H "$AUTH" -X PATCH \
-d ipv4.method=manual  \
-d ipv4.addresses=192.168.3.20/24 \
-d ipv4.dns=192.168.3.1 \
-d ipv4.gateway=192.168.3.1 \
https://host.containers.internal:58080/api/connections/Wired%20connection%201

コンテナ内からIPアドレスを確認("Wired connection 1"の場合)
[container]# curl -s -k -H "$AUTH" \
 https://host.containers.internal:58080/api/connections/Wired%20connection%201 \
| jq -r '.props."IP4.ADDRESS[1]"'
192.168.3.20/24  //実行結果

以上で設定完了です。リブート後も設定は保持されます。


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