Linux に Azure IoT Edge ランタイムをインストールする (ARM32v7/armhf)Install Azure IoT Edge runtime on Linux (ARM32v7/armhf)

Azure IoT Edge ランタイムを使用すると、デバイスを IoT Edge デバイスに変えることができます。The Azure IoT Edge runtime is what turns a device into an IoT Edge device. このランタイムは、Raspberry Pi のような小型デバイスにも、産業用サーバーのような大型デバイスにもデプロイすることができます。The runtime can be deployed on devices as small as a Raspberry Pi or as large as an industrial server. IoT Edge ランタイムを使用してデバイスを構成すると、クラウドからデバイスへのビジネス ロジックのデプロイを開始できます。Once a device is configured with the IoT Edge runtime, you can start deploying business logic to it from the cloud.

IoT Edge ランタイムの動作とランタイムに含まれるコンポーネントについては、「Azure IoT Edge ランタイムとそのアーキテクチャの概要」を参照してください。To learn more about how the IoT Edge runtime works and what components are included, see Understand the Azure IoT Edge runtime and its architecture.

この記事では、Linux ARM32v7/armhf IoT Edge デバイスに Azure IoT Edge ランタイムをインストールする手順について説明します。This article lists the steps to install the Azure IoT Edge runtime on a Linux ARM32v7/armhf IoT Edge device. たとえば、これらの手順は、Raspberry Pi デバイスに使用できます。For example, these steps would work for Raspberry Pi devices. サポートされている ARM32 オペレーティング システムの一覧については、「Azure IoT Edge のサポートされるシステム」を参照してください。For a list of supported ARM32 operating systems, see Azure IoT Edge supported systems.

注意

Linux ソフトウェア リポジトリ内のパッケージは、各パッケージ (/usr/share/doc/パッケージ名) 内にあるライセンス条項の対象となります。Packages in the Linux software repositories are subject to the license terms located in each package (/usr/share/doc/package-name). パッケージを使用する前に、ライセンス条項をお読みください。Read the license terms prior to using the package. インストールし、パッケージを使用すると、これらの条項に同意したものと見なされます。Your installation and use of the package constitutes your acceptance of these terms. ライセンス条項に同意しない場合は、パッケージを使用しないでください。If you do not agree with the license terms, do not use the package.

コンテナー ランタイムをインストールするInstall the container runtime

Azure IoT Edge は、OCI と互換性のあるコンテナー ランタイムに依存します。Azure IoT Edge relies on an OCI-compatible container runtime. 実稼働環境シナリオでは、以下の Moby ベース エンジンを使用することを強くお勧めします。For production scenarios, it is highly recommended you use the Moby-based engine provided below. これは、Azure IoT Edge で公式にサポートされている唯一のコンテナー エンジンです。It is the only container engine officially supported with Azure IoT Edge. Docker CE/EE コンテナー イメージは、Moby ベースのランタイムと互換性があります。Docker CE/EE container images are compatible with the Moby-based runtime.

以下のコマンドで、Moby ベースのエンジンとコマンドライン インターフェイス (CLI) の両方がインストールされます。The following commands install both the Moby-based engine and command-line interface (CLI). CLI は開発には役立ちますが、実稼働環境には省略可能です。The CLI is useful for development but optional for production deployments.

# You can copy the entire text from this code block and 
# paste in terminal. The comment lines will be ignored.

# Download and install the moby-engine
curl -L https://aka.ms/moby-engine-armhf-latest -o moby_engine.deb && sudo dpkg -i ./moby_engine.deb

# Download and install the moby-cli
curl -L https://aka.ms/moby-cli-armhf-latest -o moby_cli.deb && sudo dpkg -i ./moby_cli.deb

# Run apt-get fix
sudo apt-get install -f

IoT Edge セキュリティ デーモンをインストールするInstall the IoT Edge Security Daemon

IoT Edge セキュリティ デーモンは、IoT Edge デバイス上のセキュリティ標準を提供し、維持します。The IoT Edge security daemon provides and maintains security standards on the IoT Edge device. デーモンは起動のたびに開始され、IoT Edge ランタイムの残りの部分を開始することでデバイスをブートストラップします。The daemon starts on every boot and bootstraps the device by starting the rest of the IoT Edge runtime.

# You can copy the entire text from this code block and 
# paste in terminal. The comment lines will be ignored.

# Download and install the standard libiothsm implementation
curl -L https://aka.ms/libiothsm-std-linux-armhf-latest -o libiothsm-std.deb && sudo dpkg -i ./libiothsm-std.deb

# Download and install the IoT Edge Security Daemon
curl -L https://aka.ms/iotedged-linux-armhf-latest -o iotedge.deb && sudo dpkg -i ./iotedge.deb

# Run apt-get fix
sudo apt-get install -f

デバイスを IoT ハブに接続するConnect your device to an IoT hub

IoT Edge ランタイムを構成して、物理デバイスを Azure IoT ハブに存在するデバイス ID にリンクします。Configure the IoT Edge runtime to link your physical device with a device identity that exists in an Azure IoT hub.

デーモンは、/etc/iotedge/config.yaml にある構成ファイルを使用して構成できます。The daemon can be configured using the configuration file at /etc/iotedge/config.yaml. このファイルは既定で書き込み禁止になっているため、編集するには管理者特権が必要な場合があります。The file is write-protected by default, so you might need elevated permissions to edit it.

IoT Hub によって提供されるデバイス接続文字列を使用して、1 つの IoT Edge デバイスを手動でプロビジョニングすることもできますし、A single IoT Edge device can be provisioned manually using a device connections string provided by IoT Hub. Device Provisioning Service を使用して、複数のデバイスを自動的にプロビジョニングすることもできます。これは、プロビジョニングするデバイスが多数ある場合に便利です。Or, you can use the Device Provisioning Service to automatically provision devices, which is helpful when you have many devices to provision. 目的にプロビジョニング方法に応じて、適切なインストール スクリプトを選択してください。Depending on your provisioning choice, choose the appropriate installation script.

オプション 1: 手動プロビジョニングOption 1: Manual provisioning

デバイスを手動でプロビジョニングするには、デバイス接続文字列をデバイスに提供する必要があります。この文字列は、新しい IoT Edge デバイスを IoT ハブに登録することで作成できます。To manually provision a device, you need to provide it with a device connection string that you can create by registering a new IoT Edge device in your IoT hub.

構成ファイルを開きます。Open the configuration file.

sudo nano /etc/iotedge/config.yaml

ファイルの provisioning セクションを見つけ、manual プロビジョニング モードをコメント解除します。Find the provisioning section of the file and uncomment the manual provisioning mode. device_connection_string の値を IoT Edge デバイスからの接続文字列で更新します。Update the value of device_connection_string with the connection string from your IoT Edge device.

provisioning:
  source: "manual"
  device_connection_string: "<ADD DEVICE CONNECTION STRING HERE>"
  
# provisioning: 
#   source: "dps"
#   global_endpoint: "https://global.azure-devices-provisioning.net"
#   scope_id: "{scope_id}"
#   registration_id: "{registration_id}"

ファイルを保存して閉じます。Save and close the file.

CTRL + XYEnterCTRL + X, Y, Enter

構成ファイルにプロビジョニング情報を入力した後、デーモンを再起動します。After entering the provisioning information in the configuration file, restart the daemon:

sudo systemctl restart iotedge

オプション 2: 自動プロビジョニングOption 2: Automatic provisioning

デバイスを自動的にプロビジョニングするには、Device Provisioning Service を設定し、デバイス登録 ID を取得します。To automatically provision a device, set up Device Provisioning Service and retrieve your device registration ID. 自動プロビジョニングは、トラステッド プラットフォーム モジュール (TPM) チップが搭載されているデバイスでのみ機能します。Automatic provisioning only works with devices that have a Trusted Platform Module (TPM) chip. たとえば、Raspberry Pi デバイスには、既定で TPM が搭載されていません。For example, Raspberry Pi devices do not come with TPM by default.

構成ファイルを開きます。Open the configuration file.

sudo nano /etc/iotedge/config.yaml

ファイルの provisioning セクションを見つけ、dps プロビジョニング モードをコメント解除します。Find the provisioning section of the file and uncomment the dps provisioning mode. scope_idregistration_id の値を、IoT Hub Device Provisioning Service と TPM を搭載した IoT Edge デバイスの値で更新します。Update the values of scope_id and registration_id with the values from your IoT Hub Device Provisioning service and your IoT Edge device with TPM.

# provisioning:
#   source: "manual"
#   device_connection_string: "<ADD DEVICE CONNECTION STRING HERE>"
  
provisioning: 
  source: "dps"
  global_endpoint: "https://global.azure-devices-provisioning.net"
  scope_id: "{scope_id}"
  registration_id: "{registration_id}"

ファイルを保存して閉じます。Save and close the file.

CTRL + XYEnterCTRL + X, Y, Enter

構成ファイルにプロビジョニング情報を入力した後、デーモンを再起動します。After entering the provisioning information in the configuration file, restart the daemon:

sudo systemctl restart iotedge

インストールの成功を確認するVerify successful installation

前のセクションで手動構成手順を使用した場合、IoT Edge ランタイムがデバイス上で正常にプロビジョニングおよび実行されている必要があります。If you used the manual configuration steps in the previous section, the IoT Edge runtime should be successfully provisioned and running on your device. または、自動構成手順を使用した場合は、ランタイムが IoT ハブにデバイスを登録できるように、追加の手順を完了する必要があります。Or, if you used the automatic configuration steps, then you need to complete some additional steps so that the runtime can register your device with your IoT hub on your behalf. 次の手順については、Linux 仮想マシンでのシミュレートされた TPM IoT Edge デバイスの作成とプロビジョニングに関する記事をご覧ください。For next steps, see Create and provision a simulated TPM IoT Edge device on a Linux virtual machine.

以下を使用して、IoT Edge デーモンの状態を確認できます。You can check the status of the IoT Edge Daemon using:

systemctl status iotedge

以下を使用して、デーモンのログを確認します。Examine daemon logs using:

journalctl -u iotedge --no-pager --no-full

また、以下を使用して、実行中のモジュールを一覧表示します。And, list running modules with:

sudo iotedge list

ヒントと検索候補Tips and suggestions

iotedge コマンドの実行には、昇格された特権が必要です。You need elevated privileges to run iotedge commands. ランタイムをインストールしたら、マシンからサインアウトした後サインインし直して、自動的にアクセス許可を更新します。After installing the runtime, sign out of your machine and sign back in to update your permissions automatically. それまでは、すべての iotedge コマンドの前に sudo を使用します。Until then, use sudo in front of any iotedge the commands.

リソースに制約のあるデバイスでは、トラブルシューティング ガイドに示されているように、OptimizeForPerformance 環境変数を false に設定することを強くお勧めします。On resource constrained devices, it is highly recommended that you set the OptimizeForPerformance environment variable to false as per instructions in the troubleshooting guide.

ネットワークにプロキシ サーバーがある場合は、「Configure an IoT Edge device to communicate through a proxy server」(プロキシ サーバー経由で通信するように IoT Edge デバイスを構成する) の手順に従ってください。If your network that has a proxy server, follow the steps in Configure your IoT Edge device to communicate through a proxy server.

IoT Edge をアンインストールするUninstall IoT Edge

IoT Edge のインストールを Linux デバイスから削除する場合は、コマンド ラインから次のコマンドを使用します。If you want to remove the IoT Edge installation from your Linux device, use the following commands from the command line.

IoT Edge ランタイムを削除します。Remove the IoT Edge runtime.

sudo apt-get remove --purge iotedge

IoT Edge ランタイムが削除されると、作成したコンテナーは停止されますが、デバイスには依然として残っています。When the IoT Edge runtime is removed, the container that it created are stopped but still exist on your device. すべてのコンテナーを表示して、どのコンテナーが残っているかを確認します。View all containers to see which ones remain.

sudo docker ps -a

2 つのランタイム コンテナーを含め、デバイスからコンテナーを削除します。Delete the containers from your device, including the two runtime containers.

sudo docker rm -f <container name>

最後に、デバイスからコンテナー ランタイムを削除します。Finally, remove the container runtime from your device.

sudo apt-get remove --purge moby-cli
sudo apt-get remove --purge moby-engine

次の手順Next steps

ランタイムがインストールされた IoT Edge デバイスがプロビジョニングされたら、次は IoT Edge モジュールをデプロイできます。Now that you have an IoT Edge device provisioned with the runtime installed, you can deploy IoT Edge modules.

IoT Edge ランタイムを正常にインストールできない場合は、トラブルシューティングのページを参照してください。If you are having problems with the IoT Edge runtime installing properly, refer to the troubleshooting page.

IoT Edge の既存のインストールを最新バージョンに更新するには、「IoT Edge セキュリティ デーモンおよびランタイムの更新」を参照してください。To update an existing installation to the newest version of IoT Edge, see Update the IoT Edge security daemon and runtime.