このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
mae3xx_tips:warplink_sps:start [2017/06/08 10:03] – [起動設定 (Upstart)] admin | mae3xx_tips:warplink_sps:start [2017/06/20 11:25] (現在) – admin | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== WarpLink SPS の利用 ====== | ||
+ | {{: | ||
+ | |||
+ | WarpLink SPS((IIJ様 SACM の OEM)) は、通信機器(サービスアダプタ((SA)))をネットワークに自動接続し、遠隔から集中管理するマネージメントシステム基盤です。\\ | ||
+ | 設定管理などのすべての機能を専用の Web 画面を通して一元的に行えるため、SaaS アプリケーションのように手軽に機器の管理を行うことが可能です。\\ | ||
+ | VPN ルータの集中監視に加えて、無人環境に多数展開している IoT ゲートウェイを一元管理することが可能となり、VPN ルータ / IoT ゲートウェイに\\ | ||
+ | 掛かるトータルコストを大幅に削減できます。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== 準備 ===== | ||
+ | |||
+ | ご利用にはユーザ登録が必要です。\\ | ||
+ | 弊社営業部 (TEL: 0422-37-8112 E-Mail: sales@centurysys.co.jp) へお問い合わせ下さい。 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== 設定 ===== | ||
+ | |||
+ | ==== 設定ファイルの編集 (armsd.conf) ==== | ||
+ | |||
+ | ファームウェア v2.7.0 より、WarpLink SPS との接続を行うエージェント(armsd)を組み込んであります。\\ | ||
+ | armsd の設定ファイル ''/ | ||
+ | |||
+ | <file config armsd.conf> | ||
+ | distribution-id: | ||
+ | ls-sa-key: | ||
+ | # | ||
+ | # | ||
+ | |||
+ | # | ||
+ | # | ||
+ | # | ||
+ | |||
+ | # | ||
+ | # | ||
+ | |||
+ | ### see sample scripts in / | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | </ | ||
+ | |||
+ | distribution-id, | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== 起動設定 (Upstart) ==== | ||
+ | |||
+ | ''/ | ||
+ | |||
+ | <file config armsd> | ||
+ | START=yes | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== 起動の確認 ==== | ||
+ | |||
+ | 起動できているか確認してみます。 | ||
+ | |||
+ | < | ||
+ | root@plum: | ||
+ | 1025 ? Ss 0:03 / | ||
+ | 31798 pts/1 S+ 0:00 grep --color=auto armsd | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | log でも確認してみます。 | ||
+ | |||
+ | < | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:18 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | Jun 7 13:20:19 plum armsd[1025]: | ||
+ | </ | ||
+ | |||
+ | heartbeat が送信されていますので、接続は成功しているようです。 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== カスタマイズ ===== | ||
+ | |||
+ | ==== コールバックスクリプトの作成 ==== | ||
+ | |||
+ | WarpLink SPS のシステムに接続中に発生する各種イベント(コンフィグの適用など)は、armsd に登録したコールバックスクリプトにより処理を行います。\\ | ||
+ | |||
+ | コールバックスクリプトには、下記があります。 | ||
+ | |||
+ | < | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | </ | ||
+ | |||
+ | ^ Name ^ Function | ||
+ | |app-event|IP アドレス変更の通知| | | ||
+ | |clear|ステータス初期化 (PUSH)| | | ||
+ | |command|任意コマンド|command <id> < | ||
+ | |post-pull|Pull 完了後に実行| | | ||
+ | |reconfig|コンフィグ変更 (PUSH)|reconfig <id> < | ||
+ | |start|Pull 時実行|start <id> < | ||
+ | |stop|モジュール停止|stop <id>| | ||
+ | |reboot|再起動| | | ||
+ | |line-ctrl|Pull 時の回線接続((SMF SDK を用いて独自 RS を構築している事業者のみ設定可能です。WarpLink SPS/SACM などのサービスを直接利用する場合には利用できません。))|line-ctrl < | ||
+ | |state-changed|ステータス変化通知|state-changed < | ||
+ | |||
+ | \\ | ||
+ | |||
+ | 機器の起動時には、モジュールの個数分(5) " | ||
+ | 例として、次のような " | ||
+ | |||
+ | <file bash start> | ||
+ | #!/bin/bash | ||
+ | |||
+ | id=$1 | ||
+ | version=$2 | ||
+ | info=$3 | ||
+ | config=$4 | ||
+ | |||
+ | echo start script invoked at `date`: $0 $* | ||
+ | |||
+ | echo module-id=$id | ||
+ | echo version=$version | ||
+ | echo info=$info | ||
+ | echo config file is: $config: | ||
+ | echo ----- | ||
+ | cat $config | ||
+ | echo ----- | ||
+ | </ | ||
+ | |||
+ | 次のようなログが(Upstart のログに)記録されます。 | ||
+ | |||
+ | < | ||
+ | start script invoked at Wed Jun 7 13:20:18 JST 2017: / | ||
+ | module-id=2 | ||
+ | version=0.0.0-0 | ||
+ | info= | ||
+ | config file is: / | ||
+ | ----- | ||
+ | hogehoge | ||
+ | ----- | ||
+ | start script invoked at Wed Jun 7 13:20:18 JST 2017: / | ||
+ | module-id=3 | ||
+ | version=0.0.0-0 | ||
+ | info= | ||
+ | config file is: / | ||
+ | ----- | ||
+ | ----- | ||
+ | start script invoked at Wed Jun 7 13:20:18 JST 2017: / | ||
+ | module-id=4 | ||
+ | version=0.0.0-0 | ||
+ | info= | ||
+ | config file is: / | ||
+ | ----- | ||
+ | ----- | ||
+ | start script invoked at Wed Jun 7 13:20:18 JST 2017: / | ||
+ | module-id=0 | ||
+ | version=0.0.0-0 | ||
+ | info= | ||
+ | config file is: / | ||
+ | ----- | ||
+ | hoge1 | ||
+ | http:// | ||
+ | ----- | ||
+ | start script invoked at Wed Jun 7 13:20:19 JST 2017: / | ||
+ | module-id=1 | ||
+ | version=0.0.0-0 | ||
+ | info= | ||
+ | config file is: / | ||
+ | ----- | ||
+ | ----- | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | === ファームウェア更新機能の実装 === | ||
+ | |||
+ | モジュール ID: 0 には " | ||
+ | |||
+ | * VERSION((無条件に実行されるため、バージョンをチェックして無駄なダウンロードを避けるため)) および URL を config に記述するようにする | ||
+ | * start / reconfig スクリプトで、config ファイルをパースしてファームウェア更新が必要か判定する | ||
+ | |||
+ | という実装が考えられます。 | ||
+ | |||
+ | サンプルは次のようになるでしょうか。 | ||
+ | |||
+ | <file bash reconfig> | ||
+ | #! /bin/bash | ||
+ | |||
+ | |||
+ | firmup_check() { | ||
+ | local config=$1 | ||
+ | local ma_version=`cat / | ||
+ | local VERSION=" | ||
+ | local URL="" | ||
+ | |||
+ | . $config | ||
+ | |||
+ | echo "MA version(current): | ||
+ | echo " | ||
+ | |||
+ | if [ " | ||
+ | echo " | ||
+ | # wget $URL -O / | ||
+ | # firmup / | ||
+ | else | ||
+ | echo " | ||
+ | fi | ||
+ | } | ||
+ | |||
+ | echo reconfig script invoked at `date`: $0 $* | ||
+ | |||
+ | # $1 is module-id | ||
+ | case " | ||
+ | " | ||
+ | ;; | ||
+ | esac | ||
+ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | \\ | ||
+ | |||
+ | 実行例は下記のようになります。 | ||
+ | |||
+ | <file generic syslog> | ||
+ | reconfig script invoked at Wed Jun 7 14:51:02 JST 2017: / | ||
+ | MA version(current): | ||
+ | Version in config: " | ||
+ | version unmatched, need to update firmware, firmware URL is " | ||
+ | </ |