まだ行っていない場合は、「 Azure IoT Hub の Device Update でのプロキシ更新プログラムの使用」を参照してください。
テスト デバイスまたは仮想マシンを設定する
このチュートリアルでは、例として Ubuntu Server 18.04 LTS 仮想マシン (VM) を使用します。
デバイス更新エージェントと依存関係をインストールする
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 デバイスの Device Update モジュールのプライマリ接続文字列をコピーします。
connectionData
フィールドの既定値を、du-config.json ファイルのプライマリ接続文字列に置き換えます。sudo nano /etc/adu/du-config.json
注
代わりにデバイスのプライマリ接続文字列をコピーできますが、Device Update モジュールには文字列を使用することをお勧めします。 モジュールの設定の詳細については、「 デバイス更新エージェントのプロビジョニング」を参照してください。
/etc/adu/du-diagnostics-config.json にログ収集の正しい設定が含まれていることを確認します。 例えば次が挙げられます。
{ "logComponents":[ { "componentName":"adu", "logPath":"/var/log/adu/" }, { "componentName":"do", "logPath":"/var/log/deliveryoptimization-agent/" } ], "maxKilobytesToUploadPerLogPath":50 }
Device Update エージェントを再起動します。
sudo systemctl restart adu-agent
モック コンポーネントを設定する
テストとデモンストレーションの目的で、デバイス上に次のモック コンポーネントを作成します。
- 3つのモーター
- 2 台のカメラ
- hostfs
- "rootfs"
重要
上記のコンポーネント構成は、 libcontoso-component-enumerator.so と呼ばれるコンポーネント列挙子拡張機能の例の実装に基づいています。 また、次のモック コンポーネント インベントリ データ ファイル (/usr/local/contoso-devices/components-inventory.json) も必要です。
デモ フォルダーをテスト 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
更新プログラムの例をインポートする
まだ作成していない場合は、IoT ハブの構成を含め、 Device Update アカウントとインスタンスを作成します。 次に、次の手順を開始します。
最新の Device Update リリースの [ 資産] で、プロキシ更新プログラムのインポート マニフェストとイメージをダウンロードします。
Azure portal にサインインし、Device Update がある IoT Hub に移動します。 左側のウィンドウで、 デバイス管理>Updates を選択します。
[Updates] タブを選択します。
[+ 新しい更新プログラムのインポート] を選択します。
[ + ストレージ コンテナーから選択] を選択し、ストレージ アカウントとコンテナーを選択します。
[ アップロード] を選択して、手順 1 でダウンロードしたファイルを追加します。
親インポート マニフェスト、子インポート マニフェスト、ペイロード ファイルをコンテナーにアップロードします。
次の例は、スマート 掃除機 デバイスに接続されているカメラを更新するためにアップロードされたサンプル ファイルを示しています。 また、オンエアアップデートの前にカメラをオフにするプレインストールスクリプトも含まれています。
この例では、親インポート マニフェストは contoso.Virtual-Vacuum-virtual-camera.1.4.importmanifest.jsonです。 カメラを更新するための詳細を含む子インポート マニフェストが Contoso.Virtual-Vacuum.3.3.importmanifest.json。 両方のマニフェスト ファイル名は、必要な形式に従い、.importmanifest.jsonで終わる点に注意 してください 。
「を選択し、を選択してください。」
これで、デバイス更新プログラムにインポートされるファイルの一覧が UI に表示されます。 [ 更新プログラムのインポート] を選択します。
インポート プロセスが開始され、画面が [ インポート履歴 ] セクションに変わります。 [ 最新の情報に更新] を選択すると、インポート プロセスが完了するまで進行状況が表示されます。 更新プログラムのサイズによっては、インポートが数分で完了するか、時間がかかる場合があります。
[状態] 列にインポートが成功したことが示されたら、[利用可能な更新プログラム] タブを選択します。インポートした更新プログラムが一覧に表示されます。
更新プログラムのインポートについて詳しくは、こちらをご覧ください。
更新プログラム グループを作成する
グループが作成されると、更新プログラムのコンプライアンス チャートとグループの一覧が更新されます。 更新プログラムのコンプライアンス チャートには、コンプライアンスのさまざまな状態のデバイスの数が表示されます。最新の更新プログラム、利用可能な新しい更新プログラム、進行中の更新プログラムです。 更新プログラムのコンプライアンスについて説明します。
新しく作成されたグループと、新しいグループ内のデバイスで利用可能な更新プログラムが表示されます。 グループのデバイス クラス要件を満たしていないデバイスがある場合は、対応する無効なグループに表示されます。 グループの横にある [デプロイ] ボタンをクリックすると、このビューから新しいユーザー定義グループに最適な更新プログラムをデプロイできます。
タグの追加と更新グループの作成に関する詳細な を確認する
更新プログラムの展開
グループが作成されると、デバイス グループで使用できる新しい更新プログラムが表示され、[更新プログラムの更新] の下に更新へのリンクが表示されます (1 回更新する必要がある場合があります)。 更新プログラムのコンプライアンスの詳細について説明します。
グループ名をクリックして、ターゲット グループを選択します。 [グループの基本] の下にあるグループの詳細が表示されます。
- デプロイを開始するには、[現在のデプロイ] タブに移動します。[利用可能な更新プログラム] セクションで、目的の更新プログラムの横にあるデプロイ リンクをクリックします。 特定のグループに対して利用可能な最適な更新プログラムは、"ベスト" 強調表示で示されます。
- すぐにまたは将来開始するようにデプロイをスケジュールし、[作成] を選択します。
- [展開の詳細] の [状態] が [アクティブ] に変わり、展開された更新プログラムは "(deploying)" とマークされている必要があります。
コンプライアンス チャートを表示します。 更新が進行中であることがわかります。
デバイスが正常に更新されると、コンプライアンス チャートと展開の詳細が更新されて、現在の状態が反映されていることが確認できます。
更新プログラムの展開を監視する
これで、Device Update for IoT Hub を使用して、エンドツーエンドのプロキシ更新が正常に完了しました。
リソースをクリーンアップする
不要になったら、Device Update アカウント、インスタンス、IoT ハブ、IoT デバイスをクリーンアップします。
次のステップ
Device Update for IoT Hub の簡単なデモンストレーションには、次のチュートリアルを使用できます。
Raspberry Pi 3 B+ 参照イメージを使用した Azure IoT Hub 用 Device Update チュートリアル (必要に応じて、オープン ソースを介して拡張して、他のアーキテクチャ用に独自のイメージを構築できます)
Ubuntu Server 18.04 x64 のパッケージ エージェントを使用した Azure IoT Hub の Device Update チュートリアル
Ubuntu (18.04 x64) シミュレーター参照エージェントを使用した Azure IoT Hub の Device Update チュートリアル
Azure リアルタイム オペレーティング システムを使用した Azure IoT Hub の Device Update チュートリアル