Megosztás a következőn keresztül:


Az IoT Edge üzembe helyezése Ubuntu virtuális gépen az Azure Stack Edge-en

A következőkre vonatkozik: Igen a Pro GPU termékváltozatáhozAzure Stack Edge Pro – GPUIgen a Pro 2 termékváltozathozAzure Stack Edge Pro 2Igen a Pro R termékváltozathozAzure Stack Edge Pro RIgen a Mini R termékváltozathozAzure 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ő:

  1. Hozza létre vagy azonosítsa az IoT Hub vagy az Azure IoT Hub Device Provisioning Service (DPS) példányt.
  2. Az Azure CLI használatával szerezze be az Ubuntu 20.04 LTS virtuálisgép-rendszerképet.
  3. Töltse fel az Ubuntu-lemezképet az Azure Stack Edge virtuálisgép-rendszerképtárába.
  4. Telepítse az Ubuntu-lemezképet virtuális gépként az alábbi lépések végrehajtásával:
    1. 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ő.
    2. Állítsa be a hálózati konfigurációt.
    3. 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:

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.

  1. 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.

  2. Az alábbi lépésekkel regisztrálhatja Azure Stack Edge-eszközét az IoT Hubon.

  3. 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.

  1. Használja a meglévő IoT Hubot és DPS-t, vagy hozzon létre egy új IoT Hubot.

  2. Lépjen a DPS-erőforrásra, és hozzon létre egy egyéni regisztrációt. 

    1. Lépjen a Device Provisioning Service>Manage enrollments>Add individual enrollment (Egyéni regisztráció hozzáadása) elemre.
    2. 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.
    3. Kérje le a következő információkat a DPS-erőforráslapról:
      • Regisztrációs azonosító. Javasoljuk, hogy ugyanazt az azonosítót használja, mint az IoT Hub eszközazonosítóját .
      • Az Áttekintés menüben elérhető azonosító hatóköre.
      • Elsődleges SAS-kulcs az Egyéni regisztráció menüből.
  3. 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:

  1. 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.

    1. Az Azure Portalon nyissa meg az Azure Marketplace-et.
    2. 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>
    
  2. 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
    
  3. 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.

  4. 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.

  5. 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.

    1. 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.

      Képernyőkép az Azure Portal virtuálisgép-konfigurációjának Speciális lapjáról.

    2. 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.

      Képernyőkép a virtuálisgép-konfiguráció egyéni adatmezőéről az Azure Portalon.

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:

  1. Csatlakozzon a virtuális géphez SSH-val.
  2. 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.

  1. Nyissa meg az IoT Hub-erőforrást az Azure Portalon.

  2. Válassza ki az IoT Edge-eszközt.

  3. Ellenőrizze, hogy az IoT Edge-futtatókörnyezet fut-e.

    Képernyőkép az IoT Edge futtatókörnyezet állapotáról az Azure Portalon.

    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.