Ćwiczenie — instalowanie środowiska uruchomieniowego usługi IoT Edge dla systemu Linux

Ukończone

Przed rozpoczęciem potrzebne będą następujące elementy:

Tworzenie zasobów w chmurze

Tworzenie grupy zasobów

Wykonaj następujące kroki w środowisku usługi Azure Cloud Shell.

  1. Wybierz pozycję "Bash" w lewym górnym rogu jako środowisko dla usługi Cloud Shell.

  2. Dodaj rozszerzenie Azure IoT do instancji Cloud Shell.

    az extension add --name azure-iot
    
  3. Utwórz grupę zasobów w lokalizacji eastus2 przy użyciu następującego polecenia. Nadaj nazwę grupie zasobów.

    az group create --name <resource-group-name> --location eastus2   
    

Utwórz urządzenie IoT Edge w centrum IoT

  1. Utwórz usługę IoT Hub w warstwie F1 przy użyciu następującego polecenia. Nadaj nazwę usłudze IoT Hub i zastąp ją grupą zasobów.

    az iot hub create --resource-group <resource-group-name> --name <iot-hub-name> --sku F1 --partition-count 2  
    
  2. Aby można było nawiązać połączenie, urządzenie musi zostać zarejestrowane w usłudze IoT Hub. Uruchom następujące polecenie, aby utworzyć tożsamość urządzenia w usłudze IoT Hub. Nadaj nazwę swojemu urządzeniu IoT i zastąp je swoim IoT Hubem.

    az iot hub device-identity create --hub-name <iot-hub-name> --device-id <device-id>
    

Instalowanie usługi IoT Edge dla systemu Linux

Notatka

Przejdź do strony microsoft, jeśli chcesz dowiedzieć się więcej na temat instalowania usługi IoT Edge dla systemu Linux.

  1. Otwórz terminal na komputerze z systemem Linux.

  2. Zainstaluj konfigurację repozytorium zgodną z systemem operacyjnym urządzenia.

    Ubuntu Server 18.04:

    curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
    
  3. Skopiuj wygenerowaną listę do katalogu sources.list.d.

    sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
    
  4. Zainstaluj klucz publiczny GPG firmy Microsoft.

    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
    

Zainstaluj silnik kontenera

Usługa Azure IoT Edge korzysta ze środowiska uruchomieniowego kontenera zgodnego z technologią OCI. W przypadku scenariuszy produkcyjnych zalecamy użycie silnika Moby. Silnik Moby jest jedynym oficjalnie wspieranym silnikiem kontenerów w usłudze Azure IoT Edge. Obrazy kontenerów Docker CE/EE są zgodne ze środowiskiem uruchomieniowym Moby.

  1. Zaktualizuj listy pakietów na urządzeniu.

    sudo apt-get update
    
  2. Zainstaluj silnik Moby.

    sudo apt-get install moby-engine
    

Jeśli podczas instalowania silnika kontenerów Moby wystąpią błędy, sprawdź jądro systemu Linux pod kątem kompatybilności z Moby. Niektórzy producenci urządzeń wbudowanych dostarczają obrazy urządzeń, które zawierają niestandardowe jądra systemu Linux, bez funkcji wymaganych do zgodności z silnikiem kontenerów. Uruchom następujące polecenie, które używa skryptu check-config dostarczonego przez program Moby, aby sprawdzić konfigurację jądra:

curl -sSL https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh -o check-config.sh
chmod +x check-config.sh
./check-config.sh

W danych wyjściowych skryptu sprawdź, czy wszystkie elementy w obszarze Generally Necessary i Network Drivers są włączone. Jeśli brakuje funkcji, włącz je, ponownie skompilując jądro ze źródła i wybierając skojarzone moduły do włączenia do odpowiedniego jądra .config. Podobnie, jeśli używasz generatora konfiguracji jądra, takiego jak defconfig lub menuconfig, znajdź i włącz odpowiednie funkcje i odpowiednio skompiluj jądro. Po wdrożeniu nowo zmodyfikowanego jądra ponownie uruchom skrypt check-config, aby sprawdzić, czy wszystkie wymagane funkcje zostały pomyślnie włączone.

Instalowanie demona zabezpieczeń usługi IoT Edge

Demon zabezpieczeń usługi IoT Edge zapewnia i utrzymuje standardy zabezpieczeń na urządzeniu usługi IoT Edge. Demon uruchamia się na każdym rozruchu i uruchamia urządzenie, uruchamiając resztę środowiska uruchomieniowego usługi IoT Edge.

  1. Zaktualizuj listy pakietów na urządzeniu.

    sudo apt-get update
    
  2. Sprawdź, które wersje usługi IoT Edge są dostępne.

    apt list -a iotedge
    
  3. Zainstaluj najnowszą wersję demona zabezpieczeń, użyj następującego polecenia, które instaluje również najnowszą wersję pakietu libiothsm-std:

    sudo apt-get install iotedge
    

Skonfiguruj urządzenie przy użyciu jego tożsamości w chmurze

Uwierzytelnianie przy użyciu kluczy symetrycznych

Na tym etapie środowisko uruchomieniowe usługi IoT Edge jest zainstalowane na urządzeniu z systemem Linux i musisz aprowizować urządzenie przy użyciu informacji o tożsamości i uwierzytelnianiu w chmurze.

W tej sekcji przedstawiono procedurę aprowizowania urządzenia przy użyciu uwierzytelniania klucza symetrycznego. Powinieneś zarejestrować swoje urządzenie w usłudze IoT Hub i pobrać parametr połączenia z informacji o urządzeniu.

Na urządzeniu usługi IoT Edge otwórz plik konfiguracji.

sudo nano /etc/iotedge/config.yaml

Znajdź konfiguracje aprowizacji pliku i usuń komentarz z sekcji ręcznej konfiguracji aprowizacji przy użyciu łańcucha połączenia, jeśli nie jest ona jeszcze bez komentarza.

```toml
# Manual provisioning configuration using a connection string
provisioning:
  source: "manual"
  device_connection_string: "<ADD DEVICE CONNECTION STRING HERE>"
```

Zaktualizuj wartość device_connection_string, używając ciągu połączenia ze swojego urządzenia IoT Edge. Upewnij się, że wszystkie inne sekcje prowizjonowania są zakomentowane. Upewnij się, że wiersz z prowizjonowania: nie ma poprzedzającego odstępu i że zagnieżdżone elementy są wcięte o dwie spacje.

Aby wkleić zawartość schowka do pozycji Nano Shift+Right, kliknij lub naciśnij Shift+Insert.

Zapisz i zamknij plik.

CTRL + X`, `Y`, `Enter

Po wprowadzeniu informacji o aprowizacji w pliku konfiguracji uruchom ponownie demona:

sudo systemctl restart iotedge

Weryfikowanie pomyślnej konfiguracji

Sprawdź, czy środowisko uruchomieniowe zostało pomyślnie zainstalowane i skonfigurowane na urządzeniu usługi IoT Edge.

Sprawdź, czy usługa systemowa usługi IoT Edge jest uruchomiona.

sudo systemctl status iotedge