Az IoT Edge üzembe helyezése Ubuntu virtuális gépen az Azure Stack Edge-en
A következőkre vonatkozik: Azure Stack Edge Pro – GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
Ez a cikk bemutatja, hogyan helyezhet üzembe IoT Edge-futtatókörnyezetet egy Azure Stack Edge-eszközön futó Ubuntu virtuális gépen. Új fejlesztési munkákhoz használja a cikkben ismertetett önkiszolgáló üzembe helyezési módszert, mivel a legújabb szoftververziót használja.
Felső szintű folyamat
A magas szintű folyamat a következő:
- Hozza létre vagy azonosítsa az IoT Hub vagy az Azure IoT Hub Device Provisioning Service (DPS) példányt.
- Az Azure CLI használatával szerezze be az Ubuntu 20.04 LTS virtuálisgép-rendszerképet.
- Töltse fel az Ubuntu-lemezképet az Azure Stack Edge virtuálisgép-rendszerképtárába.
- Telepítse az Ubuntu-lemezképet virtuális gépként az alábbi lépések végrehajtásával:
- Adja meg a virtuális gép nevét, a felhasználónevet és a jelszót. Egy másik lemez létrehozása nem kötelező.
- Állítsa be a hálózati konfigurációt.
- Adjon meg egy előkészített cloud-init szkriptet a Speciális lapon.
Előfeltételek
Mielőtt hozzákezd, győződjön meg arról, hogy rendelkezik az alábbiakkal:
Egy Aktivált Azure Stack Edge-eszköz. Részletes lépéseket az Azure Stack Edge Pro GPU aktiválása című témakörben talál.
Hozzáférés a legújabb Ubuntu 20.04 virtuálisgép-rendszerképhez, akár az Azure Marketplace-ről származó rendszerképhez, akár egy ön által hozott egyéni rendszerképhez:
$urn = Canonical:0001-com-ubuntu-server-focal:20_04-lts:20.04.202007160
Az Azure Marketplace-rendszerképek keresése lépésekkel szerezheti be a virtuálisgép-rendszerképet.
A cloud-init szkript előkészítése
Az IoT Edge-futtatókörnyezet Ubuntu virtuális gépen való üzembe helyezéséhez használjon felhőbeli init szkriptet a virtuális gép üzembe helyezése során.
Kövesse az alábbi szakaszok lépéseit:
- Készítse elő a cloud-init szkriptet szimmetrikus kulcskiépítéssel.
- Készítse elő a cloud-init szkriptet az IoT Hub DPS-vel.
Szimmetrikus kulcskiépítés használata
Ha DPS nélkül szeretné csatlakoztatni az eszközt az IoT Hubhoz, az ebben a szakaszban ismertetett lépésekkel készítse elő a felhőalapú init szkriptet a virtuális gép létrehozási speciális lapjához az IoT Edge-futtatókörnyezet és az Nvidia tároló-futtatókörnyezetének üzembe helyezéséhez.
Használjon meglévő IoT Hubot, vagy hozzon létre egy új központot. Ezeket a lépéseket követve hozzon létre egy IoT Hubot.
Az alábbi lépésekkel regisztrálhatja Azure Stack Edge-eszközét az IoT Hubon.
Kérje le az elsődleges kapcsolati sztringet az eszköz IoT Hubjáról, majd illessze be a DeviceConnectionString alábbi helyére.
Cloud-init szkript szimmetrikus kulcsok kiépítéséhez
#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
A DPS használata
Az ebben a szakaszban ismertetett lépésekkel csatlakoztathatja az eszközt a DPS-hez és az IoT Centralhoz. A virtuális gép létrehozásakor egy script.sh fájlt fog előkészíteni az IoT Edge-futtatókörnyezet üzembe helyezéséhez.
Használja a meglévő IoT Hubot és DPS-t, vagy hozzon létre egy új IoT Hubot.
- Ezeket a lépéseket követve hozzon létre egy IoT Hubot.
- Ezekkel a lépésekkel hozza létre a DPS-t, majd kapcsolja össze az IoT Hubot a DPS-hatókörrel.
Lépjen a DPS-erőforrásra, és hozzon létre egy egyéni regisztrációt.
- Lépjen a Device Provisioning Service>Manage enrollments>Add individual enrollment (Egyéni regisztráció hozzáadása) elemre.
- Győződjön meg arról, hogy az igazolás típusához és az IoT Edge-eszközhöz tartozó szimmetrikus kulcs értéke Igaz. Az alapértelmezett kijelölés Hamis.
- Kérje le a következő információkat a DPS-erőforráslapról:
Másolja és illessze be az IoT Hub (IDScope) és a DPS (RegistrationID, Szimmetrikus kulcs) értékeit a szkriptargumentumokba.
Cloud-init szkript az IoT Hub DPS-hez
#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
IoT Edge-futtatókörnyezet üzembe helyezése
Az IoT Edge-futtatókörnyezet üzembe helyezése a virtuális gépek létrehozásának része, a fent említett cloud-init szkript használatával.
A virtuális gép és az IoT Edge-futtatókörnyezet üzembe helyezésének magas szintű lépései a következők:
Szerezze be az Ubuntu virtuálisgép-rendszerképet az Azure Marketplace-ről. A részletes lépésekért kövesse az Azure Marketplace-rendszerkép használatát az Azure Stack Edge-hez készült virtuálisgép-rendszerkép létrehozásához.
- Az Azure Portalon nyissa meg az Azure Marketplace-et.
- Csatlakozzon az Azure Cloud Shellhez vagy egy telepített Azure CLI-vel rendelkező ügyfélhez. Részletes lépésekért tekintse meg a Bash rövid útmutatóit az Azure Cloud Shellben.
Feljegyzés
A rendszerhéj-munkamenet bezárása törli a rendszerhéj-munkamenet során létrehozott összes változót. A munkamenet újbóli megnyitásához újra létre kell hozni a változókat.
c. Futtassa a következő parancsot az előfizetés beállításához.
az account set –subscription <subscription id>
Az Azure Marketplace-rendszerképek keresése lépésekkel kereshet az Azure Marketplace-en egy Ubuntu 20.04 LTS-rendszerképet.
Példa egy Ubuntu 20.04 LTS-rendszerképre:
$urn = Canonical:0001-com-ubuntu-server-focal:20_04-lts:20.04.202007160
Hozzon létre egy új felügyelt lemezt a Marketplace-rendszerképből. Részletes lépéseket az Azure Stack Edge-hez készült virtuálisgép-rendszerképek Azure Marketplace-rendszerképének használatával című témakörben talál.
VHD exportálása a felügyelt lemezről egy Azure Storage-fiókba. Részletes lépésekért lásd : VHD exportálása a felügyelt lemezről az Azure Storage-ba.
Az alábbi lépéseket követve hozzon létre egy Ubuntu virtuális gépet a virtuálisgép-rendszerkép használatával.
Adja meg a cloud-init szkriptet a Speciális lapon. Virtuális gép létrehozásához lásd : GPU-alapú virtuális gép üzembe helyezése az Azure Portalon vagy virtuális gép üzembe helyezése az Azure Portalon keresztül.
Adja meg a megfelelő eszköz kapcsolati sztring a cloud-initben az IoT Hubhoz vagy a DPS-eszközhöz való csatlakozáshoz. Részletes lépésekért lásd: Kiépítés szimmetrikus kulcsokkal vagy Kiépítés IoT Hub DPS-vel.
Ha nem adta meg a cloud-initet a virtuális gép létrehozásakor, manuálisan kell üzembe helyeznie az IoT Edge-futtatókörnyezetet a virtuális gép létrehozása után:
- Csatlakozzon a virtuális géphez SSH-val.
- Telepítse a tárolómotort a virtuális gépre. Részletes lépésekért lásd : IoT Edge-eszköz létrehozása és kiépítése Linuxon szimmetrikus kulcsokkal vagy rövid útmutató – Az IoT Hub DPS beállítása az Azure Portalon.
Az IoT Edge-futtatókörnyezet ellenőrzése
Ezekkel a lépésekkel ellenőrizheti, hogy az IoT Edge-futtatókörnyezet fut-e.
Nyissa meg az IoT Hub-erőforrást az Azure Portalon.
Válassza ki az IoT Edge-eszközt.
Ellenőrizze, hogy az IoT Edge-futtatókörnyezet fut-e.
Az IoT Edge-eszköz konfigurációjának hibaelhárításához tekintse meg az IoT Edge-eszköz hibaelhárítását.
Az IoT Edge-futtatókörnyezet frissítése
A virtuális gép frissítéséhez kövesse az IoT Edge frissítésére vonatkozó utasításokat. Az Azure IoT Edge legújabb verziójának megkereséséhez tekintse meg az Azure IoT Edge kiadásait.
Következő lépések
Ha IoT Edge-modult szeretne üzembe helyezni és futtatni az Ubuntu virtuális gépen, tekintse meg az IoT Edge-modulok üzembe helyezésének lépéseit.
Az Nvidia DeepStream moduljának üzembe helyezéséről lásd : Az Nvidia DeepStream modul üzembe helyezése Ubuntu virtuális gépen az Azure Stack Edge Pro-ban GPU-val.
Az NVIDIA DIGITS üzembe helyezéséről lásd : GPU engedélyezése előre gyártott NVIDIA-modulban.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: