チュートリアル: 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 adu-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
次のコマンドを使用して現在のコンポーネントのソフトウェア バージョンを表示して記録し、プロキシの更新をサポートするように VM を設定します。
~/demo/show-demo-components.sh
サンプルの更新プログラムをインポートする
まだ 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 に、デバイスの更新プログラムにインポートされるファイルの一覧が表示されます。 [更新のインポート] を選択します。
インポート プロセスが開始され、画面が [インポートの履歴] セクションに変わります。 [更新] を選択すると、インポート プロセスが終了するまで進行状況が表示されます。 インポートは、更新プログラムのサイズに応じて、数分で終了することも、より長い時間がかかることもあります。
[状態] 列に、インポートが成功したことが示されたら、[使用可能な更新プログラム] タブを選択します。これで、インポートされた更新プログラムが表示されるはずです。
更新プログラムのインポートについて詳しくは、こちらをご覧ください。
更新プログラム グループを作成する
グループを作成すると、更新プログラムのコンプライアンス チャートとグループの一覧が更新されていることを確認できます。 更新プログラムのコンプライアンス チャートには、さまざまなコンプライアンス対応状態 (最新の更新状態、利用可能な新しい更新プログラムがある、更新プログラムのインストールが進行中) にあるデバイスの数が表示されます。 更新プログラムのコンプライアンスについて説明します。
新しく作成したグループと、新しいグループ内のデバイスで利用可能な更新プログラムが表示されます。 グループのデバイス クラスの要件を満たしていないデバイスがある場合は、対応する無効なグループに表示されます。 グループの横にある [Deploy](デプロイ) ボタンをクリックすると、このビューから新しいユーザー定義グループに最適な更新プログラムをデプロイできます。
タグの追加と更新プログラム グループの作成に関する詳細情報
更新プログラムをデプロイする
グループが作成されると、デバイス グループで利用可能な新しい更新プログラムが表示され、[最適な更新プログラム] の下にその更新プログラムへのリンクが表示されます (一度更新する必要がある場合があります)。 更新プログラムのコンプライアンスの詳細についてはこちらを参照してください。
グループ名をクリックして、ターゲット グループを選択します。 [グループの基本] の下にグループの詳細が表示されます。
- デプロイを開始するには、[現在のデプロイ] タブに移動します。[使用できる更新プログラム] セクションで、目的の更新プログラムの横にあるデプロイ リンクをクリックします。 特定のグループに最適で使用可能な更新プログラムには、"最適" の強調表示が付けられます。
- デプロイを直ちに開始するか、今後開始するようにスケジュールし、[作成] を選択します。
- [デプロイの詳細] の [状態] が [アクティブ] になり、デプロイされた更新プログラムに "(デプロイ中)" というマークが付けられます。
コンプライアンス チャートを表示します。 更新が進行中であると表示されます。
デバイスが正常に更新されると、コンプライアンス チャートと展開の詳細が、同じ内容を反映するように更新されていることがわかります。
更新プログラムの展開を監視する
これで、Device Update for IoT Hub を使用したプロキシの更新の全体が正常に完了しました。
リソースをクリーンアップする
不要になったら、Device Update のアカウント、インスタンス、IoT Hub、IoT デバイスをクリーンアップします。
次のステップ
次のチュートリアルでは、Device Update for IoT Hub の簡単なデモを行います。
Raspberry Pi 3 B+ 参照イメージを使用した Device Update for Azure IoT Hub のチュートリアル (必要に応じて他のアーキテクチャ用に独自のイメージを構築するために、オープンソースで拡張可能)
Ubuntu Server 18.04 x64 上のパッケージ エージェントを使用した Device Update for Azure IoT Hub のチュートリアル
Ubuntu (18.04 x64) Simulator Reference Agent を使用した Device Update for Azure IoT Hub のチュートリアル
Azure リアルタイム オペレーティング システム (RTOS) を使用した Device Update for Azure IoT Hub のチュートリアル