チュートリアル: Device Update for Azure IoT Hub を使用してプロキシの更新を完了する
まだの場合は、「Device Update for Azure IoT Hub によるプロキシ更新の使用」を参照してください。
テスト デバイスまたは仮想マシンのセットアップ
このチュートリアルでは、例として Ubuntu Server 18.04 LTS 仮想マシン (VM) を使用します。
Device Update のエージェントと依存関係をインストールする
APT パッケージ リポジトリに packages.microsoft.com を登録します。
sudo apt-get update sudo apt install curl curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ~/microsoft-prod.list sudo cp ~/microsoft-prod.list /etc/apt/sources.list.d/ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > ~/microsoft.gpg sudo cp ~/microsoft.gpg /etc/apt/trusted.gpg.d/ sudo apt-get update
IoT デバイスに deviceupdate-agent をインストールします。 packages.microsoft.com から、Device Update の最新の Debian ファイルをダウンロードします。
sudo apt-get install deviceupdate-agent
あるいは、ダウンロードした Debian ファイルをテスト VM にコピーします。 お使いのコンピューターで PowerShell を使用している場合は、次のシェル コマンドを実行します。
scp <path to the .deb file> tester@<your vm's ip address>:~
その後、VM にリモートでログインし、"ホーム" フォルダーで次のシェル コマンドを実行します。
#go to home folder cd ~ #install latest Device Update agent sudo apt-get install ./<debian file name from the previous step>
Azure IoT Hub にアクセスして、IoT デバイスのデバイス更新モジュールのプライマリ接続文字列をコピーします。 du-config. json ファイルで、
connectionData
フィールドの既定値を、このプライマリ接続文字列で置き換えます。sudo nano /etc/adu/du-config.json
注意
代わりに、デバイスのプライマリ接続文字列をコピーすることができますが、デバイス更新モジュールの文字列を使用することをお勧めします。 モジュールの設定の詳細については、「デバイス更新エージェントのプロビジョニング」を参照してください。
/etc/adu/du-diagnostics-config.json にログ収集の正しい設定が含まれていることを確認します。 次に例を示します。
{ "logComponents":[ { "componentName":"adu", "logPath":"/var/log/adu/" }, { "componentName":"do", "logPath":"/var/log/deliveryoptimization-agent/" } ], "maxKilobytesToUploadPerLogPath":50 }
デバイス更新エージェントを再起動します。
sudo systemctl restart deviceupdate-agent
モック コンポーネントを設定する
テストとデモを目的として、デバイス上に以下のモック コンポーネントを作成します。
- 3 つのモーター
- 2 つのカメラ
- "hostfs"
- "rootfs"
重要
前記のコンポーネント構成は、libcontoso-component-enumerator.so という名前のサンプルのコンポーネント列挙子拡張機能の実装に基づいています。 このモック コンポーネントのインベントリ データ ファイル /usr/local/contoso-devices/components-inventory.json も必要です。
demo フォルダーをテスト VM のホーム ディレクトリにコピーします。 その後、次のコマンドを実行して、必要なファイルを適切な場所にコピーします。
`~/demo/tools/reset-demo-components.sh`
reset-demo-components.sh
コマンドによって、以下の手順が自動的に実行されます。components-inventory.json がコピーされ、/usr/local/contoso-devices フォルダーに追加されます。
Contoso のコンポーネント列挙子拡張機能 (libcontoso-component-enumerator.so) が Assets フォルダーからコピーされ、/var/lib/adu/extensions/sources フォルダーに追加されます。
この拡張機能が登録されます。
sudo /usr/bin/AducIotAgent -E /var/lib/adu/extensions/sources/libcontoso-component-enumerator.so
サンプルの更新プログラムをインポートする
まだ Device Update のアカウントとインスタンスを作成していない場合は作成します (IoT ハブの構成を含む)。 その後、以下の手順を開始します。
最新のデバイス更新プログラムのリリースの [Assets] の下から、プロキシの更新プログラムのインポート マニフェストとイメージをダウンロードします。
Azure portal にサインインし、Device Update がある IoT Hub に移動します。 左側のペインで、[デバイス管理]>[更新] を選択します。
[更新] タブを選択します。
[+ 新しい更新プログラムのインポート] を選択します。
[+ ストレージ コンテナーから選択] を選んでから、ストレージ アカウントとコンテナーを選択します。
[アップロード] を選択し、手順 1. でダウンロードしたファイルを追加します。
親のインポー トマニフェスト、子のインポート マニフェスト、およびペイロード ファイルをコンテナーにアップロードします。
下記の例では、スマート掃除機デバイスに接続されているカメラを更新するためにアップロードされるサンプル ファイルを示します。 無線での更新の前にカメラをオフにする、インストール前スクリプトも含まれています。
この例では、親のインポート マニフェストは contoso.Virtual-Vacuum-virtual-camera.1.4.importmanifest.json です。 カメラを更新するための詳細が含まれる子のインポート マニフェストは、Contoso.Virtual-Vacuum.3.3.importmanifest.json です。 マニフェスト ファイル名はいずれも、必要な形式に従い、末尾が .importmanifest. json になっています。
[選択] を選択します。
UI に、デバイスの更新プログラムにインポートされるファイルの一覧が表示されます。 [更新のインポート] を選択します。
インポート プロセスが開始され、画面が [インポートの履歴] セクションに変わります。 [更新] を選択すると、インポート プロセスが終了するまで進行状況が表示されます。 インポートは、更新プログラムのサイズに応じて、数分で終了することも、より長い時間がかかることもあります。
[状態] 列に、インポートが成功したことが示されたら、[使用可能な更新プログラム] タブを選択します。これで、インポートされた更新プログラムが表示されるはずです。
インポート プロセスの詳細については、Device Update への更新プログラムのインポートに関する記事を参照してください。
デバイス グループを表示する
Device Update ではグループを使用してデバイスを整理します。 割り当てられたタグと互換性プロパティに基づいて、Device Update で自動的にデバイスがグループに並べ替えられます。 各デバイスは 1 つのグループにのみ属しますが、グループには複数のサブグループを含めることができ、さまざまなデバイス クラスを並べ替えることができます。
ページの上部にある [グループとデプロイ] タブに移動します。
グループの一覧と更新プログラムのコンプライアンス チャートを表示します。 更新プログラムのコンプライアンス チャートには、さまざまなコンプライアンス対応状態 (最新の更新状態、利用可能な新しい更新プログラムがある、更新プログラムのインストールが進行中) にあるデバイスの数が表示されます。 更新プログラムのコンプライアンスの詳細についてはこちらを参照してください。
このチュートリアルで設定したシミュレートされたデバイスを含むデバイス グループと、新しいグループ内のデバイスで使用できる更新プログラムが表示されます。 グループのデバイス クラスの要件を満たしていないデバイスがある場合は、対応する無効なグループに表示されます。 このビューから新しいユーザー定義グループに最適な利用可能な更新プログラムをデプロイするには、グループの横にある [デプロイ] を選択します。
タグとグループの詳細については、デバイス グループの管理に関する記事を参照してください。
更新プログラムをデプロイする
グループが作成されると、デバイス グループで利用可能な新しい更新プログラムが表示され、[最適な更新プログラム] の下にその更新プログラムへのリンクが表示されます (一度更新する必要がある場合があります)。
コンプライアンスの詳細については、「デバイス更新のコンプライアンス」を参照してください。
グループ名をクリックして、ターゲット グループを選択します。 [グループの基本] の下にグループの詳細が表示されます。
デプロイを開始するには、[現在のデプロイ] タブに移動します。[使用できる更新プログラム] セクションで、目的の更新プログラムの横にある [デプロイ] リンクをクリックします。 特定のグループに最適で使用可能な更新プログラムには、"最適" の強調表示が付けられます。
デプロイを直ちに開始するか、今後開始するようにスケジュールし、[作成] を選択します。
[デプロイの詳細] の [状態] が [アクティブ] になり、デプロイされた更新プログラムに "(デプロイ中)" というマークが付けられます。
コンプライアンス チャートを表示します。 更新が進行中であると表示されます。
デバイスが正常に更新されると、コンプライアンス チャートとデプロイの詳細が、同じ内容を反映するように更新されていることがわかります。
更新プログラムの展開を監視する
これで、Device Update for IoT Hub を使用したプロキシの更新の全体が正常に完了しました。
リソースをクリーンアップする
不要になったら、Device Update のアカウント、インスタンス、IoT Hub、IoT デバイスをクリーンアップします。