Azure IoT Edge入门(2)部署一台Edge Device

案例:部署一台Edge Device(Windows 系统)

 

通常情况下,部署一台Edge设备有如下四个步骤:

1. 创建Azure IoT Hub;

2.准备Edge Device(windows/linux),1.准备操作系统,2.在IoT Hub里创建IoT Edge Device;

3.安装并配置 Azure IoT Edge Runtime(离线或在线安装);

4. 从Azure Container Registry 下载业务容器,由业务容器开始发送遥测消息给Azure IoT Hub;

今天这一小节,介绍前三个步骤。

关于Azure Container Regisgtry,请参见《Azure Container Registry

 

本文主要介绍:

1. IoT Edge Runtime 对操作系统的要求  

2. 准备Edge device(在azure 上购买一台Windows Server 2019)

3.准备Azure IoT Hub并新建IoT Edge Device

4.在Edge Device 上安装 IoT Edge Runtime

   在线安装;

   离线安装;

 

视频讲解:

您可以观看B站视频:https://www.bilibili.com/video/av91049338/

或在本站观看视频:

 

图文步骤:

IoT Edge 对操作系统的要求,请参见:https://docs.azure.cn/zh-cn/iot-edge/support

主要分为两种(文档里称为两层),简单理解:

第一层系统是由微软进行过严格的Azure IoT Edge Runtime测试,完全兼容。

下表中列出的系统(不管是公开发布版还是公共预览版)受 Microsoft 的支持,并在每个新版本中进行了测试。

操作系统 AMD64 ARM32v7 ARM64
Raspbian Stretch   Raspbian Stretch + ARM32v7  
Ubuntu Server 16.04 Ubuntu Server 16.04 + AMD64   公共预览版
Ubuntu Server 18.04 Ubuntu Server 18.04 + AMD64   公共预览版
Windows 10 IoT 核心版内部版本 17763 Windows IoT Core + AMD64    
Windows 10 IoT 企业版内部版本 17763 Windows 10 IoT 企业版 + AMD64    
Windows Server 2019 内部版本 17763 Windows Server 2019 + AMD64    
Windows Server IoT 2019 内部版本 17763 Windows Server IoT 2019 + AMD64    

 

第二层理论上可兼容,或者微软合作伙伴已经成功运行了的。

操作系统 AMD64 ARM32v7 ARM64
CentOS 7.5 CentOS + AMD64 CentOS + ARM32v7 CentOS + ARM64
Debian 8 Debian 8 + AMD64 Debian 8 + ARM32v7 Debian 8 + ARM64
Debian 9 Debian 9 + AMD64 Debian 9 + ARM32v7 Debian 9 + ARM64
Debian 10 1 Debian 10 + AMD64 Debian 10 + ARM32v7 Debian 10 + ARM64
Mentor Embedded Linux Flex OS Mentor Embedded Linux Flex OS + AMD64 Mentor Embedded Linux Flex OS + ARM32v7 Mentor Embedded Linux Flex OS + ARM64
Mentor Embedded Linux Omni OS Mentor Embedded Linux Omni OS + AMD64   Mentor Embedded Linux Omni OS + ARM64
RHEL 7.5 RHEL 7.5 + AMD64 RHEL 7.5 + ARM32v7 RHEL 7.5 + ARM64
Ubuntu 16.04 Ubuntu 16.04 + AMD64 Ubuntu 16.04 + ARM32v7 Ubuntu 16.04 + ARM64
Ubuntu 18.04 Ubuntu 18.04 + AMD64 Ubuntu 18.04 + ARM32v7 Ubuntu 18.04 + ARM64
Wind River 8 Wind River 8 + AMD64    
Yocto Yocto + AMD64 Yocto + ARM32v7 Yocto + ARM64
Raspbian Buster 1   Raspbian Buster + ARM32v7 Raspbian Buster + ARM64

在Azure上准备一台虚拟机作为Edge设备使用

本案例中使用的是Windows Server 2019 Datacenter (zh-cn),当然可以选择其他第一层的操作系统。

 

创建Azure IoT Hub,并创建IoT Edge Device

在IoT Hub-IoT Edge中点击添加IoT Edge设备

输入设备ID,其余保持默认,点击保存

 

在Edge 设备上安装IoT Edge Runtime

在windows 中安装Edge Runtime,请参见:https://docs.azure.cn/zh-cn/iot-edge/how-to-install-iot-edge-windows

注意,本节中,我们选择安装和手动预配,手动预配的意思是,在安装Runtime过程中,需要手动输入IoT Edge Device的连接字符串。

1. 在线安装Azure IoT Edge Runtime:

登录到Windows Server中,以管理员权限运行如下Power Shell脚本:

. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
Deploy-IoTEdge

 

画重点,如果此步骤,报网络错误,可以尝试打开连接 “https://aka.ms/iotedge-win”,如果打不开,可能存在网络问题,则此时需要使用离线安装方式。

2.离线安装Azure IoT Edge Runtime:

在页面上下载相应的 文件,https://github.com/Azure/azure-iotedge/releases

对于Windows 系统,需要根据系统是64/32位下载对应的cab文件和 vc_redist.exe(Visual C++ Redistributable Package)

注意,需要将下载的cab的包重命名为 Microsoft-Azure-IoTEdge.cab

vc_redist.exe 下载地址:vc_redist.exe

然后右键拷贝.ps1的路径,修改如如下的脚本中:

将https://aka.ms/iotedge-win改为https://github.com/Azure/azure-iotedge/releases/download/1.0.9-rc5/IotEdgeSecurityDaemon.ps1,意味着按照更改后的脚本安装对应的runtime 版本

. {Invoke-WebRequest -useb https://github.com/Azure/azure-iotedge/releases/download/1.0.9-rc5/IotEdgeSecurityDaemon.ps1} | Invoke-Expression; `
Deploy-IoTEdge -OfflineInstallationPath D:\Downloads\iotedgeoffline

 

在PowerShell 管理员权限先运行上述脚本,如提示重启,则重启后需执行如下脚本:

. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
Initialize-IoTEdge

 

注意:脚本中的 https://aka.ms/iotedge-win,如果安装的是指定版本,也需要替换为指定版本的ps1文件路径。

执行过程中需要按找提示输入IoT Edge 的连接字符串

使用 如下命令检查 IoT Runtime 运行状态:

Get-Service iotedge

使用如下命令检查当前运行的模块:

iotedge list

初次安装完成,只有一个edgeagent 模块,此现象是正常的,其他模块由edge agent 负责安装,需要时间。

 

在Portal上可以查看IoT Edge 的运行状态和模块状态:

 

 

 

 

 

Azure IoT Edge 入门系列其他文章,请见《Azure 智能边缘 之 Azure IoT Edge 十分钟入门系列文章目录