Multi-server installation

マルチサーバ・インストールとは

マルチサーバ・インストールは、複数の VMs で FIWARE インスタンスを構成する方法です。 Keyrock がインストールされた VM と他の FIWARE GEs がインストールされた VMs で FIWARE インスタンスを構成できます。Keyrock がインストールされた VM は、メイン VM と呼ばれます。 他の FIWARE GEs をインストールした VM を追加 VM と呼びます。

構成パラメータ

config.sh ファイルを編集して構成を指定できます。

変数名 説明 既定値
MULTI_SERVER_KEYROCK Keyrock URLの URL。例) https://keyrock.exmaple.com (なし)
MULTI_SERVER_ADMIN_EMAIL Keyrock の管理者ユーザのメールアドレス。例) admin@example.com (なし)
MULTI_SERVER_ADMIN_PASS Keyrock の管理者ユーザのパスワード (なし)
MULTI_SERVER_PEP_PROXY_USERNAME Wilma PEP Proxy のユーザ名 (なし)
MULTI_SERVER_PEP_PASSWORD Wilma PEP Proxy のパスワード (なし)
MULTI_SERVER_CLIENT_ID client id (なし)
MULTI_SERVER_CLIENT_SECRET client secret (なし)
MULTI_SERVER_ORION_HOST WireCloud をインストールするときの Orion ホスト (必須)。例) orion.exmaple.com (なし)
MULTI_SERVER_QUANTUMLEAP_HOST WireCloud をインストールするときの Orion ホスト (オプション)。例) quantumleap.exmaple.com (なし)
MULTI_SERVER_ORION_INTERNAL_IP IoT Agent または Perseo をインストールする際の Orion 内部 IP アドレス (必須)。例) 192.168.0.1 (なし)

設定方法

マルチサーバ・インストールの必須変数の値を取得するには、Keyrock がインストールされている VM で次のコマンドを実行します。それらを別の VM の config.sh に追加します。

リクエスト:

make multi-server

レスポンス:

MULTI_SERVER_KEYROCK=https://keyrock.example.com
MULTI_SERVER_ADMIN_EMAIL=admin@example.com
MULTI_SERVER_ADMIN_PASS=JSyJiEVon6MIliBL

MULTI_SERVER_PEP_PROXY_USERNAME=pep_proxy_a3aff992-c3a2-4b39-8728-22eed803ccda
MULTI_SERVER_PEP_PASSWORD=pep_proxy_a00226e8-5c6e-47de-9137-40a9a932bda0

MULTI_SERVER_CLIENT_ID=1db4e864-851e-4b39-a952-ac70ca8f6bfc
MULTI_SERVER_CLIENT_SECRET=8cb45711-b992-4ef4-9eb4-cb6391d48b9a

マルチサーバ・インストールの構成例を以下に示します:

例 1

Keyrock と Orion を別々の VM にインストールします。

VMs FIWARE GEs
メイン VM Keyrock
追加 VM Orion

メイン VM の構成

KEYROCK=keyrock
ORION=

追加の VM の構成

KEYROCK=
ORION=orion

MULTI_SERVER_KEYROCK=https://keyrock.example.com
MULTI_SERVER_ADMIN_EMAIL=admin@example.com
MULTI_SERVER_ADMIN_PASS=JSyJiEVon6MIliBL

MULTI_SERVER_PEP_PROXY_USERNAME=pep_proxy_a3aff992-c3a2-4b39-8728-22eed803ccda
MULTI_SERVER_PEP_PASSWORD=pep_proxy_a00226e8-5c6e-47de-9137-40a9a932bda0

MULTI_SERVER_CLIENT_ID=1db4e864-851e-4b39-a952-ac70ca8f6bfc
MULTI_SERVER_CLIENT_SECRET=8cb45711-b992-4ef4-9eb4-cb6391d48b9a

例 2

Keyrock と Orion をメイン VM にインストールします。 WireCloud を追加の VM にインストールします。

VMs FIWARE GEs
メイン VM Keyrock, Orion
追加 VM WireCloud

メイン VM の構成

KEYROCK=keyrock
ORION=orion

追加の VM の構成

KEYROCK=
ORION=
WIRECLOUD=wirecloud
NGSIPROXY=ngsiproxy

MULTI_SERVER_KEYROCK=https://keyrock.example.com
MULTI_SERVER_ADMIN_EMAIL=admin@example.com
MULTI_SERVER_ADMIN_PASS=JSyJiEVon6MIliBL

MULTI_SERVER_PEP_PROXY_USERNAME=pep_proxy_a3aff992-c3a2-4b39-8728-22eed803ccda
MULTI_SERVER_PEP_PASSWORD=pep_proxy_a00226e8-5c6e-47de-9137-40a9a932bda0

MULTI_SERVER_CLIENT_ID=1db4e864-851e-4b39-a952-ac70ca8f6bfc
MULTI_SERVER_CLIENT_SECRET=8cb45711-b992-4ef4-9eb4-cb6391d48b9a

MULTI_SERVER_ORION_HOST=orion.exmaple.com

例 3

Keyrock と Orion をメイン VM にインストールします。Cygnus と PostgreSQL を追加の VM にインストールします。

VMs FIWARE GEs
メイン VM Keyrock, Orion
追加 VM Cygnus, PostgreSQL

メイン VM の構成

KEYROCK=keyrock
ORION=orion

追加の VM の構成

Cygnus のポートを CYGNUS_EXPOSE_PORT=all で公開して、Orion が Cygnus にコンテキストの変更を通知できるようにします。 インターネットからアクセスできないように、ファイアウォールなどのネットワーク機器を使用して露出したポートを閉じる必要があります。

KEYROCK=
ORION=
CYGNUS=cygnus
CYGNUS_POSTGRES=true
CYGNUS_EXPOSE_PORT=all

MULTI_SERVER_KEYROCK=https://keyrock.example.com
MULTI_SERVER_ADMIN_EMAIL=admin@example.com
MULTI_SERVER_ADMIN_PASS=JSyJiEVon6MIliBL

MULTI_SERVER_PEP_PROXY_USERNAME=pep_proxy_a3aff992-c3a2-4b39-8728-22eed803ccda
MULTI_SERVER_PEP_PASSWORD=pep_proxy_a00226e8-5c6e-47de-9137-40a9a932bda0

MULTI_SERVER_CLIENT_ID=1db4e864-851e-4b39-a952-ac70ca8f6bfc
MULTI_SERVER_CLIENT_SECRET=8cb45711-b992-4ef4-9eb4-cb6391d48b9a

MULTI_SERVER_ORION_HOST=orion.exmaple.com

Cygnus のサブスクリプションを作成するときに、Cygnus が実行されている VM のプライベート IP アドレスを指定します。 PostgreSQL のポートは 5055 です。

ngsi create \
  --host "orion.example.com" \
  --service openiot \
  --path / \
  subscription \
  --description "Notify Cygnus of all context changes and store it into PostgreSQL" \
  --idPattern ".*" \
  --uri "http://192.168.0.2:5055/notify"

例 4

Keyrock と Orion をメイン VM にインストールします。IoT Agent for JSON は、追加の VM にインストールします。

VMs FIWARE GEs
メイン VM Keyrock, Orion
追加 VM IoT Agent for JSON over MQTT TLS

メイン VM の構成

IoT Agent が Orion にアクセスできるように、Orion のポート 1026 を ORION_EXPOSE_PORT=all で公開します。

KEYROCK=keyrock
ORION=orion
ORION_EXPOSE_PORT=all

追加の VM の構成

Orion が実行されている VM のプライベート IP アドレスを MULTI_SERVER_ORION_INTERNAL_IP に設定します。 インターネットからアクセスできないように、ファイアウォールなどのネットワーク機器を使用して露出したポートを閉じる必要があります。

KEYROCK=
ORION=
IOTAGENT_JSON=iotagent-json
MOSQUITTO=mosquitto
MQTT_TLS=true

MULTI_SERVER_KEYROCK=https://keyrock.example.com
MULTI_SERVER_ADMIN_EMAIL=admin@example.com
MULTI_SERVER_ADMIN_PASS=JSyJiEVon6MIliBL

MULTI_SERVER_PEP_PROXY_USERNAME=pep_proxy_a3aff992-c3a2-4b39-8728-22eed803ccda
MULTI_SERVER_PEP_PASSWORD=pep_proxy_a00226e8-5c6e-47de-9137-40a9a932bda0

MULTI_SERVER_CLIENT_ID=1db4e864-851e-4b39-a952-ac70ca8f6bfc
MULTI_SERVER_CLIENT_SECRET=8cb45711-b992-4ef4-9eb4-cb6391d48b9a

MULTI_SERVER_ORION_HOST=orion.exmaple.com

MULTI_SERVER_ORION_INTERNAL_IP=192.168.0.1