次の方法で共有


チュートリアル: Ubuntu (18.04 x64) Simulator Reference Agent を使用した Device Update for Azure IoT Hub

Device Update for Azure IoT Hub では、イメージベース、パッケージベース、スクリプトベースの更新がサポートされています。

イメージ更新を使用すると、デバイスの最終状態の信頼性が高くなります。 通常、運用前環境と運用環境の間でイメージの更新の結果をレプリケートする方が簡単です。これは、パッケージとその依存関係と同じ課題が生じないためです。 アトミックな性質のため、A/B フェールオーバー モデルを簡単に導入することもできます。

このチュートリアルでは、Device Update for IoT Hub を使用して、エンドツーエンドのイメージ ベースの更新を完了する手順について説明します。

このチュートリアルで学習する内容は次のとおりです。

  • イメージをダウンロードしてインストールします。
  • IoT デバイスにタグを追加します。
  • 更新プログラムをインポートする
  • デバイス グループを作成します。
  • イメージの更新プログラムをデプロイします。
  • 更新プログラムのデプロイを監視する

[前提条件]

まだ作成していない場合は、 Device Update アカウントとインスタンス を作成し、IoT ハブを構成します。

最新リリースのリリース アセットから Tutorial_Simulator.zip という名前の zip ファイルをダウンロードし、解凍します。

Azure IoT Hub にデバイスを追加する

デバイス更新エージェントが IoT デバイスで実行されたら、デバイスを IoT Hub に追加する必要があります。 IoT Hub 内から、特定のデバイスの接続文字列が生成されます。

  1. Azure portal から、Device Update for IoT Hub を開始します。

  2. 新しいデバイスを作成します。

  3. 左側のウィンドウで、[デバイス] に移動 します。 次に、[新規] を選択 します

  4. [ デバイス ID] に、デバイスの名前を入力します。 [ 自動生成キー ] チェック ボックスがオンになっていることを確認します。

  5. [保存] を選択します

  6. これで、[ デバイス ] ページに戻り、作成したデバイスが一覧に表示されます。 そのデバイスを選択します。

  7. デバイス ビューで、[プライマリ接続文字列] の横にある [コピー] アイコンを選択します。

  8. 次の手順で後で使用するために、コピーした文字をどこかに貼り付けます。

    このコピーされた文字列は、デバイスの接続文字列です

Device Update エージェントをインストールしてシミュレーターとしてテストする

  1. 指示に従って、Azure IoT Edge ランタイム インストールします。

    Device Update エージェントは IoT Edge に依存しません。 ただし、ID を取得して IoT Hub に接続するために、IoT Edge (1.2.0 以降) と共にインストールされている IoT Identity Service デーモンに依存します。

    このチュートリアルでは説明しませんが、 IoT Identity Service デーモンは Linux ベースの IoT デバイスにスタンドアロンでインストールできます。 インストールの順序が重要です。 Device Update パッケージ エージェントは、IoT Identity Service の にインストールする必要があります。 それ以外の場合、パッケージ エージェントは、IoT Hub への接続を確立するための承認されたコンポーネントとして登録されません。

  2. 次に、Device Update エージェント.deb パッケージをインストールします。

    sudo apt-get install deviceupdate-agent deliveryoptimization-plugin-apt 
    
  3. 次のコマンドを実行して、IoT デバイスのモジュール (または Device Update を使用してデバイスをプロビジョニングした方法に応じてデバイス) のプライマリ接続文字列を構成ファイルに入力します。

    sudo nano /etc/adu/du-config.json
    
  4. シミュレーターとして実行するようにエージェントを設定します。 Device Update エージェントがシミュレーター ハンドラーを呼び出して APT ('microsoft/apt:1') でパッケージの更新を処理するように、IoT デバイスで次のコマンドを実行します。

    sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so --update-type 'microsoft/apt:1'
    

    シミュレーター ハンドラーを登録して呼び出すには、次の形式を使用してプレースホルダーを入力します。

    sudo /usr/bin/AducIotAgent --register--content-handler <full path to the handler file> --update-type <update type name>

  5. 前提条件でダウンロードしたTutorial_Simulator.zipからファイルをsample-du-simulator-data.jsonする必要があります。

    ファイル sample-du-simulator-data.json を開き、内容をクリップボードにコピーします。

    nano sample-du-simulator-data.json
    

    ファイルの内容を選択し、 Ctrl + C キーを押します。 Ctrl キーを押しながら X キーを押してファイルを閉じ、変更を保存しません。

    次のコマンドを実行して、tmp フォルダー内の du-simulator-data.json ファイルを作成および編集します。

    sudo nano /tmp/du-simulator-data.json
    

    Ctrl キーを押しながら V キーを押して、内容をエディターに貼り付けます。 Ctrl + X キーを押して変更を保存し、次に Y を選択します

    アクセス許可の変更:

    sudo chown adu:adu /tmp/du-simulator-data.json
    sudo chmod 664 /tmp/du-simulator-data.json
    

    /tmp が存在しない場合は、次のようにします。

     sudo mkdir/tmp
     sudo chown root:root/tmp
     sudo chmod 1777/tmp
    
  6. 次のコマンドを実行して、Device Update エージェントを再起動します。

     sudo systemctl restart adu-agent
    

Azure IoT Hub ソフトウェアの Device Update には、次のライセンス条項が適用されます。

エージェントを使用する前に、ライセンス条項をお読みください。 インストールと使用は、これらの条件に同意したものになります。 ライセンス条項に同意しない場合は、Device Update for IoT Hub エージェントを使用しないでください。

シミュレーターを使用してテストした後、次のコマンドを実行して APT ハンドラーを呼び出し、 オンエア パッケージの更新プログラムをデプロイします。

# sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_apt_1.so --update-type 'microsoft/a pt:1'

デバイスにタグを追加する

  1. Azure portal にサインインし、IoT ハブに移動します。

  2. 左側のウィンドウの [デバイス ] から、IoT デバイスを見つけて、デバイス ツインまたはモジュール ツインに移動します。

  3. Device Update エージェント モジュールの [モジュール ツイン] で、既存の Device Update タグ値を null 値に設定して削除します。 デバイス更新エージェントでデバイス ID を使用している場合は、デバイス ツインでこれらの変更を行います。

  4. 次に示すように、Device Update の新しいタグ値を追加します。

        "tags": {
                "ADUGroup": "<CustomTagValue>"
                }
    

更新プログラムをインポートする

  1. 前提条件としてダウンロードしたTutorial_Simulator.zipからTutorialImportManifest_Sim.importmanifest.jsonファイルとadu-update-image-raspberrypi3.swuファイルが必要です。 更新ファイルは、Raspberry Pi チュートリアルから再利用されます。 このチュートリアルでは更新がシミュレートされているため、特定のファイルの内容は問題になりません。

  2. Azure portal にサインインし、Device Update を使用して IoT ハブに移動します。 左側のウィンドウの [ 自動デバイス管理] で、[ 更新プログラム] を選択します。

  3. [ 更新] タブを選択します。

  4. [ + 新しい更新プログラムのインポート] を選択します。

  5. [+ ストレージ コンテナーから選択] を選択します。 既存のアカウントを選択するか、 + ストレージ アカウントを使用して新しいアカウントを作成します。 次に、既存のコンテナーを選択するか、 + コンテナーを使用して新しいコンテナーを作成します。 このコンテナーは、インポート用に更新ファイルをステージするために使用されます。

    以前の更新プログラムから誤ってファイルをインポートしないように、更新プログラムをインポートするごとに新しいコンテナーを使用することをお勧めします。 新しいコンテナーを使用しない場合は、この手順を実行する前に、既存のコンテナーからファイルを削除してください。

    ストレージ アカウントとコンテナーを示すスクリーンショット。

  6. コンテナーで [ アップロード ] を選択し、手順 1 でダウンロードしたファイルに移動します。 すべての更新ファイルを選択したら、[ アップロード] を選択します。 次に、[ 選択 ] ボタンを選択して [ 更新プログラムのインポート ] ページに戻ります。

    アップロードされたファイルの選択を示すスクリーンショット。

    このスクリーンショットは、インポートの手順を示しています。 ファイル名は、例で使用されているものと一致しない場合があります。

  7. [ 更新プログラムのインポート ] ページで、インポートするファイルを確認します。 次に、[ 更新プログラムのインポート] を選択してインポート プロセスを開始します。

    更新プログラムのインポートを示すスクリーンショット。

  8. インポート プロセスが開始され、画面が [ インポート履歴 ] セクションに切り替わります。 [状態] 列にインポートが成功したことが示されたら、[利用可能な更新プログラム] ヘッダーを選択します。 インポートされた更新プログラムが一覧に表示されるはずです。

    ジョブの状態を示すスクリーンショット。

更新プログラムをインポートする方法の詳細を確認します。

更新グループの作成

  1. ページの上部にある [グループとデプロイ ] タブに移動します。

    グループ化されていないデバイスを示すスクリーンショット。

  2. [ グループの追加] を選択して新しいグループを作成します。

    デバイス グループの追加を示すスクリーンショット。

  3. 一覧から IoT Hub タグと デバイス クラス を選択します。 次に、[ グループの作成] を選択します。

    タグの選択を示すスクリーンショット。

  4. グループが作成されると、更新プログラムのコンプライアンス チャートとグループの一覧が更新されます。 更新プログラムのコンプライアンス チャートには、コンプライアンスのさまざまな状態のデバイスの数が表示されます。 最新の更新プログラム利用可能な新しい更新プログラム進行中の更新プログラムです。 更新プログラムのコンプライアンスについて説明します

    更新プログラムのコンプライアンス ビューを示すスクリーンショット。

  5. 新しく作成されたグループと、新しいグループ内のデバイスで利用可能な更新プログラムが表示されます。 グループのデバイス クラスの要件を満たしていないデバイスがある場合は、対応する無効なグループに表示されます。 このビューから新しいユーザー定義グループに最適な更新プログラムをデプロイするには、グループの横にある [デプロイ ] を選択します。

タグを追加し、更新グループを作成する方法について説明します。

更新プログラムをデプロイする

  1. グループが作成されると、デバイス グループで使用できる新しい更新プログラムが表示されます。 更新プログラムへのリンクは、[ ベスト 更新プログラム] の下にある必要があります。 場合によっては、一度最新の情報に更新する必要があります。 更新プログラムのコンプライアンスについて詳しくは、こちらをご覧ください

  2. グループ名を選択してターゲット グループを選択します。 グループの基本の中のグループの詳細に移動されます。

    グループの詳細を示すスクリーンショット。

  3. デプロイを開始するには、[現在のデプロイ] タブに移動します。[利用可能な更新プログラム] セクションから、目的の更新プログラムの横にあるデプロイ リンクを選択します。 特定のグループに対して利用可能な最適な更新プログラムは、 最適 な強調表示で示されます。

    更新プログラムの選択を示すスクリーンショット。

  4. デプロイを直ちに開始するか、後で開始するようにスケジュールします。 次に、[ 作成] を選択します。

    デプロイの作成を示すスクリーンショット。

  5. [ デプロイの詳細] で、[ 状態][アクティブ] に変わります。 デプロイされた更新プログラムは 、 (デプロイ中) でマークされます。

    デプロイがアクティブであることを示すスクリーンショット。

  6. コンプライアンス チャートを表示して、更新が進行中であることを確認します。

  7. デバイスが正常に更新されると、コンプライアンス チャートとデプロイの詳細が、同じ内容を反映するように更新されていることがわかります。

    更新が成功したことを示すスクリーンショット。

更新プログラムのデプロイを監視する

  1. ページの上部にある [デプロイ履歴 ] タブを選択します。

    デプロイ履歴を示すスクリーンショット。

  2. 作成したデプロイの横にある [詳細] を選択します。

    デプロイの詳細を示すスクリーンショット。

  3. 最新の状態の詳細を表示するには、更新 を選択します。

これで、Device Update for IoT Hub と Ubuntu (18.04 x64) Simulator Reference Agent を使用した、エンドツーエンドのイメージの更新が正常に完了しました。

リソースをクリーンアップする

不要になったら、Device Update アカウント、インスタンス、IoT ハブ、IoT デバイスをクリーンアップします。

次のステップ