Simetrik anahtarları kullanarak Linux'ta IoT Edge cihazı oluşturma ve sağlama
Şunlar için geçerlidir: IoT Edge 1.4
Bu makalede, IoT Edge yüklemeyi de içeren bir Linux IoT Edge cihazı kaydetmeye ve sağlamaya yönelik uçtan uca yönergeler sağlanır.
IoT hub'ına bağlanan her cihazın buluttan cihaza veya cihazdan buluta iletişimlerini izlemek için kullanılan bir cihaz kimliği vardır. Bir cihazı aşağıdakiler dahil olmak üzere bağlantı bilgileriyle yapılandırabilirsiniz:
- IoT hub ana bilgisayar adı
- Cihaz Kimliği
- IoT Hub bağlanmak için kimlik doğrulama ayrıntıları
Bu makaledeki adımlarda, tek bir cihazı IoT hub'ına bağladığınız el ile sağlama adlı işlem adım adım izlenmiştir. El ile sağlama için, IoT Edge cihazların kimliğini doğrulamak için iki seçeneğiniz vardır:
Simetrik anahtarlar: IoT Hub'da yeni bir cihaz kimliği oluşturduğunuzda hizmet iki anahtar oluşturur. Anahtarlardan birini cihaza yerleştirirsiniz ve kimlik doğrulaması sırasında IoT Hub anahtarı sunar.
Bu kimlik doğrulama yöntemini kullanmaya başlamak daha hızlıdır ancak bu kadar güvenli değildir.
X.509 otomatik olarak imzalanan: İki X.509 kimlik sertifikası oluşturur ve bunları cihaza yerleştirirsiniz. IoT Hub'da yeni bir cihaz kimliği oluşturduğunuzda, her iki sertifikadan da parmak izi sağlarsınız. Cihaz IoT Hub kimliğini doğruladığında bir sertifika sunar ve IoT Hub sertifikanın parmak iziyle eşleşip eşleşmediğini doğrular.
Bu kimlik doğrulama yöntemi daha güvenlidir ve üretim senaryoları için önerilir.
Bu makale, kimlik doğrulama yönteminiz olarak simetrik anahtarların kullanılmasını kapsar. X.509 sertifikalarını kullanmak istiyorsanız bkz. X.509 sertifikalarını kullanarak Linux'ta IoT Edge cihazı oluşturma ve sağlama.
Not
Ayarlamanız gereken çok sayıda cihazınız varsa ve her birini el ile sağlamak istemiyorsanız, IoT Edge IoT Hub cihaz sağlama hizmetiyle nasıl çalıştığını öğrenmek için aşağıdaki makalelerden birini kullanın:
Önkoşullar
Bu makalede, IoT Edge cihazınızı kaydetme ve cihazınıza IoT Edge (IoT Edge çalışma zamanı olarak da adlandırılır) yükleme gösterilmektedir. Cihazınızı kaydedip yüklemeden önce azure CLI gibi istediğiniz cihaz yönetim aracına ve cihaz gereksinimlerine sahip olduğunuzdan emin olun.
Cihaz yönetimi araçları
Cihazınızı kaydetme adımları için Azure portal, Visual Studio Code veya Azure CLI kullanabilirsiniz. Her yardımcı programın kendi önkoşulları vardır veya yüklenmesi gerekebilir:
Azure aboneliğinizde ücretsiz veya standart bir IoT hub'ı .
Cihaz gereksinimleri
X64, ARM32 veya ARM64 Linux cihazı.
Microsoft, çeşitli işletim sistemleri için yükleme paketleri yayımlar.
Üretim senaryolarında şu anda hangi işletim sistemlerinin desteklendiği hakkında en son bilgiler için bkz. Azure IoT Edge desteklenen sistemler.
Visual Studio Code uzantıları
Visual Studio Code kullanıyorsanız cihaz oluşturma ve yönetim sürecini kolaylaştıracak yararlı Azure IoT uzantıları vardır.
Hem Azure IoT Edge hem de Azure IoT Hub uzantılarını yükleyin:
Cihazınızı kaydetme
Tercihinize bağlı olarak cihazınızı kaydetmek için Azure portal, Visual Studio Code veya Azure CLI kullanabilirsiniz.
Azure portal IoT hub'ınızda, IoT Edge cihazlar kenar etkin olmayan IoT cihazlarından ayrı olarak oluşturulur ve yönetilir.
Azure portal oturum açın ve IoT hub'ınıza gidin.
Sol bölmede, menüden Cihazlar'ı ve ardından Cihaz Ekle'yi seçin.
Cihaz oluştur sayfasında aşağıdaki bilgileri sağlayın:
- Açıklayıcı bir Cihaz Kimliği oluşturun, örneğin
my-edge-device-1
(tümü küçük harf). Daha sonra kullanacağınız için bu Cihaz Kimliğini kopyalayın. - cihaz IoT Edge onay kutusunu işaretleyin.
- Kimlik doğrulama türü olarak Simetrik anahtar'ı seçin.
- Yeni cihazı hub'ınıza bağlayan kimlik doğrulama anahtarlarını otomatik olarak oluşturmak için varsayılan ayarları kullanın.
- Açıklayıcı bir Cihaz Kimliği oluşturun, örneğin
Kaydet’i seçin.
Yeni cihazınızın IoT hub'ınızda listelendiğini görmeniz gerekir.
artık IoT Hub kayıtlı bir cihazınız olduğuna göre, sonraki adımda IoT Edge çalışma zamanının yüklenmesini ve sağlanmasını tamamlamak için kullanılan sağlama bilgilerini alabilirsiniz.
Kayıtlı cihazları görüntüleme ve sağlama bilgilerini alma
Simetrik anahtar kimlik doğrulaması kullanan cihazlar, IoT Edge çalışma zamanının yüklenmesini ve sağlanmasını tamamlamak için bağlantı dizelerine ihtiyaç duyar. Bağlantı dizesi, cihazı oluşturduğunuzda IoT Edge cihazınız için oluşturulur. Visual Studio Code ve Azure CLI için bağlantı dizesi JSON çıkışındadır. Cihazınızı oluşturmak için Azure portal kullanırsanız bağlantı dizesini cihazın kendisinden bulabilirsiniz. IoT hub'ınızda cihazınızı seçtiğinizde cihaz sayfasında olduğu gibi Primary connection string
listelenir.
IoT hub'ınıza bağlanan uç özellikli cihazlar, IoT hub'ınızın Cihazlar sayfasında listelenir. Birden çok cihazınız varsa IoT Edge Cihazları türünü seçip Uygula'yı seçerek listeyi filtreleyebilirsiniz.
Cihazınızı ayarlamaya hazır olduğunuzda, fiziksel cihazınızı IoT hub'ında kimliğine bağlayan bağlantı dizesine ihtiyacınız vardır. Simetrik anahtarlarla kimlik doğrulaması yapılan cihazların bağlantı dizeleri portalda kopyalanabilir. Bağlantı dizenizi portalda bulmak için:
- Cihazlar sayfasından listeden IoT Edge cihaz kimliğini seçin.
- Birincil Bağlantı Dizesi veya İkincil Bağlantı Dizesi değerini kopyalayın. İki anahtar da çalışır.
yükleme IoT Edge
Bu bölümde, Linux sanal makinenizi veya fiziksel cihazınızı IoT Edge için hazırlarsınız. Ardından IoT Edge yüklersiniz.
Paket deposunu eklemek için aşağıdaki komutları çalıştırın ve ardından Microsoft paket imzalama anahtarını güvenilen anahtarlar listenize ekleyin.
Önemli
30 Haziran 2022'de Raspberry Pi OS Stretch, Katman 1 işletim sistemi destek listesinden kullanımdan kaldırıldı. Olası güvenlik açıklarını önlemek için ana işletim sisteminizi Bullseye'ye güncelleştirin.
Yükleme birkaç komutla gerçekleştirilebilir. Bir terminal açın ve aşağıdaki komutları çalıştırın:
22.04:
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
20.04:
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
18.04:
wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
İşletim sistemi sürümleri hakkında daha fazla bilgi için bkz. Azure IoT Edge desteklenen platformlar.
Not
Azure IoT Edge yazılım paketleri, her pakette (usr/share/doc/{package-name}
veya dizinde) bulunan lisans koşullarına LICENSE
tabidir. Paket kullanmadan önce lisans koşullarını okuyun. Bir paketi yüklemeniz ve kullanmanız, bu koşulları kabul ettiğinizi oluşturur. Lisans koşullarını kabul etmiyorsanız bu paketi kullanmayın.
Kapsayıcı altyapısı yükleme
Azure IoT Edge, OCI uyumlu bir kapsayıcı çalışma zamanı kullanır. Üretim senaryoları için Moby altyapısını kullanmanızı öneririz. Moby altyapısı, resmi olarak IoT Edge ile desteklenen tek kapsayıcı motorudur. Docker CE/EE kapsayıcı görüntüleri Moby çalışma zamanıyla uyumludur.
Moby altyapısını yükleyin.
sudo apt-get update; \
sudo apt-get install moby-engine
Varsayılan olarak, Moby kapsayıcı altyapısı kapsayıcı günlüğü boyut sınırları ayarlamaz. Zaman içinde bu, cihazın günlüklerle dolmasına ve disk alanının bitmesine neden olabilir. Ancak, isteğe bağlı olsa da günlüğünüzü yerel olarak gösterilecek şekilde yapılandırabilirsiniz. Günlük yapılandırması hakkında daha fazla bilgi edinmek için bkz . Üretim Dağıtımı Denetim Listesi.
Aşağıdaki adımlar, kapsayıcınızı günlüğe kaydetme mekanizması olarak günlük sürücüsünü kullanacaklocal
şekilde nasıl yapılandırabileceğinizi gösterir.
Dosyasını oluşturun (dosya henüz orada değilse) veya Docker daemon'un yapılandırma dosyasını adresinde
/etc/docker/daemon.json
açın.Aşağıdaki örnekte gösterildiği gibi varsayılan günlük sürücüsünü
local
günlüğe kaydetme sürücüsü olarak ayarlayın.{ "log-driver": "local" }
Değişikliklerin etkili olması için kapsayıcı altyapısını yeniden başlatın.
sudo systemctl restart docker
İpucu
Moby kapsayıcı altyapısını yüklerken hata alırsanız, Moby uyumluluğu için Linux çekirdeğinizi 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önderir. Çekirdek yapılandırmanızı denetlemek için Moby tarafından sağlanan check-config betiğini 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.sh
Betiğin çıkışında ve
Network Drivers
altındakiGenerally Necessary
tüm öğelerin etkinleştirilip etkinleştirilmediğini denetleyin. Eksik özellikler varsa, kaynaktan çekirdeğinizi yeniden oluşturup uygun çekirdek .config dahil etmek üzere ilişkili modülleri seçerek bunları etkinleştirin. Benzer şekilde, veyamenuconfig
gibidefconfig
bir çekirdek yapılandırma oluşturucu kullanıyorsanız ilgili özellikleri bulup etkinleştirin ve buna göre çekirdeğinizi yeniden oluşturun. Yeni değiştirilen çekirdeğinizi dağıttıktan sonra, tüm gerekli özelliklerin başarıyla etkinleştirildiğini doğrulamak için check-config betiğini yeniden çalıştırın.
IoT Edge çalışma zamanını yükleme
IoT Edge hizmeti, IoT Edge cihazında güvenlik standartlarını sağlar ve korur. Hizmet her önyüklemede başlar ve IoT Edge çalışma zamanının geri kalanını başlatarak cihazı bootstraplar.
Not
1.2 sürümünden başlayarak IoT kimlik hizmeti, IoT Edge ve IoT Hub ile iletişim kurması gereken diğer cihaz bileşenleri için kimlik sağlama ve yönetimi gerçekleştirir.
Bu bölümdeki adımlar, İnternet bağlantısı olan bir cihaza en son IoT Edge sürümünü yükleme işlemini gösterir. Yayın öncesi sürüm gibi belirli bir sürümü yüklemeniz veya çevrimdışıyken yüklemeniz gerekiyorsa, bu makalenin devamında yer alan Çevrimdışı veya belirli bir sürüm yükleme adımlarını izleyin.
İpucu
Daha eski bir sürümü çalıştıran bir IoT Edge cihazınız zaten varsa ve en son sürüme yükseltmek istiyorsanız, IoT Edge güvenlik daemon'ını ve çalışma zamanını güncelleştirme adımlarını kullanın. Sonraki sürümler, yükseltme için belirli adımların gerekli olduğu IoT Edge önceki sürümlerinden yeterince farklıdır.
IoT Edge ve IoT kimlik hizmeti paketinin en son sürümünü yükleyin (henüz güncel değilseniz):
22.04:
sudo apt-get update; \ sudo apt-get install aziot-edge
20.04 veya 18.04:
sudo apt-get update; \ sudo apt-get install aziot-edge defender-iot-micro-agent-edge
İsteğe bağlı defender-iot-micro-agent-edge
paket, IoT Edge cihazlarınızın güvenliğini sağlamanıza yardımcı olmak için güvenlik duruşu yönetimi, güvenlik açıkları, tehdit algılama, filo yönetimi ve daha fazlası için uç nokta görünürlüğü sağlayan IoT güvenlik mikro aracısı için Microsoft Defender içerir. Edge cihazlarınızın güvenlik izlemesini ve sağlamlaştırmasını etkinleştirmek için mikro aracıyı Edge aracısıyla yüklemeniz önerilir. IoT Microsoft Defender hakkında daha fazla bilgi edinmek için bkz. Cihaz oluşturucuları için IoT için Microsoft Defender nedir?
Cihazı bulut kimliğiyle sağlama
Kapsayıcı altyapısı ve IoT Edge çalışma zamanı cihazınıza yüklendiğinden, cihazı bulut kimliği ve kimlik doğrulama bilgileriyle ayarlamaya hazırsınız demektir.
Aşağıdaki komutu kullanarak IoT Edge cihazınızı simetrik anahtar kimlik doğrulamasıyla hızla yapılandırabilirsiniz:
sudo iotedge config mp --connection-string 'PASTE_DEVICE_CONNECTION_STRING_HERE'
Bu iotedge config mp
komut cihazda bir yapılandırma dosyası oluşturur ve bağlantı dizenizi yapılandırma dosyasına girer.
Yapılandırma değişikliklerini uygulayın.
sudo iotedge config apply
Yapılandırma dosyasını görüntülemek için dosyayı açabilirsiniz:
sudo nano /etc/aziot/config.toml
Modülleri dağıtma
IoT Edge modüllerinizi dağıtmak için Azure portal IoT hub'ınıza gidin ve ardından:
IoT Hub menüsünden Cihazlar'ı seçin.
Sayfayı açmak için cihazınızı seçin.
Modülleri Ayarla sekmesini seçin.
Varsayılan IoT Edge modülleri (edgeAgent ve edgeHub) dağıtmak istediğimizden bu bölmeye modül eklememiz gerekmez, bu nedenle en alttaki Gözden geçir + oluştur'u seçin.
Modüllerinizin JSON onayını görürsünüz. Modülleri dağıtmak için Oluştur'u seçin.
Daha fazla bilgi için bkz . Modül dağıtma.
Yapılandırmanın başarılı olduğunu doğrulama
Çalışma zamanının IoT Edge cihazınıza başarıyla yüklendiğini ve yapılandırıldığını doğrulayın.
İpucu
iotedge
komutlarını çalıştırmak için yükseltilmiş ayrıcalıklara ihtiyacınız olacaktır. Makinenizdeki oturumu kapattıktan sonra IoT Edge çalışma zamanını yükleyip oturum açtığınızda izinleriniz otomatik olarak güncelleştirilir. O zamana kadar komutların önünde kullanın sudo
.
IoT Edge sistem hizmetinin çalıştığını denetleyin.
sudo iotedge system status
Başarılı bir durum yanıtı,
aziot
hizmetleri çalışıyor veya hazır olarak gösterir.Hizmetle ilgili sorunları gidermeniz gerekirse hizmet günlüklerini alın.
sudo iotedge system logs
check
Cihazın yapılandırmasını ve bağlantı durumunu doğrulamak için aracı kullanın.sudo iotedge check
Tamam (yeşil), Uyarı (sarı) veya Hata (kırmızı) içerebilecek bir dizi yanıt bekleyebilirsiniz.
İpucu
İzinleriniz güncelleştirildikten sonra bile denetim aracını çalıştırmak için her zaman kullanın
sudo
. Aracın yapılandırma durumunu doğrulamak için yapılandırma dosyasına erişmek için yükseltilmiş ayrıcalıklara ihtiyacı vardır.Not
Yeni sağlanan bir cihazda IoT Edge Hub ile ilgili bir hata görebilirsiniz:
üretime hazır ×: Edge Hub'ın depolama dizini konak dosya sisteminde kalıcı hale geldi - HataEdgeHub kapsayıcısının geçerli durumu denetlenemedi
IoT Edge Hub modülü henüz çalışmadığından yeni sağlanan bir cihazda bu hata beklenir. IoT Edge modüllerinizin önceki adımlarda dağıtıldığından emin olun. Dağıtım bu hatayı çözer.
Alternatif olarak, durum kodunu olarak
417 -- The device's deployment configuration is not set
görebilirsiniz. Modülleriniz dağıtıldıktan sonra bu durum değişir.Hizmet ilk kez başlatıldığında yalnızca edgeAgent modülünün çalıştığını görmeniz gerekir. edgeAgent modülü varsayılan olarak çalışır ve cihazınıza dağıttığınız ek modüllerin yüklenmesine ve başlatılmasına yardımcı olur.
cihaz sayfanızı Azure portal görüntüleyerek cihazınızın ve modüllerinizin dağıtılıp dağıtılmadığını ve çalıştığını denetleyin.
Modülleriniz dağıtılıp çalıştırıldıktan sonra aşağıdaki komutu kullanarak bunları cihazınızda veya sanal makinenizde listeleyin:
sudo iotedge list
Çevrimdışı veya belirli bir sürüm yüklemesi (isteğe bağlı)
Bu bölümdeki adımlar, standart yükleme adımları kapsamında olmayan senaryolara yöneliktir. Bu şunları içerebilir:
- Çevrimdışıyken IoT Edge yükleme
- Sürüm adayı sürümünü yükleme
Azure IoT Edge çalışma zamanının paket yöneticiniz aracılığıyla kullanılamayan belirli bir sürümünü yüklemek istiyorsanız bu bölümdeki adımları kullanın. Microsoft paket listesi yalnızca sınırlı sayıda son sürümü ve bunların alt sürümlerini içerir, bu nedenle bu adımlar eski bir sürümü veya sürüm adayı sürümünü yüklemek isteyen herkese yöneliktir.
Curl komutlarını kullanarak bileşen dosyalarını doğrudan IoT Edge GitHub deposundan hedefleyebilirsiniz.
Not
Cihazınızda şu anda sürüm 1.1 veya daha eski IoT Edge çalışıyorsa, bu bölümdeki adımları izlemeden önce iotedge ve libiothsm-std paketlerini kaldırın. Daha fazla bilgi için bkz . 1.0 veya 1.1 sürümünden en son sürüme güncelleştirme.
Azure IoT Edge sürümlerine gidin ve hedeflemek istediğiniz yayın sürümünü bulun.
Bu sürüm için Varlıklar bölümünü genişletin.
Her sürümde IoT Edge ve kimlik hizmeti için yeni dosyalar olmalıdır. çevrimdışı bir cihaza IoT Edge yükleyecekseniz bu dosyaları önceden indirin. Aksi takdirde, bu bileşenleri güncelleştirmek için aşağıdaki komutları kullanın.
IoT Edge cihazınızın mimarisiyle eşleşen aziot-identity-service dosyasını bulun. Dosya bağlantısına sağ tıklayın ve bağlantı adresini kopyalayın.
Kimlik hizmetinin bu sürümünü yüklemek için aşağıdaki komuttaki kopyalanan bağlantıyı kullanın:
curl -L <identity service link> -o aziot-identity-service.deb && sudo apt-get install ./aziot-identity-service.deb
IoT Edge cihazınızın mimarisiyle eşleşen aziot-edge dosyasını bulun. Dosya bağlantısına sağ tıklayın ve bağlantı adresini kopyalayın.
IoT Edge'nin bu sürümünü yüklemek için aşağıdaki komutta yer alan kopyalanan bağlantıyı kullanın.
curl -L <iotedge link> -o aziot-edge.deb && sudo apt-get install ./aziot-edge.deb
Artık kapsayıcı altyapısı ve IoT Edge çalışma zamanı cihazınıza yüklendiğine göre, cihazı bulut kimliğiyle sağlamak olan bir sonraki adıma hazırsınız demektir.
IoT Edge kaldırma
cihazınızdan IoT Edge yüklemesini kaldırmak istiyorsanız aşağıdaki komutları kullanın.
IoT Edge çalışma zamanını kaldırın.
sudo apt-get autoremove --purge aziot-edge
IoT Edge yeniden yüklemeyi planlıyorsanız bayrağını atlayın --purge
ve gelecekte aynı yapılandırma bilgilerini kullanın. Bayraklar--purge
, yapılandırma dosyalarınız dahil olmak üzere IoT Edge ile ilişkili tüm dosyaları siler.
IoT Edge çalışma zamanı kaldırıldığında, oluşturduğu tüm kapsayıcılar durdurulur ancak cihazınızda hala bulunur. Hangilerinin kaldığını görmek için tüm kapsayıcıları görüntüleyin.
sudo docker ps -a
İki çalışma zamanı kapsayıcısı dahil olmak üzere kapsayıcıları cihazınızdan silin.
sudo docker rm -f <container name>
Son olarak, kapsayıcı çalışma zamanını cihazınızdan kaldırın.
sudo apt-get autoremove --purge moby-engine