Raspberry Pi 4Bなどの小型のコンピュータに対して、クラウド実行環境のようにenebularから管理できるエージェント実行環境を2022年7月にリリースしました。
この機能を使うことによって、enebularから遠隔でフローのデプロイ、メンテナンスができるようになり、本番運用にかかる作業の削減につながります。
今回は、このエージェント実行環境を使ったシステムを構築するための流れを紹介します。
エージェント実行環境でできることやインストール方法は、enebularのドキュメント及び『エージェント実行環境』をリリースしましたも合わせて参照ください。
エージェント実行環境を使った開発の流れ
エージェント実行環境にもクラウド実行環境と同じように、enebularのフローエディターで作成したフローをデプロイできますが、実機環境でしか動作しないノードも存在します。
そのため、エージェント実行環境は、enebular editorからリモートモードで接続し、エージェント実行環境上のフローを直接デバッグできるようになっています。
その方法を順に解説します。
エージェント実行環境をリモートモード用にインストール
フローを直接デバッグするためには、エージェント実行環境を開発者モードでインストールしたほうがスムーズです。
開発者モードでインストールするためには、エージェント実行環境のインストールコマンドの後ろに--dev-mode
と付けてインストールする必要があります。インストール後も開発者モードで起動する方法もありますが、インストール時に行ったほうが簡単です。
リモートモードでフローの編集
エージェント実行環境にPC上のenebular editorからリモート接続するためには、同じローカルエリア内である必要があります。
enebular editorでデバッグしたいフローの編集項の以下のアイコンをクリックしてください。
最初にIPアドレスの選択が求められるので、エージェント実行環境が動作している端末と同じネットワークのインターフェースを選び、「次へ」をクリックします。
次に接続先を選ぶ画面が表示されるので「エージェント実行環境を選択」をクリックします。
次の画面で、接続したいエージェント実行環境を選び「読み込み」をクリックします。
接続まで30~1分ほどかかります。フローで使用している外部ノードやプロジェクト内のプライベートノードの量によっては、1分以上かかる場合があります。
しばらくするとフローエディターが表示されます。
これで、エージェント上のフローを直接編集できるようになります。
※リモートモードで編集したフローは、enebular側で保存されているフローにも反映されます。
環境変数を活用する
複数のエージェント実行環境で同じフローを利用する際に、エージェント実行環境ごとに異なる値を設定したい場合は、環境変数を利用すると便利です。
環境変数は、エージェント実行環境の設定タブで設定します。
キーと値を記入して、追加をクリックします。
すべての入力が終わったら保存をクリックします。
環境変数を保存した際にフローは再起動します。継続的なデータを扱ってる場合はご注意ください。また、リモートモード接続中の場合は、いったん接続が解除されるので、再度繋ぎ直してください。
フローで環境変数を扱う場合は、injectノードやchangeノードで、環境変数を使用するように指定して、設定したキー名を入力すれば、参照できます。
運用する
フローの開発が終わったら開発者モードは、セキュリティリスクもあるため通常モードで動作するようにします。
管理者権限で以下のファイルを開き、ENEBULAR_DEV_MODE=true
となっている箇所`ENEBULAR_DEV_MODE=false
としてください。
/etc/systemd/system/enebular-agent-{インストールしたユーザー名}.service
エージェント実行環境を一度削除してから、インストールコマンドを再発行し、インストールし直してもOKです。その場合は、フローをデプロイし直す必要があります。
メンテナンスする
エージェント実行環境とインターネット越しにセキュアなSSH接続ができます。
手順
1. enebularの設定メニューでキーペアを作成し、キーをダウンロードする
2. エージェント実行環境の設定タブからリモートメンテナンスをONにする
3. 表示されたコマンドのキーのパスを保存したキーのパスに書き換えて、コマンドプロンプトなどのターミナルで実行する
※ログインするのは、enebular-remote-adminというユーザー名になります。
エージェント実行環境を使った開発の流れは以上になります。
エージェント実行環境用ノード
Discoverにエージェント用のノードを公開していますので紹介します。
利用方法は、Discoverのページを参照ください。
computer-performanceノード
エージェント実行環境が動作しているコンピュータの以下の値を出力するノードです。
- CPU温度(℃)
- CPU使用率(%)
- 空きメモリ(MB)
https://enebular.com/discover/privatenode/7aa7605c-425a-4002-b2e0-925520053aba
nfc-id-readerノード
ICカードリーダ(PaSoRi RC-S380)からカードのタイプとIDを取得するノードです。
https://enebular.com/discover/privatenode/cf95897e-3c58-4366-a7e6-884d86ce4aa2
rpi-barcodeノード
Raspberry Piに接続されたバーコードリーダーからバーコードを取得するノードです。
https://enebular.com/discover/privatenode/daba7e3b-b759-4604-878e-10a792dd8c2f
grovepi-nodes
Raspberry Piに搭載したGrovePi+経由でGroveモジュールを接続するためのノード群です。
(こちらのページも参照ください)
https://enebular.com/discover/privatenode/e8162ce1-6e65-4141-8b4e-d593e580a12d
最後に
今回は、このエージェント実行環境を使ったシステムを構築するための流れを紹介しました。今まで遠隔へのフローのデプロイ作業が煩雑と感じていた方はぜひお試しください。
今後もエージェント実行環境のノウハウを紹介していきますので、enebularブログをチェックお願いします。
また、エージェント実行環境にかかわらずenebularで何か困ったことがありましたら、サインイン後の右上のアカウント名をクリックすると出てくる「サポート」からお問い合わせください。