次の方法で共有


Ubuntu 仮想マシン上で Azure IoT Edge を実行する

適用対象:はいアイコン IoT Edge 1.1

重要

IoT Edge 1.1 サポート終了日は 2022 年 12 月 13 日でした。 本製品、サービス、テクノロジ、または API のサポート内容については、Microsoft 製品のライフサイクルに関するページをご確認ください。 最新バージョンの IoT Edge への更新の詳細については、「IoT Edgeの更新」を参照してください。

Azure IoT Edge ランタイムを使用すると、デバイスを IoT Edge デバイスに変えることができます。 このランタイムは、Raspberry Pi のような小型デバイスにも、産業用サーバーのような大型デバイスにもデプロイすることができます。 デバイスが IoT Edge ランタイムで構成されたら、クラウドに対するビジネス ロジックのデプロイを開始できます。

IoT Edge ランタイムの動作とランタイムに含まれるコンポーネントについては、「Azure IoT Edge ランタイムとそのアーキテクチャの概要」を参照してください。

この記事では、事前に指定されたデバイス接続文字列を使用して Azure IoT Edge ランタイムがインストールおよび構成された Ubuntu 18.04 LTS 仮想マシンをデプロイする手順を示します。 このデプロイは、iotedge-vm-deploy プロジェクト リポジトリに保持されている cloud-init ベースのAzure Resource Manager テンプレートを使用して行われます。

最初の起動時に、仮想マシンは、cloud-init 経由で最新バージョンの Azure IoT Edge ランタイムをインストールします。 また、ランタイムが開始される前に、指定された接続文字列を設定します。これにより、SSH またはリモート デスクトップ セッションを開始することなしに、IoT Edge デバイスを簡単に構成して接続することができます。

[Deploy to Azure] ボタンを使用してデプロイする

[Deploy to Azure] ボタンを使用すると、GitHub に保持されている Azure Resource Manager テンプレートをスムーズにデプロイできます。 このセクションでは、iotedge-vm-deploy プロジェクト リポジトリに含まれる [Azure へのデプロイ] ボタンの使用方法について説明します。

  1. iotedge-vm-deploy Azure Resource Manager テンプレートを使用して、Azure IoT Edge 対応の Linux VM をデプロイします。 開始するには、以下のボタンをクリックします。

    iotedge-vm-deploy の [Deploy to Azure] ボタン

  2. 新しく起動されたウィンドウで、使用可能なフォームフィールドに入力します。

    iotedge-vm-deploy テンプレートのスクリーンショット

    フィールド 説明
    サブスクリプション 仮想マシンをデプロイするためのアクティブな Azure サブスクリプション。
    リソース グループ 仮想マシンとそれに関連付けられたリソースを格納する、既存または新しく作成されたリソース グループ。
    リージョン 仮想マシンをデプロイする地理的リージョン。選択したリソース グループの場所が規定値となります。
    DNS ラベル プレフィックス 仮想マシンのホスト名のプレフィックスとして使用される、あなたが選択した必要値。
    管理ユーザー名 デプロイ時にルート特権が提供されるユーザー名。
    デバイスの接続文字列 目的の IoT Hub 内に作成された、デバイス向けのデバイス接続文字列
    VM サイズ デプロイする仮想マシンのサイズ
    Ubuntu OS バージョン ベース仮想マシンにインストールする Ubuntu OS のバージョン。
    認証の種類 sshPublicKey または パスワード のどちらか好きな方を選択します。
    [管理パスワードまたはキー] 認証タイプの選択に応じて、SSH 公開キーの値、またはパスワードの値。

    すべてのフィールドが入力されたら、下部にあるボタンをクリックして、用語を確認できる Next : Review + create に移動し、[作成] クリックしてデプロイを開始します。

  3. デプロイが正常に完了したことを確認します。 仮想マシン リソースは、選択したリソース グループにデプロイされている必要があります。 マシン名をメモしておきます。この名前は vm-0000000000000 の形式である必要があります。 また、関連 [DNS 名] をメモします。これは <dnsLabelPrefix>.<___location>.cloudapp.azure.com 形式になっている必要があります。

    [DNS 名] は、Azure portal 内に新しくデプロイされた仮想マシンの [概要] セクションから取得できます。

  4. 設定後にこの VM に SSH 接続する場合は、以下のコマンドで、関連付けられている DNS 名を使用します。ssh <adminUsername>@<DNS_Name>

Azure CLI からデプロイする

  1. 次のコマンドを使用して、Azure CLI IoT 拡張機能がインストールされていることを確認します。

    az extension add --name azure-iot
    
  2. 次に、デスクトップで Azure CLI を使用している場合は、まずログインします。

    az login
    
  3. 複数のサブスクリプションがある場合は、使用するサブスクリプションを選択します。

    1. サブスクリプションを一覧表示します。

      az account list --output table
      
    2. 使用するサブスクリプションの SubscriptionID フィールドをコピーします。

    3. コピーした ID で、作業中のサブスクリプションを設定します。

      az account set -s <SubscriptionId>
      
  4. 新しいリソース グループを作成します (または、次の手順で既存のリソース グループを指定します)。

    az group create --name IoTEdgeResources --___location westus2
    
  5. 新しい仮想マシンを作成します。

    password を使用するには、次の例を参照してください。

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='password' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
    

    SSH キーを使用して認証するには、sshPublicKey を指定し、次に adminPasswordOrKey パラメーター中で SSH キーの値を指定します。 例として以下に表示します。

    #Generate the SSH Key
    ssh-keygen -m PEM -t rsa -b 4096 -q -f ~/.ssh/iotedge-vm-key -N ""
    
    #Create a VM using the iotedge-vm-deploy script
    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='sshPublicKey' \
    --parameters adminPasswordOrKey="$(< ~/.ssh/iotedge-vm-key.pub)"
    
  6. デプロイが正常に完了したことを確認します。 仮想マシン リソースは、選択したリソース グループにデプロイされている必要があります。 マシン名をメモしておきます。この名前は vm-0000000000000 の形式である必要があります。 また、関連 [DNS 名] をメモします。これは <dnsLabelPrefix>.<___location>.cloudapp.azure.com 形式になっている必要があります。

    DNS 名 は、前の手順の JSON 形式の出力から取得できます。具体的には、[パブリック SSH] エントリの一部をなす [出力] セクション内から。 このエントリの値を使用して、新しくデプロイされたマシンに SSH できます。

    "outputs": {
      "public SSH": {
        "type": "String",
        "value": "ssh <adminUsername>@<DNS_Name>"
      }
    }
    

    DNS 名は、Azure portal 内に新しくデプロイされた仮想マシンの [概要] セクションから取得できます。

  7. 設定後にこの VM に SSH 接続する場合は、以下のコマンドで、関連付けられている DNS 名を使用します。ssh <adminUsername>@<DNS_Name>

次のステップ

ランタイムがインストールされた IoT Edge デバイスがプロビジョニングされたら、次は IoT Edge モジュールをデプロイできます。

IoT Edge ランタイムを正常にインストールできない場合は、トラブルシューティングのページを調べてください。

IoT Edge の既存のインストールを最新バージョンに更新するには、「IoT Edge セキュリティ デーモンおよびランタイムの更新」を参照してください。

SSH またはその他の受信接続を介して VM にアクセスするためにポートを開く場合は、Linux VM へのポートとエンドポイントを開く に関する Azure Virtual Machines のドキュメントを参照してください