6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

enebular_uhuruAdvent Calendar 2020

Day 8

enebular-agentで何かを作る改め紹介&使い方

Last updated at Posted at 2020-12-08

enebular-agentを使って作ったアイディアを書くつもりでしたが、完成が間に合わなかったため、代わりにenebular-agentの紹介&使い方を書きます。

そもそもenebular-agentとは

Linux上で動作するIoT向けのエージェントソフトです。動作保証がされている環境はオフィシャルドキュメントに書いてありますが、enebular-agentはオープンソースとなっているので、他のLinux環境でも多少のカスタマイズで動作させることも可能だと思います。

何ができる?

enebularで管理されているアセット(フロー、ファイル、AIモデル)をデプロイすることができます。
そもそもIoT向けのエージェントソフトなので、最初のインストール以降はデバイスに触ることなくクラウドから遠隔で管理、アプリケーションの更新ができるようになっています。

遠隔で管理?

enebular上では、enebular-agentのステータスやログを見ることができます。さらにリモートメンテナンス機能を使うとインターネットを介してSSH接続できるようになってます。(もちろんセキュアに)

インストール方法

enebular-agentはコマンドで自動的にインストールできるようになってます。

インストール前に必要なもの

enebular-agentとenebularと繋ぐため、以下のいずれかのサービスを必要とします。インストール時に接続情報が必要になります。

※AWS IoTを使用する場合は、AWSの設定を含め、enebular-agentのインストール方法を詳細に説明した記事「enebular-agentをRaspberry Piにインストールする」があるのでこちらも参照下さい)

インストールコマンド

インストールは自動ですが、インストールコマンドのオプションがちょっと複雑です。

次の例はAWS IoTを使う場合に、普通にインストールするためのコマンド例です。

wget -qO- https://enebular.com/agent-install | sudo -E bash -s -- --aws-iot-thing-name={iot thing name} --aws-access-key-id={access key id} --aws-secret-access-key={secret access key} --aws-iot-region={iot region}

中カッコ内はAWS IoTの接続情報に書き換えてください。iot thing nameは他と被らなければある程度自由に決められます。インストーラーの中でこの名前を使って、AWS IoTのThingを自動的に作って、接続します。

フローのデバッグ方法

フローはenebular上のWebフローエディタでもデバッグできますが、デバイス上でしか動作しないものはWebフローエディタではデバッグできません。基本的にデバッグする方法は2種類です。

デバイスログでデバッグ

debugノードのオプションでシステムコンソールにチェックを入れるとenebular上のデバイスログで確認ができます。これで処理の結果を確認することができます。

image.png

image.png

ただし、デバイスのログは5分に1回しかアップロードされないため、リアルタイムに確認することができません。リアルタイムに確認するにはリモートモードが便利です。

enebular editorでデバッグ

enebular editorを使うとリモートでenebular-agentのフローエディタに接続することができるリモートモードが使用できます。ただし、enebular-agentとenebular editorが動作するPCが同一のネットワーク内でないと使用できません。

リモートモードは、事前にenebular-agentが動作しているデバイス上もしくはSSH接続を行い、以下の手順でenebular-agentの動作モードを切り替える必要があります。

1.enebular-agentを一旦停止する

> sudo systemctl stop enebular-agent-{user名}.service 

※user名はenebular-agentをインストールするときにオプションで指定したユーザ名になります。指定していない場合はenebularです。

2.Nodejsのパスを環境変数に追加

> export PATH=$PATH:/home/{user名}/nodejs-v12.18.1/bin

※上記パスのnodejsのバージョンはenebular-agentのバージョンによって異なりますので、インストールしたバージョンに合わせて変更して下さい。

3.enebular-agentを開発者モードで起動

> /home/{user名}/enebular-runtime-agent/ports/awsiot/bin/enebular-awsiot-agent --dev-mode

※AWS IoTの場合

enebular-agentを開発者モードで起動したらenebular editorからリモートモード接続します。

image.png
※IPアドレス選択のダイアログが表示される場合は、enebular-agentと同じネットワークを選んでください。

接続に成功すればフローエディタが表示されます。デバッグメッセージを開けばリアルタイムでdebugノードの結果が表示されます。

image.png

6
5
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
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?