LoginSignup
0
1

More than 3 years have passed since last update.

サン電子のゲートウェイRoosterにHULFT IoT(EdgeStreaming)を入れてみた

Posted at

こんにちは、よろず相談担当 すぎもん :yum: です。

今回は、Linuxゲートウェイ機器であるサン電子Rooster(NSX7000)にHULFT IoT EdgeStreamingのパッケージを作成してみました!

まずはやってみる

サン電子Rooster(NSX7000)は、サン電子株式会社のIoT/M2M向けルーターRoosterシリーズの機器です。
NSX7000は、マルチキャリア対応 LTE通信対応Linuxゲートウェイと位置づけられているそう。

NSX7000機器情報

HULFT IoT EdgeStreamingをインストールするには、事前にパッケージ作成環境を準備する必要があるみたいなので、パッケージの作成をやってみました。
image.png

パッケージ作成環境の準備

  • HULFT IoT EdgeStreaming

    • 製品本体が含まれる zip ファイルを指定のサイトからダウンロード
    • HULFT IoT EdgeStreaming に関する用語や操作については zip ファイル内の「FirstStepGuide_jpn.pdf」にあります。
  • NSX7000 パッケージ作成環境(※開発環境を別途準備します)
     NSX7000マニュアル
     上記リンクから、パッケージ作成環境の構築手順のマニュアルを参照しました。

    • Add-onアプリケーション開発-パッケージ作成マニュアル.pdf
    • Add-onアプリケーション開発-環境構築マニュアル.pdf

これで事前準備完了です。

パッケージ化するモジュールの準備

HULFT IoT EdgeStreaming Studio を使って、ストリーム処理を実装しパッケージ作成環境にデプロイします。

ストリーム処理を実装方法やデプロイ方法については、製品ダウンロード時に取得したzip ファイル内の「FirstStepGuide_jpn.pdf」を参考にやってみます。

  • FirstStepGuide_jpn.pdf

1. HULFT IoT EdgeStreaming Studio を起動し、ストリーム処理を表すスクリプトを作成
2. 開発したスクリプトを NSX7000 パッケージ作成環境上の任意のディレクトリにデプロイ
  - 指定した任意のディレクトリには es-agent.tar.gz がデプロイされました
3. デプロイしたファイルを以下のコマンドで展開

   tar zxf es-agent.tar.gz

4. コマンドを実行すると、同一ディレクトリに以下のファイルが展開されました。

  • es-agent
  • es-agent.yaml
  • script.bql
  • (plugins)※プラグインモジュールを使用している場合

パッケージの作成

NSX7000 パッケージ作成環境で HULFT IoT EdgeStreaing runtime のパッケージを作成してみます。

各種ファイルのパラメータについては以下のマニュアルを参照しました。

  • Add-onアプリケーション開発-パッケージ作成マニュアル.pdf

1. 規定のディレクトリを作成します

   トップ・ディレクトリ/
   |
   +-- object/
   |    |
   |    +-- run-es-agent 起動スクリプト
   +-- rpk/
   |    |
   |    +-- CONTROL/
   |    |      |
   |    |      +-- control ファイル
   |    |
   |    +-- appctl スクリプト
   |
   +-- EdgeStreaming-runtime
   +-- Makefile

2. 以下のファイルを object ディレクトリにコピーしました。
- es-agent
- es-agent.yaml
- script.bql
- (plugins)※プラグインモジュールを使用している場合

3. 次に、control ファイルの作成してみます。
わたしは、以下の通り作成してみました。

   Package: EdgeStreaming-runtime
   Version: 2.0.0
   Depends: 
   Runtime-Depends: 
   Maintainer: Company
   Architecture: nsx7000
   Provides: 
   Replaces: 
   Description: 

4. appctl スクリプトを作成します

わたしは、以下の通り作成してみました。

   #!/bin/sh

   PACKAGE_NAME=EdgeStreaming-runtime
   PACKAGE_DIR=/app/package

   exec $PACKAGE_DIR/$PACKAGE_NAME/sbin/$PACKAGE_NAME $@

5. appctl スクリプトから実行される EdgeStreaming-runtime スクリプトを作成します。

   #!/bin/sh /etc/rc.common

   USE_PROCD=1

   PACKAGE_NAME=EdgeStreaming-runtime
   PACKAGE_DIR=/app/package
   COMMAND=$PACKAGE_DIR/$PACKAGE_NAME/sbin/run-es-agent

   start_service() {
    procd_open_instance
    procd_set_param command $COMMAND
    procd_set_param respawn
    procd_close_instance
   }

   stop_service() {
    return 0
   }

6. 起動スクリプト(run-es-agent)を作成します

わたしは、以下の通り作成してみました。

   #!/bin/sh

   PACKAGE_NAME=EdgeStreaming-runtime
   PACKAGE_DIR=/app/package

   LD_LIBRARY_PATH=${PACKAGE_DIR}/${PACKAGE_NAME}/lib
   BIN_DIR=${PACKAGE_DIR}/${PACKAGE_NAME}/bin
   COMMAND=${BIN_DIR}/es-agent

   export LD_LIBRARY_PATH
   cd $BIN_DIR

   exec $COMMAND run -c es-agent.yaml

7. 起動スクリプト(run-es-agent)に実行権限を付与します。

chmod 755 run-es-agent

8. Makefile を作成します。

わたしは、以下の通り作成してみました。

   ROOSTER_TOP_DIR ?= $(HOME)/RoosterOS-SDK

   ADD_ON_PKG_NAME := EdgeStreaming-runtime
   ADD_ON_PKG_VERSION := 2.0.0
   ADD_ON_PKG_MAINTAINER := Company
   ADD_ON_PKG_DESCRIPTION := 

   OBJ_DIR=./object

   include $(ROOSTER_TOP_DIR)/mk/add-on-package.mk


   EdgeStreaming-runtime: 


   contents: $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR) EdgeStreaming-runtime
    mkdir -p $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/bin
    cp $(OBJ_DIR)/es-agent* $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/bin
    cp $(OBJ_DIR)/script.bql $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/bin
    cp -r $(OBJ_DIR)/plugins $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/bin

    mkdir -p $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/sbin
    cp $(OBJ_DIR)/run-es-agent $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/sbin
    $(call replace_add_on_keyword,\
        $(ADD_ON_PKG_NAME),\
        $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/sbin/$(ADD_ON_PKG_NAME))
    chmod +x $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_DIR)/sbin/$(ADD_ON_PKG_NAME)

    touch $(ROOSTER_PACKAGE_ADD_ON_CONTENTS_PREPARED)


   $(eval $(DefaultTarget))

9. 以下のコマンドを実行してパッケージを作成します。

   make rpk

10. コマンドを実行すると以下のファイルが作成されました。

  • EdgeStreaming-runtime_2.0.0.rpk

後は、この作成したパッケージファイルをRooster上に持っていき、下記のマニュアルを参考にインストールすることで使用可能です。

  • Add-onアプリケーション開発-環境構築マニュアル.pdf

最後に

今回は、HULFT IoT EdgeStreamingをLinuxゲートウェイ機器にインストールしてみましたが、いかがでしたでしょうか。
パッケージの作成をしてみましたが、マニュアルも充実しているので作業自体は思うより簡単にすることができました!

また今回は、とっかかりのパッケージ作成をまずしてみましたが、
別の機会で、HULFT IoT EdgeStreamingを具体的に使ってみたいなーと思ってます!
そこでもっと具体的なところをお話しできたらと思います!

このブログでは、今後も技術の「よろず相談窓口」で相談を受けた内容や、誕生したワザをご紹介していけたらな、と思っています。

これからも是非チェックいただき、宜しければフォローをお願いします。

それでは、また!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1