Simetrik anahtarı IoT Edge Linux üzerinde büyük ölçekte cihaz oluşturma ve sağlama
Uygulama hedefi:
IoT Edge 1,1 diğer sürümler: IoT Edge 1,2
Uygulama hedefi:
IoT Edge 1,2 diğer sürümler: IoT Edge 1,1
Bu makalede, simetrik anahtarlar kullanarak bir veya daha fazla Linux veya IoT Edge otomatik olarak sağlanabilir. Cihaz sağlama Azure IoT Edge (DPS) Azure IoT Hub cihazları otomatik olarak sebilirsiniz. Otomatik sağlama işlemini henüz biliyorsanız devam etmeden önce hazırlamaya genel bakış'ı gözden geçirin.
Görevler aşağıdaki gibidir:
- Tek bir cihaz için bireysel kayıt veya bir cihaz kümesi için grup kaydı oluşturun.
- IoT Edge çalışma zamanının yüklemesini ve IoT Hub.
İpucu
Basitleştirilmiş bir deneyim için, Azure IoT Edge aracını deneyin. Şu anda genel önizlemede olan bu komut satırı aracı, cihazınıza IoT Edge yüklüp DPS ve simetrik anahtar doğrulatı kullanarak sağlar.
Simetrik anahtar doğrulama, cihaz sağlama hizmeti örneğiyle bir cihazın kimlik doğrulamaya basit bir yaklaşımdır. Bu doğrulama yöntemi, cihaz sağlama konusunda yeni olan veya katı güvenlik gereksinimlerine sahip olan geliştiriciler için bir "Merhaba dünya" deneyimini temsil eder. TPM veya X.509 sertifikaları kullanan cihaz onayları daha güvenlidir ve daha sıkı güvenlik gereksinimleri için kullanılmalıdır.
Önkoşullar
Bulut kaynakları
- Etkin bir IoT hub'ı
- Azure'da IoT Hub IoT hub'ınıza bağlı bir cihaz sağlama hizmeti örneği
- Cihaz sağlama hizmeti örneğiniz yoksa Yeni bir IoT Hub cihaz sağlama hizmeti oluşturma ve IoT Hub cihaz sağlama hizmetinin IoT hub'ını ve cihaz sağlama hizmetinizi bağlama hızlı başlangıç bölümlerindeki yönergeleri takip edebilirsiniz.
- Cihaz sağlama hizmetini çalıştırdıktan sonra genel bakış sayfasından Kimlik Kapsamı değerini kopyalayın. Bu değeri, çalışma zamanı için IoT Edge kullanırsiniz.
Cihaz gereksinimleri
Fiziksel veya sanal Bir Linux cihazı, IoT Edge cihazdır.
Her cihazı tanımlamak için benzersiz bir kayıt kimliği tanımlamanız gerekir. MAC adresini, seri numarasını veya cihazdan herhangi bir benzersiz bilgiyi kullanabilirsiniz. Örneğin, bir MAC adresi ve seri numarasının bir bileşimini kullanarak kayıt kimliği için aşağıdaki dizeyi kullanabilirsiniz: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6 . Geçerli karakterler küçük harf alfasayısal ve tiredir ( - ).
Bir DPS kaydı oluşturma
DPS aracılığıyla bir veya daha fazla cihaz sağlamak için bir kayıt oluşturun.
Tek bir IoT Edge cihaz sağlamak istiyorsanız, tek bir kayıt oluşturun. Sağlanan birden çok cihaza ihtiyacınız varsa, bir DPS Grup kaydı oluşturma adımlarını izleyin.
DPS 'de bir kayıt oluşturduğunuzda, bir ilk cihaz ikizi durumu bildirme fırsatına sahip olursunuz. Device ikizi 'da, bir cihaz için gereken bölge, ortam, konum veya cihaz türü gibi herhangi bir ölçüme cihazları gruplamak için Etiketler ayarlayabilirsiniz. Bu Etiketler otomatik dağıtımlaroluşturmak için kullanılır.
Cihaz sağlama hizmetindeki kayıtlar hakkında daha fazla bilgi için bkz. cihaz kayıtlarını yönetme.
DPS bireysel kaydı oluşturma
İpucu
Bu makaledeki adımlar Azure portal yöneliktir, ancak Azure CLı kullanarak ayrı kayıtlar da oluşturabilirsiniz. Daha fazla bilgi için bkz. az IoT DPS kaydı. CLı komutunun bir parçası olarak, kaydın IoT Edge bir cihaz için olduğunu belirtmek üzere kenar özellikli bayrağını kullanın.
Azure Portal, IoT Hub cihaz sağlama hizmeti örneğinize gidin.
Ayarlar altında kayıtları yönet' i seçin.
Bireysel kayıt Ekle ' yi seçin, ardından kaydı yapılandırmak için aşağıdaki adımları izleyin:
Mekanizma Için simetrik anahtar' ı seçin.
Cihazınız için benzersiz bir kayıt kimliği sağlayın.
İsteğe bağlı olarak, cihazınız için bir IoT Hub CIHAZ kimliği sağlayın. Modül dağıtımı için tek bir cihazı hedeflemek üzere cihaz kimliklerini kullanabilirsiniz. Bir cihaz KIMLIĞI sağlamazsanız, kayıt KIMLIĞI kullanılır.
Kaydın IoT Edge bir cihaz için olduğunu bildirmek için true ' ı seçin.
İsteğe bağlı olarak, Ilk cihaz Ikizi durumuna bir etiket değeri ekleyin. Modül dağıtımı için cihaz gruplarını hedeflemek üzere etiketleri kullanabilirsiniz. Örnek:
{ "tags": { "environment": "test" }, "properties": { "desired": {} } }Kaydet’i seçin.
IoT Edge çalışma zamanını yüklerken kullanılacak tek kayıt birincil anahtar değerini kopyalayın.
Bu cihaz için bir kayıt mevcut olduğuna göre, IoT Edge çalışma zamanı cihazı yükleme sırasında otomatik olarak sağlayabilir.
Yükleme IoT Edge
Bu bölümde Linux VM'nizi veya fiziksel cihazınızı sanal makineniz için IoT Edge. Ardından, IoT Edge.
Uygulama çalışma zamanının yüklenmeye hazır olması için önce cihazınıza iki IoT Edge gerekir. Cihazınızın Microsoft yükleme paketlerine erişmesi ve bir kapsayıcı altyapısının yüklü olması gerekir.
Microsoft yükleme paketlerine erişme
Cihazınızın işletim sistemiyle eşleşen depo yapılandırma paketini indirin.
Ubuntu Server 18.04:
curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb > ./packages-microsoft-prod.debRaspberry Pi OS Stretch:
curl https://packages.microsoft.com/config/debian/stretch/multiarch/packages-microsoft-prod.deb > ./packages-microsoft-prod.deb
Microsoft'un paket deposunu ve GPG ortak anahtarını eklemek için yapılandırma paketini yükleyin.
sudo apt install ./packages-microsoft-prod.deb
Not
Azure IoT Edge paketleri, her pakette ( veya dizininde) bulunan lisans usr/share/doc/{package-name} koşullarına LICENSE tabi olur. Paket kullanmadan önce lisans koşullarını okuyun. Paketin yüklenmesi ve kullanımı, bu koşulları kabul ettiğiniz anlamına geldi. Lisans koşullarını kabul etmiyorsanız bu paketi kullanmayın.
Kapsayıcı altyapısı yükleme
Azure IoT Edge OCI ile uyumlu bir kapsayıcı çalışma zamanı kullanılır. Üretim senaryoları için Moby altyapısını kullanmanizi öneririz. Moby altyapısı, resmi olarak IoT Edge. Docker CE/EE kapsayıcı görüntüleri Moby çalışma zamanıyla uyumludur.
Cihazınızın paket listelerini güncelleştirin.
sudo apt-get updateMoby altyapısını yükleyin.
sudo apt-get install moby-engineİpucu
Moby kapsayıcı altyapısını yükleme sırasında hatayla karşınıza çıkarsanız Linux çekirdeğinizin Moby uyumluluğunu doğrulayın. Bazı katıştırılmış cihaz üreticileri, kapsayıcı altyapısı uyumluluğu için gerekli özellikler olmadan özel Linux çekirdekleri içeren cihaz görüntülerini göndermektedir. Çekirdek yapılandırmanızı kontrol etmek için Moby tarafından sağlanan check-config betiği kullanan aşağıdaki komutu çalıştırın:
curl -ssl https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh -o check-config.sh chmod +x check-config.sh ./check-config.shBetiğin çıkışında, ve altındaki tüm öğelerin
Generally NecessaryNetwork Driversetkinleştirildiğinden kontrol edin. Özellikleriniz eksikse, çekirdeğinizi kaynaktan yeniden oluşturarak ve uygun çekirdek kaynağına dahil etmek için ilişkili modülleri seçerek bunları .config. Benzer şekilde, veya gibi bir çekirdek yapılandırma oluşturucu kullanıyorsanız ilgili özellikleri bulup etkinleştirin ve çekirdeğinizidefconfiguygun şekilde yeniden oluşturmanızmenuconfiggerekir. Yeni değiştirilen çekirdeğinizi dağıttıktan sonra, tüm gerekli özelliklerin başarıyla etkinleştirildiğinden emin olmak için check-config betiği yeniden çalıştırın.
IoT Edge çalışma zamanını yükleme
Bu IoT Edge güvenlik daemon'ı, cihaz üzerinde güvenlik IoT Edge sağlar ve sürdürür. Daemon her önyüklemede başlar ve çalışma zamanının geri kalanını başlatarak IoT Edge başlatır.
Bu bölümdeki adımlar, internet bağlantısı olan bir cihaza en son sürümü yüklemek için tipik bir işlemi temsil ediyor. Yayın öncesi sürüm gibi belirli bir sürümü yüklemeniz veya çevrimdışıyken yüklemeniz gerekirse, bu makalenin devamlarında Çevrimdışı veya belirli bir sürüm yükleme adımlarını izleyin.
Cihazınızın paket listelerini güncelleştirin.
sudo apt-get update
libiothsm-std paketiyle IoT Edge 1.1.* sürümünü yükleyin:
sudo apt-get install iotedge
Not
IoT Edge 1.1, 1.1 sürümünün uzun süreli destek IoT Edge. Daha eski bir sürüm çalıştırdıysanız, eski sürümler artık destekçi olmadığı için en son düzeltme ekini yüklemenizi veya güncelleştirmenizi öneririz.
IoT Edge hizmeti, cihaz üzerinde güvenlik standartları sağlar ve IoT Edge sağlar. Hizmet her önyüklemede başlar ve çalışma zamanının geri kalanını başlatarak IoT Edge başlatır.
IoT kimlik hizmeti, IoT Edge'nin 1.2 sürümüyle birlikte IoT Edge. Bu hizmet, IoT Edge ve IoT Edge iletişim kurması gereken diğer cihaz bileşenleri için kimlik sağlama ve IoT Hub.
Bu bölümdeki adımlar, internet bağlantısı olan bir cihaza en son sürümü yüklemek için tipik bir işlemi temsil ediyor. Yayın öncesi sürüm gibi belirli bir sürümü yüklemeniz veya çevrimdışıyken yüklemeniz gerekirse, bu makalenin devamlarında Çevrimdışı veya belirli bir sürüm yükleme adımlarını izleyin.
Not
Bu bölümdeki adımlarda, 1.2 IoT Edge yükleme adımları açık ve açık bir şekilde 2.
Zaten eski bir IoT Edge çalıştıran bir IoT Edge cihazınız varsa ve 1.2'ye yükseltmek için, IoT Edge güvenlik daemon'larını ve çalışma zamanlarını güncelleştirme adımlarını kullanın. Sürüm 1.2, yükseltme için gerekli olan IoT Edge önceki sürümlerden yeterince farklıdır.
Cihazınızın paket listelerini güncelleştirin.
sudo apt-get update
IoT Edge ve IoT kimlik hizmetinin hangi sürümlerinin kullanılabilir olduğunu kontrol edin.
apt list -a aziot-edge aziot-identity-service
IoT Edge ve IoT kimlik hizmeti paketinin en son sürümünü yüklemek için aşağıdaki komutu kullanın:
sudo apt-get install aziot-edge
Cihazı bulut kimliğiyle sağlama
Çalışma zamanı cihazınıza yüklendikten sonra, cihazı cihaz sağlama hizmetine bağlanmak ve cihazı bağlamak için kullandığı bilgilerle IoT Hub.
Aşağıdaki bilgileri hazırlayın:
- DPS Kimlik Kapsamı değeri
- Oluşturduğunuz cihaz Kayıt Kimliği
- Bireysel bir kayıttan Birincil Anahtar veya grup kaydı kullanan cihazlar için türetilmiş anahtar.
Yapılandırma dosyasını IoT Edge açın.
sudo nano /etc/iotedge/config.yamlDosyanın sağlama yapılandırmaları bölümünü bulun. DPS simetrik anahtar sağlama için satırları açıklama satırı yapma ve diğer sağlama satırlarının açıklama satırı yapmalarını sağlama.
Satırda
provisioning:daha önce boşluk yoktur ve iç içe geçmiş öğeler iki boşlukla girintilemeli.# DPS TPM provisioning configuration provisioning: source: "dps" global_endpoint: "https://global.azure-devices-provisioning.net" scope_id: "PASTE_YOUR_SCOPE_ID_HERE" attestation: method: "symmetric_key" registration_id: "PASTE_YOUR_REGISTRATION_ID_HERE" symmetric_key: "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE" # always_reprovision_on_startup: true # dynamic_reprovisioning: false, ve değerlerini
scope_idregistration_idsymmetric_keyDPS ve cihaz bilgileriyle güncelleştirin.İsteğe bağlı olarak,
always_reprovision_on_startupdynamic_reprovisioningcihazınızın yeniden sağlarken davranışını yapılandırmak için veya satırlarını kullanın. Bir cihaz başlangıçta yeniden sağlama olarak ayarlanırsa, önce her zaman DPS ile sağlamayı ve ardından başarısız olursa sağlama yedeklemeye geri döner. Bir cihaz dinamik olarak yeniden oluşturma olarak ayarlanırsa, IoT Edge yeniden oluşturma olayı algılanırsa yeniden başlatılır ve yeniden sağlar. Daha fazla bilgi için bkz. IoT Hub yeniden proje kavramları.Cihazda IoT Edge tüm yapılandırma değişikliklerini alması için çalışma zamanının yeniden başlatılmasını sağlar.
sudo systemctl restart iotedge
Cihazınız için, cihaz yüklemesi kapsamında sağlanan bir şablon dosyasını temel alan bir IoT Edge oluşturun.
sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.tomlYapılandırma dosyasını IoT Edge açın.
sudo nano /etc/aziot/config.tomlDosyanın Sağlama bölümünü bulun. DPS sağlama satırlarını simetrik anahtarla açıklama satırı yapma ve diğer sağlama satırlarının açıklama satırı yapmalarını sağlama.
# DPS provisioning with symmetric key [provisioning] source = "dps" global_endpoint = "https://global.azure-devices-provisioning.net" id_scope = "PASTE_YOUR_SCOPE_ID_HERE" [provisioning.attestation] method = "symmetric_key" registration_id = "PASTE_YOUR_REGISTRATION_ID_HERE" symmetric_key = "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE", ve değerlerini
id_scoperegistration_idsymmetric_keyDPS ve cihaz bilgileriyle güncelleştirin.Simetrik anahtar parametresi satır içi anahtarın, dosya URI'sini veya PKCS#11 URI'sini kabul eder. Hangi biçimi kullanmakta olduğunu temel alarak yalnızca bir simetrik anahtar çizgisinin yorumlarını geri çekebilirsiniz.
PKCS#11 URL'leri kullanıyorsanız, yapılandırma dosyasındaki PKCS#11 bölümünü bulun ve PKCS#11 yapılandırmanız hakkında bilgi sağlar.
config.toml dosyasını kaydedin ve kapatın.
Uygulama için yaptığınız yapılandırma değişikliklerini IoT Edge.
sudo iotedge config apply
Yüklemenin başarılı olduğunu doğrulama
Çalışma zamanı başarıyla başlatıldısa, uygulamanıza gidebilir IoT Hub ve cihazınıza IoT Edge modülleri dağıtmaya başlayabilirsiniz.
Cihaz sağlama hizmette oluşturduğunuz bireysel kaydın kullan olduğunu doğruabilirsiniz. Uygulamanın cihaz sağlama hizmeti örneğine Azure portal. Oluşturduğunuz bireysel kayıt için kayıt ayrıntılarını açın. Kaydın durumunun atandığına ve cihaz kimliğinin listelenmiş olduğunu fark edin.
Aşağıdaki komutları kullanarak cihazın başarıyla yük IoT Edge doğrulayın.
IoT Edge hizmetinin durumunu kontrol edin.
systemctl status iotedge
Hizmet günlüklerini inceleme.
journalctl -u iotedge --no-pager --no-full
Çalışan modülleri listele.
iotedge list
IoT Edge hizmetinin durumunu kontrol edin.
sudo iotedge system status
Hizmet günlüklerini inceleme.
sudo iotedge system logs
Çalışan modülleri listele.
sudo iotedge list
Sonraki adımlar
Cihaz sağlama hizmeti kayıt işlemi, yeni cihazı sağlarken aynı anda cihaz kimliği ve cihaz ikizi etiketlerini ayarlamaya olanak sağlar. Otomatik cihaz yönetimini kullanarak tek tek cihazları veya cihaz gruplarını hedeflemek için bu değerleri kullanabilirsiniz. Azure CLI kullanarak veya IoT Edge modülleri büyük ölçekte dağıtmayı Azure portal izleme hakkında bilgi edinin.