LoginSignup
3
0

More than 1 year has passed since last update.

enebular-agentをRaspberry Piにインストールする

Last updated at Posted at 2021-10-03

enebular-agentとは、Raspberry Pi等の小型のLinuxデバイス上で動作するIoT向けのエージェントソフトです。

enebularと連携し、以下のことが可能です。

  • Node-RED フローの遠隔デプロイ
  • ファイルの遠隔デプロイ(2021年9月より無料でも利用できるようになった)
  • AIモデルの遠隔デプロイ(2021年9月より無料でも利用できるようになった)
  • フローのスタート/ストップ(現在、有料機能)
  • enebular-agentのログ、ステータス監視(現在、有料機能)

enebular-agentは主にRaspberry Pi上で動作します。Raspberry Piとenebular-agentを使った例をQiitaに書いているので、参考にしてください。

この記事では、enebular-agentをRaspberry Pi 4Bにインストールし、enebularと連携させる手順を説明します。

enebular-agentを使うためには

enebular-agentでは、enebularとの連携にAmazon Web Service(AWS)のAWS IoTとAmazon SNSを使用しますので、AWSのアカウントが必要になります。
下図はenebularとAWS、enebular-agentとのイメージです。

image.png

AWSのアカウントを作成し、IAMのユーザーを用意すれば、enebularやenebular-agentのインストーラが自動的に設定を行いますので、AWSの各サービスの知識は不要です。

AWSのアカウント作成

まずは、AWSのアカウントを作成します。すでにお持ちの方は、この手順は飛ばしてください。

AWSのアカウント作成には以下の情報が必要になるので、用意してください。

  • Eメールアドレス
  • パスワード
  • AWSアカウント名
  • フルネーム
  • 電話番号(登録用と検証用 同じものでも可)
  • 住所
  • クレジットカードまたはデビットカード番号 ※引き落とし用の情報は必要になりますが、個人利用、enebular-agent数台分であれば無料枠の範囲で利用できます

Amazon Web Serviceのページで以下のアイコンをクリックします。

image.png

サインインのページから以下のアイコンをクリックし、アカウントを作成します。

image.png

アカウント作成画面で必要情報を入力していきます。

image.png

SMSもしくは音声での検証が必要になるので、国を選択し、電話番号を入力し、セキュリティの文字を入力後、「SMSを送信する」をクリックし、受け取ったコードを入力します。

image.png

次のページでサポートプランを選択します。とりあえず無料のベーシックプランで十分です。

image.png

これでアカウントの作成は完了です。

最初に入力した、Eメールアドレスがルートユーザーのメールアドレスになるので、サインインのページでEメールアドレスとパスワードを入力し、サインインします。

image.png

IAMユーザー、ロールの作成

AWSにログインした状態でサービス検索欄からIAMを検索し、IAMのページに移動します。

image.png

IAM Role ARNの作成

IAMのページの左メニューからロールを選択し、「ロールを作成」をクリックします。

image.png

ロールの作成画面で「IoT」を選択、ユースケースの選択で「IoT」を選択し「次のステップ:アクセス権限」をクリックします。

image.png

アクセス権限ポリシー、タグの作成はそのまま次のステップへ進み、確認画面でロール名を入力し「ロールの作成」をクリックします。

ロールの名前は、指定無いですが、わかりやすく「enebular_status_push_role」と名付けました。

image.png

ロール一覧の画面に作成したロールが追加されるので、それをクリックし設定を変更します。

image.png

追加されているポリシーをすべて削除し、「ポリシーをアタッチします」から「AWSIoTDataAccess」と「AmazonSNSFullAccess」を追加し直します。

image.png

アタッチし直したポリシーは以下の様になります。

image.png

これで、IAM Role ARNの作成は完了です。

AWSユーザの作成

PassRoleポリシーの作成

ユーザーを作成する前にPassRoleポリシーの作成を行います。IAMのページの左メニューからポリシーを選択し、「ポリシーを作成」をクリックします。

image.png

ポリシーの作成画面、サービスの選択で「IAM」を検索し、選択します。

image.png

アクションで、「PassRole」を検索し、選択します。

image.png

同じようにアクションで、「GetRole」、「ListAttachedRolePolicies」を検索し、選択します。

image.png

リソースの欄では、「ARNの追加」をクリックし、Role name with Path欄に「enebular_status_push_role」と入力し、「追加」をクリックします。

image.png

「次のステップ:タグ」をクリックし、タグの作成画面は、そのまま「次のステップ:確認」をクリックします。

ポリシーの名前は、指定無いですが、わかりやすく「EnebularPassRole」と名付けました。

image.png

ユーザの作成

最後にユーザの作成を行います。IAMのページの左メニューからユーザーを選択し、「ユーザーを作成」をクリックします。

image.png

ユーザー名は特に指定ないですが、わかりやすく「enebular-conn-user」と名付けました。AWS認証情報のタイプ選択は、アクセスキー・プログラムによるアクセスを選びます。

image.png

アクセス許可の設定で、「既存のポリシーを直接アタッチ」をクリックし、ポリシーのフィルタで、「AWSIoTFullAccess」と入力し、選択します。

image.png

同じように「AmazonSNSFullAccess」、「EnebularPassRole」も選択し、「次のステップ:タグ」をクリックします。

タグの作成画面は、そのまま「次のステップ:確認」をクリックします。

確認画面は、追加されているポリシーを確認し、「ユーザーの作成」をクリックします。

image.png

最後に表示される作成したユーザーの情報で、CSVファイルをダウンロードします。このCSVに記載されているアクセスキーIDとシークレットアクセスキーはenebular上の設定とenebular-agentのインストールの際に使用します。

image.png

enebularのコネクションを設定

enebular-agentをenebularに繋ぐためにenebular側でコネクションを設定します。
enebularの無料アカウントの作り方から説明します。

enebularのアカウントの作り方

enebularのページから「サインイン」をクリックします。

image.png

サインインページで、「Create an account」をクリックします。

image.png

サインアップページで、必要情報を入力。プライバシーポリシーと利用規約に同意しますのチェックボックスにチェックを入れ、「sign up」をクリックします。

image.png

入力したEメールアドレス宛に検証メールが届くので、「Verify」をクリックします。

image.png

検証が完了したらアカウントの作成完了です。左上のアイコンをクリックして、メインページに移動します。

image.png

プロジェクトとコネクションの作成

enebularでは、プロジェクトの上でフローやファイル、AIモデル等のアセットやenebular-agent等のデバイスを管理するので、プロジェクトを作成します。

プロジェクトの作成

メインページで「Create Project」をクリックし、表示されるダイアログでプロジェクトの名前を入力後「Submit」をクリックします。

image.png

コネクションの設定

コネクションを設定する前にIAM Role ARNとAWS IoT Endpointとを調べておきます。

IAM Role ARN

IAM Role ARNの作成で作成したロールのページに記載されています。

image.png

AWS IoT Endpoint

AWS IoT Coreのページから調べられます。AWSのサービス検索欄で「IoT Core」と入力し、ページに移動します。

image.png

AWS IoT Coreのページの左メニューから設定を開きます。右上のリージョン選択欄はどこでも良いですが、東京を選びました。

image.png

コネクションの作成

作成したプロジェクトのダッシュボードに入ります。

image.png

ダッシュボードの左メニューからConnectionsを選択し、「+」をクリックします。

image.png

Connection作成のダイアログに必要情報を入力します。

  • Connection Type ⇒ AWS IoT
  • Connection Name ⇒ device(自由な名前でOK)
  • AWS Access Key ID ⇒ AWS IAMユーザー作成時にダウンロードしたCSVに記載されているものを記入します
  • AWS Secret Access Key ⇒ AWS IAMユーザー作成時にダウンロードしたCSVに記載されているものを記入します
  • AWS IoT Endpoint ⇒ 前項で調べたAWS IoT Endpointを記入します
  • IAM Role ARN ⇒ 前項で調べたIAM Role ARNを記入します

image.png

最後に「Save」をクリックすれば、Connectionsに追加されます。

enebular-agentのインストール

Raspberry Pi 4Bに最新のRaspberry Pi OS with desktopをインストールし、ターミナルから以下のコマンドでenebular-agentをインストールします。

> wget -qO- https://enebular.com/agent-install | sudo -E bash -s -- --aws-iot-thing-name={thing name} --aws-access-key-id={AWS Access Key ID} --aws-secret-access-key={AWS Secret Access Key} --aws-iot-region={region} --user=pi

※コマンド中の以下の情報は書き換えてください

  • {thing name} ⇒ 同じコネクション内で被らない名前にします。enebular上で表示されるDeviceの名前にもなります。例:device-001
  • {AWS Access Key ID} ⇒ AWS IAMユーザー作成時にダウンロードしたCSVに記載されているものを記入します
  • {AWS Secret Access Key} ⇒ AWS IAMユーザー作成時にダウンロードしたCSVに記載されているものを記入します
  • {region} ⇒ Connection作成時と同じリージョンを記入します。例:ap-northeast-1

インストールが完了すると以下のように表示されます。

================================================================================
 enebular-agent has been successfully installed ✔
   - Version: 2.15.5
   - Location: /home/pi/enebular-runtime-agent
   - User: pi
   - Service name: enebular-agent-pi

 AWS IoT Thing device-001 has been created.
 enebular-agent is running as a system service.
 To check the status of agent, run the following command on the target device:
   sudo journalctl -ex -u enebular-agent-pi.service
================================================================================
See details in full install log file: /tmp/enebular-agent-install-log.xLiusK

enebular-agentはServiceに登録され、裏で起動します。また、再起動しても自動起動します。
インストーラで、AWS IoTのThingもインストールコマンドの引数で指定した名称で作成されます。

enebular-agent動作確認

動作確認として、enebular-agentで表示端末を作るで紹介しているフローをデプロイしてみます。

フローのOverview画面の「Deploy」をクリックします。
image.png

Connectionの一覧が表示されるので、作成したAWS IoTのConnectionをクリックします。
image.png

次にAWS IoTに登録されているThingが表示されますので、enebular-agentをインストールした際に指定した名称のものをチェックし、「Deploy」をクリックします。
image.png

次に表示される画面で、Deploy StatusがDeployingからDeployedになれば、enebular-agentへのフローのデプロイが完了します。
image.png

Raspberry Piの画面を確認すると自動的にブラウザが表示され、天気情報が表示されるので、フローが動作していることがわかります。
image.png

Raspberry Piにデプロイしたフローは、ローカルネットワーク内であれば、パソコンからフローを直接編集することも可能です。別記事のenebular editorでデバッグに方法を書いているので、参考にしてみてください。

3
0
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
3
0