インストール手順

概要

本手順書では、enebular-agentのインストール手順を説明します。

enebular-agentは、AWS IoTを使用してenebularに接続できます。(AWS IoTの環境はご用意いただく必要があります)
インストールは、対象デバイスのLinux OS上でシェルスクリプト(以降、インストールスクリプト)を実行することにより行われます。

説明

前提条件

インストールスクリプトを実行する前に取得・準備する事項は以下の項目です。

Linux

  • enebular-agentがサポートするDebian GNU/Linuxであること
  • enebular-agentを実行するユーザーが作成されていること(以降ではenebularユーザーが作成されているという前提で記載)
  • インストールに使用するユーザーがsudo権限(sudoコマンドを使用)を持っていること
  • インターネット接続環境があること

AWS IoT

  • AWSのアカウントが作成されていること
    • このアカウントにはAWSIoTConfigAccessの権限が与えられていること
  • enebular-agentのインストールに使用するAWS Access Key Id(AWSAccessKeyId)が取得されていること
  • enebular-agentのインストールに使用するAWS Secret Access Key(AWSSecretKey)が取得されていること

enebular

  • enebularのアカウントが作成済みであること
  • enebularにプロジェクトが作成されていること

インストールスクリプトの実行

インストールスクリプトは、対象デバイスのLinuxにログインして、shellより以下のコマンドを入力することで実行できます。

wget -qO- https://enebular.com/agent-install | sudo -E bash -s -- オプション1 オプション2 ・・・

上記のコマンドを実行するフォルダーは、どこでも構いません。
インストールスクリプトはenebular.comサーバーよりインターネット経由で取得します。
インストール先のフォルダーはインストールスクリプトのオプションで指定します。
そのため、任意のフォルダーでインストールスクリプトを実行できます。

オプション

インストールスクリプトに設定できるオプションとオプション引数は次の表のとおりです。

オプション オプション引数 説明
-u or --user =作成済みのユーザー名 Linuxのユーザーを指定します(注1)
-d or --install-dir =パス Linux上のインストールフォルダーを指定します(注2)
-v or --release-version =enebular-agentのバージョン enebular-agentのバージョンを指定します
--no-startup-register 無し enebular-agentの自動起動を有効にするか無効するかを指定します(注3)
--aws-access-key-id =AWS Access Key ID AWS Access Key IDを指定します
--aws-secret-access-key =AWS Secret Access Key AWS Secret Access Keyを指定します
--aws-iot-region =AWS IoTのリージョン AWS IoTのリージョンを指定します
--aws-iot-thing-name =AWS IoTのモノ名 AWS IoTのモノ名を指定します
--dev-mode 無し enebular-agentの自動起動を有効にした場合の起動モード(開発者モード,ノーマルモード)を指定します
--remote-maintenance-user-password =パスワード Remote Maintenanceを行う際のログインユーザのパスワードを指定します(注4)
  • 注1:enebular-agentはこのオプションにて指定されたユーザーでインストールされ、実行されます。ユーザーの詳細については、ユーザー/フォルダー - ユーザーを参照してください
  • 注2:指定されたフォルダーがない場合は作成します。フォルダーの詳細については、ユーザー/フォルダー - フォルダーを参照してください
  • 注3:enebular-agentの自動起動は、Linuxのサービスとして起動するようになります。サービス自動起動については起動/停止 - コマンドを参照してください
  • 注4:セキュリティ対策のため、パスワードを設定することを推奨します

オプションの詳細

各オプションの必要性について次の表に示します。

オプション 必須/省略可 オプション省略時の設定内容
-u or --user 省略可 enebular(注1)
-d or --install-dir 省略可 /home/<ユーザー>/enebular-runtime-agent
-v or --release-version 省略可 The latest release(最新リリース)
--no-startup-register 省略可 enebular-agentの自動起動を有効にします
--aws-access-key-id 必須
--aws-secret-access-key 必須
--aws-iot-region 必須
--aws-iot-thing-name 必須
--dev-mode 省略可 enebular-agentを「ノーマルモード」で起動します(注2)
--remote-maintenance-user-password 省略可 enebular
  • 注1:Linuxで作成済みユーザーを使用してください。ユーザー作成していないユーザーを使用した場合、Linux上に本システムのために必要なフォルダー・ファイルは作成されますが、ログインができるようにするための作業が別途必要になります
  • 注2:enebular-agentの起動モードは、はじめてのインストール時は「ノーマルモード」を推奨しています

オプション設定時の注意事項

オプション設定時の注意事項を列挙します。

  • オプションは複数指定可能です(オプションとオプションの間は半角ブランク)
  • オプション引数には不要な半角ブランクを入れないでください
  • -dまたは--install-dirオプション指定時はフルパスで指定してください(例:-d=/home/enebular/enebular-runtime-agent

コマンド実行時に省略可のオプションを指定しなかった場合、「オプション省略時の設定内容」が設定されます。

wget -qO- https://enebular.com/agent-install | sudo -E bash -s

上の例のように、-p,-u,-dを指定しなかった場合は、以下のように設定されます。

  • AWS IoTを用いてenebularと接続します
  • enebular-agentはenebularユーザーとして実行されます
  • インストール先フォルダーは、/home/enebular/enebular-runtime-agentになります

事例

インストールスクリプトの実行例

Linuxにインストールする場合のコマンド実行例

wget -qO- https://enebular.com/agent-install | sudo -E bash -s -- --aws-iot-thing-name=enebular-agent-test --aws-access-key-id=AKIAJWWCHDEPQJD456PQ --aws-secret-access-key=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 --aws-iot-region=us-west-2

上記事例のオプションの意味は以下のとおりです。

  • Linuxユーザーはenebular(オプション省略のためデフォルト値を適用)
  • AWS Access Key IDはAKIAJWWCHDEPQJD456PQ
  • AWS Secret Access Keyは6qtl9JJ90ue5CMeHSJKm1I4iRRwKOQKLCpzt9Y94
  • AWS IoTのリージョンはus-west-2
  • AWS IoTのモノ名はenebular-agent-test
  • その他のオプションは省略

注意:ここに記載されているAWS Access Key ID, AWS Secret Access Keyの値はあくまで例ですので、この値を使用してコマンドを実行しても正常終了しません。

Raspberry Piにインストールする場合のコマンド実行例

Raspberry Piにenebular-agentのインストールを行う場合、ユーザー名はpiにすることを推奨します。

wget -qO- https://enebular.com/agent-install | sudo -E bash -s -- --aws-iot-thing-name=enebular-agent-test --aws-access-key-id=AKIAJWWCHDEPQJD456PQ --aws-secret-access-key=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 --aws-iot-region=us-west-2 --user=pi

Raspberry Pi OSのデフォルトのユーザーであるpiは、GPIO、I2C等のペリフェラルに対してアクセスできるグループに所属しています。
ユーザー名をpiにしてインストールすることで、enebular-agentからペリフェラルを利用する場合に権限の設定を行う手間がなくなります。
pi以外のユーザーを指定してインストールする場合、追加されたユーザーはペリフェラルにアクセスできるグループには属していないため、必要に応じてペリフェラルへのアクセス権限を与える必要があります。

結果

フォルダー構成

インストールに成功すると、対象デバイスには以下のようなフォルダー構成で関連するファイルがインストールされます。

/home/
  └enebular/ ← ユーザー
      ├enebular-runtime-<インストールユーザ名>/ ← インストールフォルダ
      └nodejs-v<バージョン>/ ← JavaScript

/home/enebular/enebular-runtime-agent/ports/awsiot/certs/フォルダーに以下の鍵と証明書が生成されますので、バックアップを行ってください。

  • enebular-agent-test-private.pem
  • enebular-agent-test.crt.pem
  • root.pem

enebular-agentの実行状況の確認方法

sudo journalctl -ex -u enebular-agent-enebular.service

enebular-agentを自動起動する設定でインストールした場合(--no-startup-registerを指定しない場合)は、上記のコマンドを実行することでenebular-agentの実行状況を確認できます。

enebularの確認方法

AWS IoTの管理画面から以下を確認できます。

  • 「管理」-「モノ」に「enebular-agent-test」が追加されます
  • 「管理」-「モノ」-「enebular-agent-test」-「操作」で「HTTPS(エンドポイント)」が確認できます

アンインストール手順

以下の手順でデバイスからアンインストールできます。

sudo systemctl stop enebular-agent-<インストールユーザ名>.service
sudo systemctl disable enebular-agent-<インストールユーザ名>.service
sudo rm /etc/systemd/system/enebular-agent-<インストールユーザ名>.service

Raspberry Piのpiユーザーにインストールされたenebular-agentをアンインストールする場合のコマンド実行例

sudo systemctl stop enebular-agent-pi.service
sudo systemctl disable enebular-agent-pi.service
sudo rm /etc/systemd/system/enebular-agent-pi.service

enebular-agent用のユーザーごと削除する場合は、以下のコマンドを実行します。

sudo deluser --remove-all-files <インストールユーザ名>

enebular-agentの要素を削除する場合、以下のコマンドを実行します。
※nodejsのバージョン番号は/home/<インストールユーザ名>/配下にあるバージョン番号を設定してください。

sudo rm -r /home/<インストールユーザ名>/enebular-runtime-agent
sudo rm -r /home/<インストールユーザ名>/nodejs-v<バージョン>

トラブルシューティング

空き容量が不足している場合

  • enebular-agentのインストールに十分な空き容量が存在しない場合、エラーメッセージとともにインストールが失敗します。
    また、全体の空き容量は足りていても領域がパーティションで分割されている場合、うまくインストールできない場合があります。
  • enebular-agentのインストーラーはダウンロードしたパッケージを/tmpディレクトリ以下に保存します。そのため、/tmpディレクトリに割り当てられた容量が少ないと、インストール用のパッケージをダウンロードする際に容量不足が問題になることがあります。
    これらの場合、パーティションの設定を見直すことで解決する場合があります。

results matching ""

    No results matching ""