masa.yamaguchi
2024年7月3日 11時53分
現在、Armadillo Base OS(Armadillo-610)上のコンテナ上のアプリから無線LANアクセスポイント接続を作成・削除する方法について
調査しています。( ABOS WEB 操作の 「WLAN設定 - アクセスポイントとして使用する/設定を削除」をコンテナ上のアプリから実施することが目的)
現状実現できておりませんが、上記方法についてもし実現可能で、且つ方法をご存じであればご教示頂きたいです。
[備考(試したこと)]
・REST API は接続作成する機能は見当たりませんでした。
・設定ファイル hostapd.conf を任意の場所に用意してコンテナから ホストの/etc/hostapd/ 配下にコピーする手段は
調査中です(コンテナ内からホストのファイルにアクセスする手段が見つかりませんでした)。
コメント
masa.yamaguchi
佐藤様
masa.yamaguchiです。ご回答ありがとうございます。
報告事項と1点質問がございます。
■報告事項
ご教示頂いた方法で、コンテナ内からcurlコマンドを使用することで
無線LANアクセスポイント接続を作成・削除することを確認できました。
■質問
無線LANアクセスポイント接続を作成時、それだけでは スマホとArmadillo:WLANのAP接続ができませんでした。
上記に加えて ABOS Web のDHCPサーバ設定で、以下設定を実施してつながるようになりました。
・インターフェース:br_ap 192.168.1.1/24 を選択 ・DHCPリリース範囲:192.168.1.10 ~ 192.168.1.254 ・DHCPリリース時間:24h
重ね重ねすみませんが、上記 ABOS Web のDHCPサーバ設定で行う設定と同等の処理を
コンテナ上のアプリから実施する方法があればご教示頂きたいです。
[備考]
・こちらでDHCPあり・なしのケースで以下コマンド実行結果(詳細情報)を比較したところ、結果に差異がありませんでした。
→REST APIを使用してDHCP設定をする方法は、現状見つけることができていません。
<Rest API : ネットワーク設定:詳細情報取得> curl -k -H "$AUTH" https://host.containers.internal:58080/api/connections/abos_web_br_ap
at_makoto.sato
佐藤です。
> 重ね重ねすみませんが、上記 ABOS Web のDHCPサーバ設定で行う設定と同等の処理を
> コンテナ上のアプリから実施する方法があればご教示頂きたいです。
こちらも、REST API はありませんが、以下のようにすることでできるかと思います。
作成する場合
curl -v -k -c cookie -b cookie -d password=<ABOS Webへのログインパスワード> https://host.containers.internal:58080/login curl -k -v -c cookie -b cookie \ -d interface=br_ap \ -d start_addr=192.168.1.10 \ -d end_addr=192.168.1.254 \ -d lease_time=24h \ https://host.containers.internal:58080/dhcp_setup
削除する場合
curl -v -k -c cookie -b cookie -d password=<ABOS Webへのログインパスワード> https://host.containers.internal:58080/login curl -k -v -c cookie -b cookie -d interface=br_ap https://host.containers.internal:58080/dhcp_delete
masa.yamaguchi
masa.yamaguchi
佐藤様
masa.yamaguchiです。
すみません。あと2点だけ以下お伺いしたいことがございます。
①コンテナ上のアプリからインフラストラクチャモードにて指定のSSIDに接続しようとして、
以下コマンドを試しに実行しましたが、接続できませんでした。
(コマンドはログイン->接続の順です)
curl -v -k -c cookie -b cookie -d password=root https://host.containers.internal:58080/login curl -k -v -c cookie -b cookie \ -d interface=wlan0 \ -d driver=nl80211 \ -d hw_mode=a \ -d channel=10 \ -d ieee80211n=1 \ -d wpa=2 \ -d wpa_key_mgmt=WPA-PSK \ -d rsn_pairwise=CCMP \ -d ssid=<SSID> \ -d wpa_passphrase=<PASSWORD> \ https://host.containers.internal:58080/ap_setup
コンテナ上のアプリから、インフラストラクチャモードにて指定のSSIDに接続する場合のコマンドについて
もし存在する場合ご教示頂きたいのですが、よろしいでしょうか。
②上記接続を削除する場合のコマンドも併せてご教示頂きたいです。
at_makoto.sato
佐藤です。
接続は以下のようにするとできるかと思います。
curl -k -v -c cookie -b cookie \ -d essid=<SSID> \ -d other_essid="" \ -d security=wpa-psk \ -d password=<PASSWORD> \ -d method=auto \ -d ip_addr="" \ -d netmask="" \ -d gateway_addr="" \ -d p_dns_addr="" \ -d s_dns_addr="" \ https://host.containers.internal:58080/wlan_setup
削除の方はもうひと手間かかります。
まず、以下のコマンドで、接続のuuidを取得します。
curl -v -k -c cookie -b cookie https://host.containers.internal:58080/api/connections
レスポンスとして、jsonが返ってきますので、その中からWLAN接続のuuidを見つけてください。
(おそらく"name"が"ssid名"になっているデータにあります)
その uuid を使って以下を実行すると削除されるかと思います。
curl -v -k -c cookie -b cookie -d con_uuid=<見つけたuuid> https://host.containers.internal:58080/wlan_delete
masa.yamaguchi
at_makoto.sato
2024年7月3日 13時53分
佐藤です。
すいません。ご認識の通り現状では REST API からは無線LANアクセスポイント接続を作成・削除することはできません。
> 現状実現できておりませんが、上記方法についてもし実現可能で、且つ方法をご存じであればご教示頂きたいです。
少し手間なのですが、以下のようにするとできるかと思います。(コンテナ内に curl インストール済みの前提です)
作成する場合
削除する場合