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 //実行結果
以上で設定完了です。リブート後も設定は保持されます。