Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLAR IÇIN GEÇERLIDIR:
Azure Stack Edge Pro - GPU
Azure Stack Edge Pro 2
Azure Stack Edge Pro R
Azure Stack Edge Mini R
Bu makalede, Azure Stack Edge cihazınızda çalışan bir Ubuntu VM'sine IoT Edge çalışma zamanının nasıl dağıtılacağı açıklanmaktadır. Yeni geliştirme çalışmaları için, en son yazılım sürümünü kullandığından bu makalede açıklanan self servis dağıtım yöntemini kullanın.
Yüksek seviyeli akış
Üst düzey akış aşağıdaki gibidir:
- IoT Hub veya Azure IoT Hub Cihaz Sağlama Hizmeti (DPS) örneğini oluşturun veya tanımlayın.
- Ubuntu 20.04 LTS VM görüntüsünü almak için Azure CLI'yi kullanın.
- Ubuntu görüntüsünü Azure Stack Edge VM görüntü kitaplığına yükleyin.
- Aşağıdaki adımları kullanarak Ubuntu görüntüsünü vm olarak dağıtın:
- VM'nin adını, kullanıcı adını ve parolayı belirtin. Başka bir disk oluşturmak isteğe bağlıdır.
- Ağ yapılandırmasını ayarlayın.
- Gelişmiş sekmesinde hazırlanmış bir cloud-init betiği sağlayın.
Önkoşullar
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
Etkinleştirdiğiniz bir Azure Stack Edge cihazı. Ayrıntılı adımlar için bkz . Azure Stack Edge Pro GPU'larını etkinleştirme.
en son Ubuntu 20.04 VM görüntüsüne( Azure Market veya getirdiğiniz özel görüntüye) erişin:
$urn = Canonical:0001-com-ubuntu-server-focal:20_04-lts:20.04.202007160VM görüntüsünü almak için Azure Market görüntüleri arama'daki adımları kullanın.
cloud-init betiğini hazırlama
IoT Edge çalışma zamanını Ubuntu VM'sine dağıtmak için VM dağıtımı sırasında bir cloud-init betiği kullanın.
Aşağıdaki bölümlerden birinde yer alan adımları kullanın:
- Simetrik anahtar sağlama ile cloud-init betiğini hazırlayın.
- IoT Hub DPS ile cloud-init betiğini hazırlayın.
Simetrik anahtar sağlamayı kullanma
Cihazınızı DPS olmadan IoT Hub'a bağlamak için bu bölümdeki adımları kullanarak IoT Edge çalışma zamanını ve NVIDIA'nın kapsayıcı çalışma zamanını dağıtmak üzere VM oluşturma Gelişmiş sayfasına bir cloud-init betiği hazırlayın.
Mevcut bir IoT Hub'ı kullanın veya yeni bir Hub oluşturun. IoT Hub oluşturmak için bu adımları kullanın.
Azure Stack Edge cihazınızı IoT Hub'a kaydetmek için bu adımları kullanın.
Cihazınız için IoT Hub'dan Birincil Bağlantı Dizesi'ni alın ve deviceConnectionString için aşağıdaki konuma yapıştırın.
Simetrik anahtar sağlama için cloud-init betiği
#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
DPS kullanma
Cihazınızı DPS ve IoT Central'a bağlamak için bu bölümdeki adımları kullanın. VM'yi oluştururken IoT Edge çalışma zamanını dağıtmak için bir script.sh dosyası hazırlayacaksınız.
Mevcut IoT Hub'ı ve DPS'yi kullanın veya yeni bir IoT Hub oluşturun.
- IoT Hub oluşturmak için bu adımları kullanın.
- DPS'yi oluşturmak ve ardından IoT Hub'ı DPS kapsamına bağlamak için bu adımları kullanın.
DPS kaynağına gidin ve tek bir kayıt oluşturun.
- Cihaz Sağlama Hizmeti>Kayıtları yönet Bireysel kayıt> ekle'ye gidin.
- Kanıtlama türü ve IoT Edge cihazı için Simetrik Anahtar seçiminin True olduğundan emin olun. Varsayılan seçim False'tur.
- DPS kaynak sayfasından aşağıdaki bilgileri alın:
- Kayıt Kimliği. IoT Hub'ınızın Cihaz Kimliği ile aynı kimliği kullanmanızı öneririz.
- Genel Bakış menüsünde bulunan Kimlik Kapsamı.
- Bireysel Kayıt menüsünden Birincil SAS Anahtarı .
IoT Hub (IDScope) ve DPS(RegistrationID, Simetrik Anahtar) değerlerini kopyalayıp betik bağımsız değişkenlerine yapıştırın.
IoT Hub DPS için Cloud-init betiği
#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 çalışma zamanını dağıtma
IoT Edge çalışma zamanının dağıtılması, yukarıda bahsedilen cloud-init betiğini kullanarak VM oluşturma işleminin bir parçasıdır.
VM ve IoT Edge çalışma zamanını dağıtmaya yönelik üst düzey adımlar şunlardır:
Azure Market'dan Ubuntu VM görüntüsünü alın. Ayrıntılı adımlar için Azure Stack Edge'iniz için VM görüntüsü oluşturmak üzere Azure Market görüntüsünü kullanma başlığındaki yönergeleri izleyin.
- Azure portalında Azure Market gidin.
- Azure Cloud Shell'e veya Azure CLI yüklü bir istemciye bağlanın. Ayrıntılı adımlar için bkz . Azure Cloud Shell'de Bash için Hızlı Başlangıç.
Not
Kabuk oturumunun kapatılması, kabuk oturumu sırasında oluşturulan tüm değişkenleri siler. Oturumu yeniden açmak için değişkenlerin yeniden oluşturması gerekir.
c. Aboneliği ayarlamak için aşağıdaki komutu çalıştırın.
az account set –subscription <subscription id>Ubuntu 20.04 LTS görüntüsünün Azure Market aramak için Azure Market resim arama'daki adımları kullanın.
Ubuntu 20.04 LTS görüntüsü örneği:
$urn = Canonical:0001-com-ubuntu-server-focal:20_04-lts:20.04.202007160Market görüntüsünden yeni bir yönetilen disk oluşturun. Ayrıntılı adımlar için bkz. Azure Stack Edge'iniz için VM görüntüsü oluşturmak için Azure Market görüntüsünü kullanma.
Yönetilen diskten bir VHD'yi Azure Depolama hesabına aktarın. Ayrıntılı adımlar için bkz . Yönetilen diskten Azure Depolama'ya VHD aktarma.
VM görüntüsünü kullanarak Ubuntu VM oluşturmak için bu adımları izleyin.
Gelişmiş sekmesinde cloud-init betiğini belirtin. VM oluşturmak için bkz. Azure portalı aracılığıyla GPU VM dağıtma veya Azure portalı aracılığıyla VM dağıtma.
IoT Hub veya DPS cihazına bağlanmak için cloud-init içinde uygun cihaz bağlantı dizesi belirtin. Ayrıntılı adımlar için bkz . Simetrik anahtarlarla sağlama veya IoT Hub DPS ile sağlama.
VM oluşturma sırasında cloud-init belirtmediyseniz, VM oluşturulduktan sonra IoT Edge çalışma zamanını el ile dağıtmanız gerekir:
- SSH aracılığıyla VM'ye bağlanın.
- Kapsayıcı altyapısını VM'ye yükleyin. Ayrıntılı adımlar için bkz . Simetrik anahtarları kullanarak Linux'ta IoT Edge cihazı oluşturma ve sağlama veya Hızlı Başlangıç - Azure portalı ile IoT Hub DPS'yi ayarlama.
IoT Edge çalışma zamanını doğrulama
IoT Edge çalışma zamanınızın çalıştığını doğrulamak için bu adımları kullanın.
Azure portalında IoT Hub kaynağına gidin.
IoT Edge cihazını seçin.
IoT Edge çalışma zamanının çalıştığını doğrulayın.
IoT Edge cihaz yapılandırmanızın sorunlarını gidermek için bkz . IoT Edge cihazınızda sorun giderme.
IoT Edge çalışma zamanını güncelleştirme
VM'yi güncelleştirmek için IoT Edge'i güncelleştirme başlığındaki yönergeleri izleyin. Azure IoT Edge'in en son sürümünü bulmak için bkz . Azure IoT Edge sürümleri.
Sonraki adımlar
Ubuntu VM'nizde bir IoT Edge modülü dağıtmak ve çalıştırmak için IoT Edge modüllerini dağıtma sayfasındaki adımlara bakın.
NVIDIA'nın DeepStream modülünü dağıtmak için bkz . GPU ile Azure Stack Edge Pro'da Ubuntu VM'de NVIDIA DeepStream modülünü dağıtma.
NVIDIA DIGITS'ı dağıtmak için bkz . Prefabrik bir NVIDIA modülünde GPU'ları etkinleştirme.