3. プロビジョニング#

Terminal System OS 2 イメージをエッジコンピューターに書き込み、利用できる状態にする(プロビジョニング)方法について説明します。

主な用語

プロビジョニング

エッジコンピューターのrootfsパーティションおよびdataパーティションにイメージを書き込みます。 また、エッジコンピューターの初回起動時にMenderサーバーとの 1. Menderサーバーへの接続を許可する で利用されるキーペアを自動生成します。

rootfsパーティション

Linuxカーネルを含むシステムパーティションです。 rootfsパーティションはA/Bの2つの領域で構成され、OSアップデートアーティファクトにより更新されます。

dataパーティション

Menderの更新間で保持するデータを格納するパーティションです。 通常はアップデートで更新されません。

作業PC

エッジコンピューターにTerminal System OS 2のイメージを書き込むために使用するPCです。エッジコンピューターとの間はUSBで接続します。

../../../_images/provisioning-usb.png

図 192 作業PCからTerminal System OS 2イメージを書き込む#

推奨作業環境#

プロビジョニング作業に必要な作業PC環境はエッジコンピューターに応じて異なります。以下の推奨環境で実施してください。

書き込み先エッジコンピュータ

作業PCの推奨環境

備考

EDGEPLANT T1

Ubuntu 16.04 or 18.04

作業PCには以下のパッケージのインストールが必要です。

  • qemu-user-static

  • python

  • jq

インストール方法の例:

$ sudo apt update
$ sudo apt install qemu-user-static python jq

イメージの入手#

ソフトウェアの提供元からTerminal System OS 2 イメージを入手し、作業PCに保存します。

プロビジョニングする#

重要

再セットアップの場合

Terminal System OS 2がインストールされているエッジコンピューターに対して再度Terminal System OS 2をセットアップする場合、以下のいずれかを参照して、先に拡張ストレージの初期化を行ってください。

拡張ストレージの初期化を行った後、以降のプロビジョニングの手順に進んでください。

プロビジョニング手順はエッジコンピューターごとに異なります。

EDGEPLANT T1#

作業PCからEDGEPLANT T1にTerminal System OS 2イメージを書き込むには、以下のようにします。

  1. EDGEPLANT T1をリカバリーモードで起動し、作業PCと接続します。

    1. Nano SIMスロットのカバーを取り外します。

    2. リカバリーボタンを押しながら、電源を投入します。

    3. 作業PCとEDGEPLANT T1のリカバリーUSB端子をUSBケーブルで接続します。

    4. 作業PC側でEDGEPLANT T1をUSBデバイスとして認識していることを確認します。

      $ lsusb -d 0955:
      Bus 001 Device 004: ID 0955:7418 NVIDIA Corp. APX
      

    注釈

    リカバリーボタンなど各部の位置については、 取扱説明書 を参照してください。

  2. (以下の手順はすべて、作業PCでの操作です)Terminal System OS 2 イメージ(<terminal_system_2_image>.tegraflash.zip)を、ディレクトリを指定して展開します。

    $ mkdir -p ~/Downloads/image
    $ unzip <terminal_system_2_image>.tegraflash.zip -d ~/Downloads/image
    
  3. 展開先のディレクトリに移動します。

    $ cd ~/Downloads/image
    
  4. 以下のようにコマンドを実行して、Terminal System OS 2のイメージを書き込みます。 このとき、環境変数を使ってプロビジョニング設定を与えます。

    例: 各種パスワードおよびシリアル番号を設定して書き込む

    $ sudo \
      API_USER_PASS_ADMIN='$apr1$aNOi.ZS1$3MNDjruW3MMlHK.EXAMPLE' \
      API_USER_PASS_USER='$apr1$iF4xMF6v$Yp9FJV3BspvL/8.EXAMPLE' \
      USER_PASS_ROOT='$6$3RgJeiy2nEpwmNX4$RjjGNuDJDFpDGkpkBCUvkPqqAhvrChBNlWouLaJbDqQEdzGvdxPz.vdfoLe3ckmyPcHNx5E3liqhgA.EXAMPLE' \
      USER_PASS_ADMIN='$6$2tVW/W64.el6cwCo$VIPVt5ELUe8HZLpgRwUr8FBEoqcSaDwTRtg1o6F3gWXBfonGZE3/FvLcdq6TUcd8PKDyS3tUBvZzsq.EXAMPLE' \
      USER_PASS_MAINT='$6$w98XqSkF.6YajkT7$pkVGXTFXh0l6jgQdMgzGr4ZWNc8lpsN2P8egxvzCAwpKjJ57RtKECy11zUZoJlskWFGZC9ZrpBTCl5.EXAMPLE' \
      SERIAL_NUMBER='0110000112345' \
      ./doflash.sh
    

    例: 各種パスワード、シリアル番号およびMenderサーバーの接続設定を設定して書き込む

    $ sudo \
      API_USER_PASS_ADMIN='$apr1$aNOi.ZS1$3MNDjruW3MMlHK.EXAMPLE' \
      API_USER_PASS_USER='$apr1$iF4xMF6v$Yp9FJV3BspvL/8.EXAMPLE' \
      USER_PASS_ROOT='$6$3RgJeiy2nEpwmNX4$RjjGNuDJDFpDGkpkBCUvkPqqAhvrChBNlWouLaJbDqQEdzGvdxPz.vdfoLe3ckmyPcHNx5E3liqhgA.EXAMPLE' \
      USER_PASS_ADMIN='$6$2tVW/W64.el6cwCo$VIPVt5ELUe8HZLpgRwUr8FBEoqcSaDwTRtg1o6F3gWXBfonGZE3/FvLcdq6TUcd8PKDyS3tUBvZzsq.EXAMPLE' \
      USER_PASS_MAINT='$6$w98XqSkF.6YajkT7$pkVGXTFXh0l6jgQdMgzGr4ZWNc8lpsN2P8egxvzCAwpKjJ57RtKECy11zUZoJlskWFGZC9ZrpBTCl5.EXAMPLE' \
      SERIAL_NUMBER='0110000112345' \
      OPT_MENDER_SERVER_URL='https://hosted.mender.io' \
      OPT_MENDER_TENANT_TOKEN='eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...omitted...EXAMPLE' \
      ./doflash.sh
    

    例: Menderサーバーを利用せず、各種パスワードのみを設定して書き込む

    $ sudo \
      API_USER_PASS_ADMIN='$apr1$aNOi.ZS1$3MNDjruW3MMlHK.EXAMPLE' \
      API_USER_PASS_USER='$apr1$iF4xMF6v$Yp9FJV3BspvL/8.EXAMPLE' \
      USER_PASS_ROOT='$6$3RgJeiy2nEpwmNX4$RjjGNuDJDFpDGkpkBCUvkPqqAhvrChBNlWouLaJbDqQEdzGvdxPz.vdfoLe3ckmyPcHNx5E3liqhgA.EXAMPLE' \
      USER_PASS_ADMIN='$6$2tVW/W64.el6cwCo$VIPVt5ELUe8HZLpgRwUr8FBEoqcSaDwTRtg1o6F3gWXBfonGZE3/FvLcdq6TUcd8PKDyS3tUBvZzsq.EXAMPLE' \
      USER_PASS_MAINT='$6$w98XqSkF.6YajkT7$pkVGXTFXh0l6jgQdMgzGr4ZWNc8lpsN2P8egxvzCAwpKjJ57RtKECy11zUZoJlskWFGZC9ZrpBTCl5.EXAMPLE' \
      OPT_USE_MENDER='false' \
      ./doflash.sh
    

    設定可能な項目については、下の表を参照してください。

    環境変数 ( * は必須項目)

    説明

    入力規則(正規表現)

    API_USER_PASS_ADMIN *

    Terminal System API Basic認証パスワード(adminユーザー)

    セットアップ担当者・管理者が 事前設定 や各種操作で使用します。

    ^\$apr1\$ 1

    API_USER_PASS_USER *

    Terminal System API Basic認証パスワード(userユーザー)

    ユーザーが各種操作で使用します。

    ^\$apr1\$ 1

    USER_PASS_ROOT *

    ユーザーパスワード(root)

    ^\$6\$ 2

    USER_PASS_ADMIN *

    ユーザーパスワード(admin)

    ローカルネットワークからログイン するadminユーザーのパスワードです。

    ^\$6\$ 2

    USER_PASS_MAINT *

    ユーザーパスワード(maint)

    リモートターミナル でログインするmaintユーザーのパスワードです。

    ^\$6\$ 2

    SERIAL_NUMBER * 4

    Menderのデバイス識別情報として利用するシリアル番号

    ^[0-9a-zA-Z_.-]*$ 3

    OPT_USE_MENDER

    Menderサーバーの利用設定

    ^(true|false)$ 5

    OPT_MENDER_SERVER_URL

    MenderサーバーURL

    ^https?://.*$ 6

    OPT_MENDER_TENANT_TOKEN

    Menderテナントトークン (Organization token)

    ^.+$ 6

    注釈

    作業PCとして仮想マシンを使用する場合の注意点

    仮想マシンでイメージの書込みを行う場合、書込み処理の途中でUSBの再接続に失敗して、以下のような表示で停止することがあります。

    ...
    [  10.2706 ] tegrarcm_v2 --boot recovery
    [  10.2718 ] Applet version 01.00.0000
    [  10.3302 ]
    [  11.3332 ] tegrarcm_v2 --isapplet
    

    このようなケースでは、USBケーブルを再接続することで書込み処理が再開されます。

  5. 書き込みが完了すると、EDGEPLANT T1が自動的に再起動し、Terminal Systemが起動します。


1(1,2)

API Basic認証パスワードはMD5(apr1)で暗号化された文字列を使用してください。( openssl を利用して生成する例: echo p@ssword | openssl passwd -apr1 -stdin

2(1,2,3)

ログインユーザーパスワードはSHA-512で暗号化された文字列を使用してください。( openssl を利用して生成する例: echo p@ssword | openssl passwd -6 -stdin

3

シリアル番号には、底面パネルに記載されているシリアル番号を指定してください。その他の文字列を指定する場合はエンドユーザーにシリアル番号を通知する必要があります。

4

Menderサーバーを利用する場合のみ必須です。

5

記載を省略した場合は、Menderサーバーを利用する設定( true )が使用されます。

6(1,2)

設定を省略した場合は、Terminal System OS 2イメージ内に設定されたデフォルトが使用されます。