インストール

STH コンポーネントには、インストールのための3つの選択肢があります :

  1. Github リポジトリのクローニング
  2. RPM パッケージを使用
  3. Dockerを使用した自動展開

Github リポジトリのクローニング

Github リポジトリを複製する STH コンポーネントをインストールするには、次の手順に従います :

  1. リポジトリをクローンします
  2. STH リポジトリがクローンされたディレクトリに移動します
  3. Node.js モジュールと依存関係をインストールします

これは :

git clone https://github.com/telefonicaid/fiware-sth-comet.git
cd fiware-sth-comet/
npm install

STH コンポーネント・サーバはノードアプリケーションとして起動する準備ができています。

RPM パッケージを使用

次のセクションでは、RPM パッケージを使用してSTH コンポーネントをインストール、更新、および削除する手順を詳しく説明します。

パッケージの生成

前提条件 : STH コンポーネントソースから RPM パッケージを生成するには、RPM ビルドツール(rpmbuild 実行可能ファイル)、Node および npm ユーティリティ、および必要なノードモジュールをダウンロードするためのインターネット接続が必要です。

STH コンポーネントの RPM パッケージを生成するには、STH コンポーネントのルートから次のコマンドを実行します :

./rpm/create-rpm.sh -v <version> -r <release>

すべてがうまくいけば、新しい RPM パッケージが作成され、次の場所に格納されます :
./rpm/RPMS/x86_64/fiware-sth-comet-<version>-<release>.x86_64.rpm.

次のコマンドを実行して、RPMパッケージ作成スクリプトに関する追加情報を取得します :

./rpm/create-rpm.sh -h

インストール、アップグレード、および削除

前提条件 : 生成された STH コンポーネントの RPM パッケージをインストールするには Node が必要です。

STH コンポーネントをインストールまたはアップグレードするには、次のコマンドを実行します :

sudo rpm -Uvh fiware-sth-comet-<version>-<release>.x86_64.rpm

インストール後、次のファイルとディレクトリが作成されます :

/etc/init.d
└── sth

/etc/logrotate.d
└── logrotate-sth-daily

/var/log/sth

/var/run/sth

/opt/sth
├── conf
│   └── <empty> Here is where instances are configured
├── node_modules
│   └── <node modules directory structure and files>
├── package.json
└── src
    └── <STH SW files>

以前の STH コンポーネントのインストールを削除するには、次のコマンドを実行します :

sudo rpm -e fiware-sth-comet

構成

STHは、次に詳述するように、特定のファイルを追加して構成することによって、sth サービススクリプトを使用して複数のインスタンスを開始することができます。

複数のインスタンスを開始するには、インスタンスごとに1つの構成ファイルを /opt/sth/conf ディレクトリに含める必要があります。既定のインストールには事前構成されたインスタンスが含まれていることに注意することが重要です。

STH_PORT 構成ファイルに含まれる値を他の STH インスタンス/サービスで使用されていない値に変更することが重要です。LOG_FILE_NAME 値を変更して、複数のインスタンスからのログが混在しないようにすることも良い方法です。

sth サービススクリプトには、次の操作が含まれています :

  • start : <instance> (下記参照)が指定されていない場合、スクリプトは sth_*.conf テンプレートに一致する /opt/sth/conf ディレクトリにある設定ファイルごとにインスタンスを開始します。もし、<instance> が指定された場合は、sth_<instance>.conf という構成ファイルが /opt/sth/conf ディレクトリで検索され、対応するインスタンスが起動されます
  • stop : <instance> (下記参照)が指定されていない場合、スクリプトはパターン sth_*.pid に一致する /var/run/sth 下のすべての pid ファイルをリストすることによってすべてのインスタンスを停止します。もし、<instance> が指定された場合はスクリプトは関連する pid ファイル /var/run/sth/sth_<instance>.pid でインスタンスを停止します
  • status : ステータスの操作には、ストップ操作で説明されているのと同じ手順に従って、実行中の1つ以上のインスタンスに関する情報が表示されます
  • restart : 再起動の操作は、ストップ操作を実行した後、そのスタート操作で詳述されている手順に従って操作を実行します
# start
sudo /sbin/service sth start [<instance>]
# stop
sudo /sbin/service sth stop [<instance>]
# status
sudo /sbin/service sth status [<instance>]
# restart
sudo /sbin/service sth restart [<instance>]

サンプル sth_default.conf ファイルは、Github のコンポーネントリポジトリに含まれており、STH インスタンスの設定をガイドしています。

最後に、STH プロセス(node プロセス)は、sth ユーザとして実行します。

Docker を使用した自動展開

STH コンポーネントのテストと展開を容易にするために、簡単な Docker コマンドを実行して STH コンポーネントをデプロイしたり試したりするために必要なすべての情報を含め、FIWARE Docker Hub でホストされている Docker イメージも存在します。

一方、Dockerfile および docker-compose.yml ファイルは、Github のコンポーネントリポジトリにも含まれており、すべてのデータが格納される必要のある関連 MongoDB インスタンスを含めても、STH コンポーネントの独自のインスタンスをすばやく簡単に開始できます。

Docker をマシンにインストールしたら、次の手順に従ってください :

  1. コンポーネント・リポジトリがクローンされたパスに移動します
  2. STH コンポーネント・イメージを作成して実行します
    • フォアグラウンド・モードでは :
      sudo docker-compose -f docker-compose.yml up
    • または、デタッチ・モードで :
      sudo docker-compose -f docker-compose.yml up -d

STH コンポーネントの独自のローカル Docker イメージを構築することもできます

そのためには、Docker をマシンにインストールしたら、次の手順に従ってください :

  1. コンポーネントリポジトリがクローンされたパスに移動します
  2. Docker Build を起動する
    • Dockerfile の FROM キーワードで定義されているオペレーティングシステムのデフォルトの NodeJS バージョンを使用 :
      sudo docker build -f Dockerfile .
    • 代替 NodeJS バージョンの使用 :
      sudo docker build --build-arg NODEJS_VERSION=0.10.46 -f Dockerfile .