3.5. デバイス設定

Terminal System 2では、Core APIおよびMender Configureを利用してデバイス設定を行います。

Core API

Terminal System 2の各種設定を行うためのREST APIサーバーです。

注釈

Core APIの詳細については、 Terminal System 2 API ドキュメント を参照してください。

Mender Configure

Menderを利用してインターネット経由でデバイスを設定できるようにするMenderアドオンです。 Terminal System 2は、Mender Configureによるデバイス設定に対応しており、内部でCore APIを呼び出すことでデバイス設定を実現します。

デバイス設定の内容はJSONファイルとして /var/lib/mender-configure/device-config.json に格納されます。 Menderサーバーからデバイス設定変更がデプロイされたタイミングで実行される処理( apply-device-config )や、Menderサーバーにデバイス設定をインベントリ送信するタイミングで実装される処理( update-device-config )は、Mender Configureスクリプトとしてカスタマイズが可能です。 以下のディレクトリにスクリプトを格納すると、それぞれのタイミングでスクリプトを実行することができます。

/usr/lib/mender-configure/apply-device-config.d
/usr/lib/mender-configure/update-device-config.d

注釈

Mender Configureの詳細については、 Mender docs を参照してください。

警告

Mender Configureの設定値は4096文字を超えないようにしてください。 4096文字を超える設定値はMender Configureで利用することはできません。

以下に、Core APIとMender Configureを利用したデバイス設定の仕組みについて説明します。

デバイス設定の報告

デバイスの設定はMenderサーバーにインベントリとして定期送信され、Mender Web UIで確認できます。 以下の手順で、デバイス設定をインベントリとして報告します。

  1. Menderクライアントが、定期的にインベントリスクリプトを実行します。

  2. Mender Configureのインベントリスクリプトが、Mender Configureスクリプト( /usr/lib/mender-configure/update-device-config.d に格納されたスクリプト)を実行します。

  3. スクリプト terminal-system-config が、Core APIから最新のデバイス設定を取得し、デバイス設定ファイル device-config.json を更新します。

  4. Mender Configureのインベントリスクリプトが、更新されたデバイス設定ファイルを読み込み、デバイス設定をMenderクライアントに伝えます。

  5. Menderクライアントが、収集したインベントリをMenderサーバーに報告します。

../../_images/feature_device_configuration_update.png

図 20 デバイス設定の報告

デバイス設定の変更

Mender Web UIからデバイス設定を変更することができます。 以下の手順で、デバイス設定を変更します。

  1. Mender Web UIの[Configuration]タブで、デバイス設定を変更し、適用します。

    警告

    [Configuration]タブで設定できる設定値は、最大で4096文字となります。(Mender 3.5.1時点)

  2. Menderサーバーは、入力したデバイス設定を mender-configure アップデートモジュールのアプリケーションアップデートアーティファクトに変換し、デプロイメントを作成します。

  3. Menderクライアントは、デプロイされたアーティファクトを取得し mender-configure アップデートモジュールのスクリプトを実行します。

  4. mender-configure スクリプトは、デバイス設定ファイル device-config.json をデプロイされた設定値に更新し、Mender Configureスクリプト( /usr/lib/mender-configure/apply-device-config.d に格納されたスクリプト)を実行します。

  5. スクリプト terminal-system-config が、デバイス設定ファイル device-config.json を読み込んでパースし、Core APIを呼び出してデバイス設定を変更します。

  6. Mender Web UIでデプロイメントの結果を確認します。

    デバイス設定に失敗した場合は、変更前の設定値にロールバックし、デプロイメントは失敗として報告されます。デプロイメントのエラーログより失敗原因を確認できます。

../../_images/feature_device_configuration_apply.png

図 21 デバイス設定の変更

Menderクライアントは、上記手順でデバイス設定を変更した後、 デバイス設定の報告 を実行し、Menderサーバーに最新の設定情報を報告します。

注釈

デバイス設定の変更は、Mender APIを利用して設定することも可能です。 詳細については、 Mender API を参照してください。