Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY:
Azure Stack Edge Pro — GPU
Azure Stack Edge Pro 2
Azure Stack Edge Pro R
Azure Stack Edge Mini R
W tym artykule opisano sposób wdrażania środowiska uruchomieniowego usługi IoT Edge na maszynie wirtualnej z systemem Ubuntu uruchomionej na urządzeniu Azure Stack Edge. W przypadku nowych prac programistycznych użyj metody wdrażania samoobsługowego opisanej w tym artykule, ponieważ używa najnowszej wersji oprogramowania.
Przepływ na wysokim poziomie
Przepływ wysokiego poziomu wygląda następująco:
- Utwórz lub zidentyfikuj wystąpienie usługi IoT Hub lub Azure IoT Hub Device Provisioning Service (DPS).
- Użyj interfejsu wiersza polecenia platformy Azure, aby uzyskać obraz maszyny wirtualnej z systemem Ubuntu 20.04 LTS.
- Załaduj obraz Ubuntu do biblioteki obrazów maszyny wirtualnej Azure Stack Edge.
- Rozmieść obraz Ubuntu jako VM, wykonując następujące kroki:
- Podaj nazwę maszyny wirtualnej, nazwę użytkownika i hasło. Tworzenie innego dysku jest opcjonalne.
- Skonfiguruj konfigurację sieci.
- Udostępnij przygotowany skrypt cloud-init na karcie Zaawansowane .
Wymagania wstępne
Zanim się zacznie, upewnij się, że masz:
Urządzenie Azure Stack Edge, które aktywowałeś. Aby uzyskać szczegółowe instrukcje, zobacz Aktywacja Azure Stack Edge Pro GPU.
Dostęp do najnowszego obrazu maszyny wirtualnej Ubuntu 20.04 z Marketplace Azure lub obrazu niestandardowego, który przynosisz ze sobą:
$urn = Canonical:0001-com-ubuntu-server-focal:20_04-lts:20.04.202007160Aby uzyskać obraz maszyny wirtualnej, użyj kroków opisanych w artykule Wyszukiwanie obrazów w Azure Marketplace.
Przygotowywanie skryptu cloud-init
Aby wdrożyć środowisko uruchomieniowe usługi IoT Edge na maszynie wirtualnej z systemem Ubuntu, użyj skryptu cloud-init podczas wdrażania maszyny wirtualnej.
Wykonaj kroki opisane w jednej z następujących sekcji:
- Przygotuj skrypt cloud-init z konfiguracją klucza symetrycznego.
- Przygotuj skrypt cloud-init za pomocą usługi IoT Hub DPS.
Używanie aprowizacji klucza symetrycznego
Aby połączyć urządzenie z usługą IoT Hub bez usługi DPS, wykonaj kroki opisane w tej sekcji, aby przygotować skrypt cloud-init na stronie Zaawansowane tworzenie maszyny wirtualnej w celu wdrożenia środowiska uruchomieniowego IoT Edge i środowiska uruchomieniowego kontenera NVIDIA.
Użyj istniejącego centrum IoT Lub utwórz nowe centrum. Wykonaj następujące kroki, aby utworzyć centrum IoT Hub.
Wykonaj następujące kroki, aby zarejestrować urządzenie Azure Stack Edge w usłudze IoT Hub.
Pobierz podstawowe parametry połączenia z usługi IoT Hub dla urządzenia, a następnie wklej je w poniższej lokalizacji dla parametru DeviceConnectionString.
Skrypt cloud-init do dostarczania klucza symetrycznego
#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
Korzystanie z usługi DPS
Wykonaj kroki opisane w tej sekcji, aby połączyć urządzenie z usługami DPS i IoT Central. Przygotujesz plik script.sh do wdrożenia środowiska uruchomieniowego usługi IoT Edge podczas tworzenia maszyny wirtualnej.
Użyj istniejącego IoT Hub i usługi DPS lub utwórz nowy IoT Hub.
- Wykonaj następujące kroki, aby utworzyć centrum IoT Hub.
- Wykonaj następujące kroki, aby utworzyć usługę DPS, a następnie połączyć usługę IoT Hub z zakresem usługi DPS.
Przejdź do zasobu usługi DPS i utwórz rejestrację indywidualną.
- Przejdź do usługi Device Provisioning>Zarządzaj rejestracjami>Dodaj rejestrację indywidualną.
- Upewnij się, że wybór Klucza symetrycznego dla typu zaświadczania i urządzenia IoT Edge jest ustawiony na Prawda. Domyślnym wyborem jest fałsz.
- Pobierz następujące informacje ze strony zasobów DPS:
- Identyfikator rejestracji. Zalecamy użycie tego samego identyfikatora co identyfikator urządzenia dla usługi IoT Hub.
- Zakres identyfikatora, który jest dostępny w menu Przegląd.
- Podstawowy klucz SAS z menu Rejestracja indywidualna.
Skopiuj i wklej wartości z usługi IoT Hub (IDScope) i DPS (RegistrationID, Symmetric Key) do argumentów skryptu.
Skrypt cloud-init dla usługi 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
Wdrażanie środowiska uruchomieniowego usługi IoT Edge
Wdrażanie środowiska uruchomieniowego usługi IoT Edge jest częścią tworzenia maszyny wirtualnej przy użyciu skryptu cloud-init wymienionego powyżej.
Poniżej przedstawiono ogólne kroki wdrażania maszyny wirtualnej i środowiska uruchomieniowego usługi IoT Edge:
Uzyskaj obraz maszyny wirtualnej z systemem Ubuntu z witryny Azure Marketplace. Aby uzyskać szczegółowe instrukcje, postępuj zgodnie z instrukcjami w artykule Używanie obrazu witryny Azure Marketplace do tworzenia obrazu maszyny wirtualnej dla usługi Azure Stack Edge.
- W witrynie Azure Portal przejdź do witryny Azure Marketplace.
- Połącz się z usługą Azure Cloud Shell lub klientem z zainstalowanym interfejsem wiersza polecenia platformy Azure. Aby uzyskać szczegółowe instrukcje, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Uwaga
Zamknięcie sesji powłoki spowoduje usunięcie wszystkich zmiennych utworzonych podczas sesji powłoki. Ponowne otwarcie sesji będzie wymagać ponownego utworzenia zmiennych.
c. Uruchom następujące polecenie, aby ustawić subskrypcję.
az account set –subscription <subscription id>Wykonaj kroki opisane w Wyszukiwanie obrazów w Azure Marketplace, aby wyszukać obraz z systemem Ubuntu 20.04 LTS.
Przykład obrazu systemu Ubuntu 20.04 LTS:
$urn = Canonical:0001-com-ubuntu-server-focal:20_04-lts:20.04.202007160Utwórz nowy dysk zarządzany na podstawie obrazu witryny Marketplace. Aby uzyskać szczegółowe instrukcje, zobacz Użycie obrazu Azure Marketplace do utworzenia obrazu maszyny wirtualnej dla Azure Stack Edge.
Wyeksportuj dysk VHD z dysku zarządzanego do konta usługi Azure Storage. Aby uzyskać szczegółowe instrukcje, zobacz Eksportowanie dysku VHD z dysku zarządzanego do usługi Azure Storage.
Wykonaj następujące kroki, aby utworzyć maszynę wirtualną z systemem Ubuntu przy użyciu obrazu maszyny wirtualnej.
Określ skrypt cloud-init na karcie Zaawansowane. Aby utworzyć maszynę wirtualną, zobacz Wdrażanie maszyny wirtualnej z procesorem GPU za pośrednictwem witryny Azure Portal lub Wdrażanie maszyny wirtualnej za pośrednictwem witryny Azure Portal.
Określ odpowiednie ciągi połączeń urządzenia w cloud-init, aby połączyć się z urządzeniem IoT Hub lub DPS. Aby uzyskać szczegółowe instrukcje, zobacz Konfiguruj przy użyciu kluczy symetrycznych lub Konfiguruj przy użyciu platformy usługi IoT Hub DPS.
Jeśli podczas tworzenia maszyny wirtualnej nie określono pakietu cloud-init , musisz ręcznie wdrożyć środowisko uruchomieniowe usługi IoT Edge po utworzeniu maszyny wirtualnej:
- Nawiąż połączenie z maszyną wirtualną za pośrednictwem protokołu SSH.
- Zainstaluj silnik kontenerów na maszynie wirtualnej. Aby uzyskać szczegółowe instrukcje, zobacz Tworzenie i aprowizowanie urządzenia usługi IoT Edge w systemie Linux przy użyciu kluczy symetrycznych lub Przewodnik Szybki start — konfigurowanie usługi IoT Hub DPS w witrynie Azure Portal.
Weryfikowanie środowiska uruchomieniowego usługi IoT Edge
Wykonaj następujące kroki, aby sprawdzić, czy środowisko uruchomieniowe usługi IoT Edge jest uruchomione.
Przejdź do zasobu usługi IoT Hub w witrynie Azure Portal.
Wybierz urządzenie usługi IoT Edge.
Sprawdź, czy środowisko uruchomieniowe usługi IoT Edge jest uruchomione.
Aby rozwiązać problemy z konfiguracją urządzenia usługi IoT Edge, zobacz Rozwiązywanie problemów z urządzeniem usługi IoT Edge.
Aktualizowanie środowiska uruchomieniowego usługi IoT Edge
Aby zaktualizować maszynę wirtualną, postępuj zgodnie z instrukcjami w temacie Aktualizowanie usługi IoT Edge. Aby znaleźć najnowszą wersję Azure IoT Edge, zobacz Wydania Azure IoT Edge.
Następne kroki
Aby wdrożyć i uruchomić moduł usługi IoT Edge na maszynie wirtualnej z systemem Ubuntu, zobacz kroki opisane w artykule Wdrażanie modułów usługi IoT Edge.
Aby wdrożyć moduł DeepStream firmy NVIDIA, zobacz Deploy the NVIDIA DeepStream module on Ubuntu VM on Azure Stack Edge Pro with GPU (Wdrażanie modułu NVIDIA DeepStream na maszynie wirtualnej z systemem Ubuntu w usłudze Azure Stack Edge Pro przy użyciu procesora GPU).
Aby wdrożyć procesor NVIDIA DIGITS, zobacz Włączanie procesora GPU w wstępnie utworzonym module NVIDIA.