Azure IoT Edgeランタイムインストール - Raspberry Pi Ubuntu Server 20.04 64bit編

> 2021/04/09 : 最新化しました。

Azure IoT EdgeランタイムをUbuntu 20.04 Server 64bitのRaspberry Piにインストールする手順についてなるべく簡単にまとめます。
公式ドキュメントではUbuntu 18.04 AMD64をTier 1としてサポートしていますが、最新のUbuntu 20.04 ARM64はTier 2としてサポートしてます。

Tier 1 : Microsoft社が確認とインストールパッケージを提供
Tier 2 : Microsoft社は非公式サポート、Azure IoT Edgeと互換性あるので使用可能

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287622/7ef8d200-0476-1a62-86a2-faa4dcbfaa4e.png)

不要な内容とゴミが残らないような手順で整理しておきます。
基本、Ubuntu 18.04手順をUbuntu 20.04でもそのまま使えます。
（去年までは追加手順が必要でしたが、現在は不要です）

ARM32向けのRaspberry Pi OS Buster OSがインストールされているRaspberry Piはこちらの手順を参考してください。

https://qiita.com/motoJinC25/items/eae26690fe09a0b26e18

# バージョン確認

最新のUbuntu Server 20.04.X 64bitをインストールしてください。
https://ubuntu.com/download/raspberry-pi

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287622/2860ceaa-b8d3-b24a-71c9-0d8ac46ce395.png)

```bash
$ uname -a
Linux ubuntu 5.4.0-1029-raspi #32-Ubuntu SMP PREEMPT Thu Feb 4 23:00:55 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
```

# インストールパッケージのリポジトリ設定

```bash
$ curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
$ sudo mv ./microsoft-prod.list /etc/apt/sources.list.d/
$ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
$ sudo mv ./microsoft.gpg /etc/apt/trusted.gpg.d/
```

# コンテナーエンジンのインストール

```bash
$ sudo apt update
$ apt list -a moby-engine
...
moby-engine/bionic,20.10.5+azure-1 arm64
moby-engine/bionic 20.10.3+azure-1 arm64
moby-engine/bionic 20.10.2+azure-1 arm64
moby-engine/bionic 19.03.15+azure-1 arm64
...
$ sudo apt install -y moby-engine
```

# IoT Edgeセキュリティデーモンのインストール

2021年3月11日時点としてバージョン1.1が最新とLTSです。
1.2はまだプレビューとなり別手順でインストールしなければいけないです。

https://qiita.com/motoJinC25/items/1650813c465d2c58591c

```bash
$ apt list -a iotedge
Listing... Done
...
iotedge/bionic 1.1.1-1 amd64
iotedge/bionic 1.1.0-1 amd64
iotedge/bionic 1.0.10.4-1 amd64
iotedge/bionic 1.0.10.2-1 amd64
...
$ sudo apt install -y iotedge
$ sudo usermod -aG docker ${USER}
$ sudo reboot now
```

# デバイスのプロビジョニング

必要なコマンドのみ掲載します。

```bash
$ sudo vi /etc/iotedge/config.yaml
...
provisioning:
  source: "manual"
  device_connection_string: "<ADD DEVICE CONNECTION STRING HERE>"
  dynamic_reprovisioning: false
...
$ sudo systemctl restart iotedge
$ sudo systemctl status iotedge
$ sudo journalctl -u iotedge | grep "Starting module edgeAgent"
$ iotedge list
NAME             STATUS           DESCRIPTION      CONFIG
edgeAgent        running          Up 18 seconds    mcr.microsoft.com/azureiotedge-agent:1.1
$ docker ps
CONTAINER ID   IMAGE                                      COMMAND                  CREATED          STATUS          PORTS     NAMES
cfc43d12665x   mcr.microsoft.com/azureiotedge-agent:1.1   "/bin/sh -c 'exec /a…"   About a minute ago  Up About a minute             edgeAgent
```

# 注意点

ありません。わずか数分でインストールできます。
最新のRaspberry PiのUbuntu Server 20.04.X 64bit OSがインストールしてある状態なら、問題なくAzure IoT Edgeランタイムをインストールできます。

# One more thing

IoT EdgeデバイスにDeployment Manifestを作成するには下記のウェブサイトで作成することをお勧めします。
フローダイアグラムでIoT Edgeモジュールを配置してDeployment Manifestをダウンロードできます。

https://wedx-edgeflow.motojin.com/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287622/1514fbc2-977d-600c-a1ec-94cd15571da4.png)