Nasazení IoT Edge na virtuálním počítači s Ubuntu ve službě Azure Stack Edge
PLATÍ PRO: Azure Stack Edge Pro – GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
Tento článek popisuje, jak nasadit modul runtime IoT Edge na virtuálním počítači s Ubuntu spuštěným na zařízení Azure Stack Edge. Pro novou vývojovou práci použijte samoobslužnou metodu nasazení popsanou v tomto článku, protože používá nejnovější verzi softwaru.
Vysokoúrovňový průtok
Tok vysoké úrovně je následující:
- Vytvořte nebo identifikujte instanci služby IoT Hub nebo Azure IoT Hub Device Provisioning Service (DPS).
- Pomocí Azure CLI získejte image virtuálního počítače s Ubuntu 20.04 LTS.
- Nahrajte image Ubuntu do knihovny imagí virtuálního počítače Azure Stack Edge.
- Pomocí následujícího postupu nasaďte image Ubuntu jako virtuální počítač:
- Zadejte název virtuálního počítače, uživatelské jméno a heslo. Vytvoření dalšího disku je volitelné.
- Nastavte konfiguraci sítě.
- Na kartě Upřesnit zadejte připravený skript cloud-init.
Požadavky
Dříve začnete, ujistěte se, že máte:
Zařízení Azure Stack Edge, které jste aktivovali. Podrobné kroky najdete v tématu Aktivace GPU Azure Stack Edge Pro.
Přístup k nejnovější imagi virtuálního počítače s Ubuntu 20.04, a to buď z Azure Marketplace, nebo k vlastní imagi, kterou přinášíte:
$urn = Canonical:0001-com-ubuntu-server-focal:20_04-lts:20.04.202007160
Pomocí kroků ve vyhledávání imagí Azure Marketplace získejte image virtuálního počítače.
Příprava skriptu cloud-init
Pokud chcete nasadit modul runtime IoT Edge na virtuální počítač s Ubuntu, použijte během nasazování virtuálního počítače skript cloud-init .
Postupujte podle kroků v jedné z následujících částí:
- Připravte skript cloud-init se symetrickým zřizováním klíčů.
- Připravte skript cloud-init pomocí služby IoT Hub DPS.
Použití zřizování symetrického klíče
Pokud chcete připojit zařízení ke službě IoT Hub bez DPS, pomocí kroků v této části připravte skript cloud-init pro stránku Upřesnit vytvoření virtuálního počítače, která nasadí modul runtime IoT Edge a modul runtime kontejneru Nvidia.
Použijte existující IoT Hub nebo vytvořte nové centrum. Pomocí těchto kroků vytvořte IoT Hub.
Pomocí těchto kroků zaregistrujte zařízení Azure Stack Edge ve službě IoT Hub.
Načtěte primární připojovací řetězec ze služby IoT Hub pro vaše zařízení a vložte ho do umístění níže pro DeviceConnectionString.
Skript cloud-init pro zřizování symetrických klíčů
#cloud-config
runcmd:
- dcs="<DeviceConnectionString>"
- |
set -x
(
# Wait for docker daemon to start
while [ $(ps -ef | grep -v grep | grep docker | wc -l) -le 0 ]; do
sleep 3
done
if [ $(lspci | grep NVIDIA | wc -l) -gt 0 ]; then
#install Nvidia drivers
apt install -y ubuntu-drivers-common
ubuntu-drivers devices
ubuntu-drivers autoinstall
# Install NVIDIA Container Runtime
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | tee /etc/apt/sources.list.d/nvidia-container-runtime.list
apt update
apt install -y nvidia-container-runtime
fi
# Restart Docker
systemctl daemon-reload
systemctl restart docker
# Install IoT Edge
apt install -y aziot-edge
if [ ! -z $dcs ]; then
iotedge config mp --connection-string $dcs
iotedge config apply
fi
if [ $(lspci | grep NVIDIA | wc -l) -gt 0 ]; then
reboot
fi ) &
apt:
preserve_sources_list: true
sources:
msft.list:
source: "deb https://packages.microsoft.com/ubuntu/20.04/prod focal main"
key: |
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.7 (GNU/Linux)
mQENBFYxWIwBCADAKoZhZlJxGNGWzqV+1OG1xiQeoowKhssGAKvd+buXCGISZJwT
LXZqIcIiLP7pqdcZWtE9bSc7yBY2MalDp9Liu0KekywQ6VVX1T72NPf5Ev6x6DLV
7aVWsCzUAF+eb7DC9fPuFLEdxmOEYoPjzrQ7cCnSV4JQxAqhU4T6OjbvRazGl3ag
OeizPXmRljMtUUttHQZnRhtlzkmwIrUivbfFPD+fEoHJ1+uIdfOzZX8/oKHKLe2j
H632kvsNzJFlROVvGLYAk2WRcLu+RjjggixhwiB+Mu/A8Tf4V6b+YppS44q8EvVr
M+QvY7LNSOffSO6Slsy9oisGTdfE39nC7pVRABEBAAG0N01pY3Jvc29mdCAoUmVs
ZWFzZSBzaWduaW5nKSA8Z3Bnc2VjdXJpdHlAbWljcm9zb2Z0LmNvbT6JATUEEwEC
AB8FAlYxWIwCGwMGCwkIBwMCBBUCCAMDFgIBAh4BAheAAAoJEOs+lK2+EinPGpsH
/32vKy29Hg51H9dfFJMx0/a/F+5vKeCeVqimvyTM04C+XENNuSbYZ3eRPHGHFLqe
MNGxsfb7C7ZxEeW7J/vSzRgHxm7ZvESisUYRFq2sgkJ+HFERNrqfci45bdhmrUsy
7SWw9ybxdFOkuQoyKD3tBmiGfONQMlBaOMWdAsic965rvJsd5zYaZZFI1UwTkFXV
KJt3bp3Ngn1vEYXwijGTa+FXz6GLHueJwF0I7ug34DgUkAFvAs8Hacr2DRYxL5RJ
XdNgj4Jd2/g6T9InmWT0hASljur+dJnzNiNCkbn9KbX7J/qK1IbR8y560yRmFsU+
NdCFTW7wY0Fb1fWJ+/KTsC4=
=J6gs
-----END PGP PUBLIC KEY BLOCK-----
packages:
- moby-cli
- moby-engine
write_files:
- path: /etc/systemd/system/docker.service.d/override.conf
permissions: "0644"
content: |
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=nvidia=/usr/bin/nvidia-container-runtime --log-driver local
Použití DPS
Pomocí kroků v této části připojte zařízení k DPS a IoT Central. Při vytváření virtuálního počítače připravíte soubor script.sh pro nasazení modulu runtime IoT Edge.
Použijte existující IoT Hub a DPS nebo vytvořte novou službu IoT Hub.
- Pomocí těchto kroků vytvořte IoT Hub.
- Pomocí těchto kroků vytvořte službu DPS a pak propojte IoT Hub s oborem DPS.
Přejděte k prostředku DPS a vytvořte individuální registraci.
- Přejděte do služby Device Provisioning Service>Manage enrollments>Add individual enrollment.
- Ujistěte se, že je výběr symetrického klíče pro typ ověření identity a zařízení IoT Edge true. Výchozí výběr je False.
- Načtěte následující informace ze stránky prostředku DPS:
- ID registrace. Doporučujeme použít stejné ID jako ID zařízení pro ioT Hub.
- Obor ID, který je k dispozici v nabídce Přehled
- Primární klíč SAS z nabídky Individuální registrace
Zkopírujte a vložte hodnoty ze služby IoT Hub (IDScope) a DPS (RegistrationID, Symetrický klíč) do argumentů skriptu.
Skript cloud-init pro službu IoT Hub DPS
#cloud-config
runcmd:
- dps_idscope="<DPS IDScope>"
- registration_device_id="<RegistrationID>"
- key="<Symmetric Key>"
- |
set -x
(
wget https://github.com/Azure/iot-edge-config/releases/latest/download/azure-iot-edge-installer.sh -O azure-iot-edge-installer.sh \
&& chmod +x azure-iot-edge-installer.sh \
&& sudo -H ./azure-iot-edge-installer.sh -s $dps_idscope -r $registration_device_id -k $key \
&& rm -rf azure-iot-edge-installer.sh
# Wait for docker daemon to start
while [ $(ps -ef | grep -v grep | grep docker | wc -l) -le 0 ]; do
sleep 3
done
systemctl stop aziot-edge
if [ $(lspci | grep NVIDIA | wc -l) -gt 0 ]; then
#install Nvidia drivers
apt install -y ubuntu-drivers-common
ubuntu-drivers devices
ubuntu-drivers autoinstall
# Install NVIDIA Container Runtime
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | tee /etc/apt/sources.list.d/nvidia-container-runtime.list
apt update
apt install -y nvidia-container-runtime
fi
# Restart Docker
systemctl daemon-reload
systemctl restart docker
systemctl start aziot-edge
if [ $(lspci | grep NVIDIA | wc -l) -gt 0 ]; then
reboot
fi
) &
write_files:
- path: /etc/systemd/system/docker.service.d/override.conf
permissions: "0644"
content: |
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=nvidia=/usr/bin/nvidia-container-runtime --log-driver local
Nasazení modulu runtime IoT Edge
Nasazení modulu runtime IoT Edge je součástí vytváření virtuálního počítače pomocí skriptu cloud-init uvedeného výše.
Tady jsou základní kroky pro nasazení virtuálního počítače a modulu runtime IoT Edge:
Získejte image virtuálního počítače s Ubuntu z Azure Marketplace. Podrobný postup najdete v pokynech v tématu Použití image Azure Marketplace k vytvoření image virtuálního počítače pro Azure Stack Edge.
- Na webu Azure Portal přejděte na Azure Marketplace.
- Připojte se ke službě Azure Cloud Shell nebo klientovi s nainstalovaným Rozhraním příkazového řádku Azure. Podrobný postup najdete v rychlém startu pro Bash v Azure Cloud Shellu.
Poznámka:
Zavření relace prostředí odstraní všechny proměnné vytvořené během relace prostředí. Opětovné otevření relace bude vyžadovat opětovné vytvoření proměnných.
c. Spuštěním následujícího příkazu nastavte předplatné.
az account set –subscription <subscription id>
Pomocí kroků v hledání imagí z Azure Marketplace vyhledejte image Ubuntu 20.04 LTS na Webu Azure Marketplace.
Příklad image Ubuntu 20.04 LTS:
$urn = Canonical:0001-com-ubuntu-server-focal:20_04-lts:20.04.202007160
Vytvořte nový spravovaný disk z image Marketplace. Podrobný postup najdete v tématu Použití image Azure Marketplace k vytvoření image virtuálního počítače pro Azure Stack Edge.
Exportujte virtuální pevný disk ze spravovaného disku do účtu Azure Storage. Podrobný postup najdete v tématu Export virtuálního pevného disku ze spravovaného disku do Služby Azure Storage.
Pomocí těchto kroků vytvořte virtuální počítač s Ubuntu pomocí image virtuálního počítače.
Zadejte skript cloud-init na kartě Upřesnit. Pokud chcete vytvořit virtuální počítač, přečtěte si téma Nasazení virtuálního počítače GPU prostřednictvím webu Azure Portal nebo nasazení virtuálního počítače prostřednictvím webu Azure Portal.
Zadejte odpovídající připojovací řetězec zařízení v cloud-init pro připojení k zařízení IoT Hub nebo DPS. Podrobné kroky najdete v tématu Zřízení symetrických klíčů nebo zřízení pomocí služby IoT Hub DPS.
Pokud jste během vytváření virtuálního počítače nezadali cloud-init , budete muset po vytvoření virtuálního počítače ručně nasadit modul runtime IoT Edge:
- Připojte se k virtuálnímu počítači přes SSH.
- Nainstalujte na virtuální počítač modul kontejneru. Podrobný postup najdete v tématu Vytvoření a zřízení zařízení IoT Edge v Linuxu pomocí symetrických klíčů nebo rychlého startu – Nastavení DPS služby IoT Hub pomocí webu Azure Portal.
Ověření modulu runtime IoT Edge
Pomocí těchto kroků ověřte, že je spuštěný modul runtime IoT Edge.
Na webu Azure Portal přejděte k prostředku ioT Hubu.
Vyberte zařízení IoT Edge.
Ověřte, že je spuštěný modul runtime IoT Edge.
Informace o řešení potíží s konfigurací zařízení IoT Edge najdete v tématu Řešení potíží se zařízením IoT Edge.
Aktualizace modulu runtime IoT Edge
Pokud chcete virtuální počítač aktualizovat, postupujte podle pokynů v tématu Aktualizace IoT Edge. Pokud chcete najít nejnovější verzi Azure IoT Edge, přečtěte si o vydaných verzích Azure IoT Edge.
Další kroky
Pokud chcete nasadit a spustit modul IoT Edge na virtuálním počítači s Ubuntu, přečtěte si postup nasazení modulů IoT Edge.
Pokud chcete nasadit modul DeepStream společnosti Nvidia, přečtěte si téma Nasazení modulu Nvidia DeepStream na virtuálním počítači s Ubuntu ve službě Azure Stack Edge Pro s GPU.
Pokud chcete nasadit NVIDIA DIGITS, přečtěte si téma Povolení GPU v předkompilovaném modulu NVIDIA.