Ubuntu 仮想マシン上で Azure IoT Edge を実行する
適用対象: IoT Edge 1.5
IoT Edge 1.4
重要
サポートされているリリースは、IoT Edge 1.5 LTS と IoT Edge 1.4 LTS です。 IoT Edge 1.4 LTS は、2024 年 11 月 12 日にサポートが終了します。 以前のリリースの場合は、「IoT Edge を更新する」を参照してください。
Azure IoT Edge ランタイムを使用すると、デバイスを IoT Edge デバイスに変えることができます。 このランタイムは、Raspberry Pi のような小型デバイスにも、産業用サーバーのような大型デバイスにもデプロイすることができます。 デバイスが IoT Edge ランタイムで構成されたら、クラウドに対するビジネス ロジックのデプロイを開始できます。
IoT Edge ランタイムの動作とランタイムに含まれるコンポーネントについては、「Azure IoT Edge ランタイムとそのアーキテクチャの概要」を参照してください。
この記事では、事前に指定されたデバイス接続文字列でインストールおよび構成された Azure IoT Edge ランタイムを使用して、Ubuntu 仮想マシンをデプロイする手順について一覧で説明します。 このデプロイは、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 にデプロイ] ボタンの使用方法を示します。
ここでは、iotedge-vm-deploy の Azure Resource Manager テンプレートを使用して、Azure IoT Edge 対応の Linux VM をデプロイします。 開始するには、次のボタンを選択します。
新しく起動されたウィンドウで、使用可能なフォームフィールドに入力します。
フィールド 説明 サブスクリプション 仮想マシンをデプロイするためのアクティブな Azure サブスクリプション。 リソース グループ 仮想マシンとそれに関連付けられたリソースを格納する、既存または新しく作成されたリソース グループ。 リージョン 仮想マシンをデプロイする地理的リージョン。選択したリソース グループの場所が規定値となります。 DNS ラベル プレフィックス 仮想マシンのホスト名のプレフィックスとして使用される、あなたが選択した必要値。 管理ユーザー名 ユーザー名。デプロイ時にルート権限が与えられます。 デバイスの接続文字列 目的の IoT Hub 内に作成された、デバイス向けのデバイス接続文字列。 VM のサイズ デプロイする仮想マシンのサイズ。 Ubuntu OS バージョン ベース仮想マシンにインストールする Ubuntu OS のバージョン。 認証の種類 sshPublicKey または パスワード のどちらか好きな方を選択します。 [管理パスワードまたはキー] 認証タイプの選択に応じて、SSH 公開キーの値、またはパスワードの値。 Next : Review + create
を選択して条件を確認し、[作成] を選択してデプロイを開始します。デプロイが正常に完了したことを確認します。 仮想マシン リソースが選択したリソース グループにデプロイされます。 マシン名をメモしておきます。この名前は
vm-0000000000000
の形式である必要があります。 また、関連 [DNS 名] をメモします。これは<dnsLabelPrefix>
.<location>
.cloudapp.azure.com 形式になっている必要があります。[DNS 名] は、Azure portal 内に新しくデプロイされた仮想マシンの [概要] セクションから取得できます。
設定後にこの VM に SSH 接続する場合は、以下のコマンドで、関連付けられている DNS 名を使用します。
ssh <adminUsername>@<DNS_Name>
Azure CLI からデプロイする
次を使用して Azure CLI IoT 拡張機能がインストールされていることを確認します。
az extension add --name azure-iot
次に、デスクトップで Azure CLI を使用している場合は、まずログインします。
az login
複数のサブスクリプションがある場合は、使用するサブスクリプションを選択します。
サブスクリプションを一覧表示します。
az account list --output table
使用するサブスクリプションの SubscriptionID フィールドをコピーします。
コピーした ID で、作業中のサブスクリプションを設定します。
az account set -s <SubscriptionId>
新しいリソース グループを作成します (または、次の手順で既存のリソース グループを指定します)。
az group create --name IoTEdgeResources --location westus2
新しい仮想マシンを作成します。
password
の authenticationType を使用するには、次の例を参照してください。az deployment group create \ --resource-group IoTEdgeResources \ --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/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='password' \ --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
SSH キーを使用して認証するには、
sshPublicKey
の authenticationType を指定し、次に 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/main/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)"
デプロイが正常に完了したことを確認します。 仮想マシン リソースが、選択したリソース グループにデプロイされている必要があります。 マシン名をメモしておきます。この名前は
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 内に新しくデプロイされた仮想マシンの [概要] セクションから取得できます。
設定後にこの VM に SSH 接続する場合は、以下のコマンドで、関連付けられている DNS 名を使用します。
ssh <adminUsername>@<DNS_Name>
次のステップ
ランタイムがインストールされた IoT Edge デバイスがプロビジョニングされたら、次は IoT Edge モジュールをデプロイできます。
IoT Edge ランタイムを正常にインストールできない場合は、トラブルシューティングのページを調べてください。
IoT Edge の既存のインストールを最新バージョンに更新するには、「IoT Edge セキュリティ デーモンおよびランタイムの更新」を参照してください。
SSH またはその他の受信接続を使用して VM にアクセスするポートを開く場合は、Azure Virtual Machine のドキュメントのLinux VM へのポートとエンドポイントを開くに関するページを参照してください。