Aracılığıyla paylaş


Simetrik anahtarları kullanarak Linux üzerinde IoT Edge cihazı oluşturma ve sağlama

Şunlar için geçerlidir: evet simgesi IoT Edge 1.1

Önemli

IoT Edge 1.1 destek sonu tarihi 13 Aralık 2022'ydi. Bu ürünün, hizmetin, teknolojinin veya API’nin nasıl desteklendiği hakkında bilgi edinmek için Microsoft Ürün Yaşam Döngüsü’ne göz atın. IoT Edge'in en son sürümüne güncelleştirme hakkında daha fazla bilgi için bkz . IoT Edge'i güncelleştirme.

Bu makalede, IoT Edge'i yükleme de dahil olmak üzere bir Linux IoT Edge cihazı kaydetme ve sağlama için uçtan uca yönergeler sağlanır.

IoT hub'ına bağlanan her cihazda, buluttan cihaza veya cihazdan buluta iletişimi izlemek için kullanılan bir cihaz kimliği vardır. Bir cihazı IoT hub ana bilgisayar adı, cihaz kimliği ve cihazın IoT Hub'da kimlik doğrulaması için kullandığı bilgileri içeren bağlantı bilgileriyle yapılandırabilirsiniz.

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ı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 anahtarı IoT Hub'a 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'da kimlik doğrulaması yaparken 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

Ayarlayıp her birini el ile sağlamak istemiyorsanız, IoT Edge'in IoT Hub cihaz sağlama hizmetiyle nasıl çalıştığını öğrenmek için aşağıdaki makalelerden birini kullanın:

Önkoşullar

Bu makale, IoT Edge cihazınızı kaydetmeyi ve üzerine IoT Edge yüklemeyi kapsar. Bu görevlerin farklı önkoşulları ve bunları gerçekleştirmek için kullanılan yardımcı programları vardır. Devam etmeden önce tüm önkoşulları karşıladığınızdan emin olun.

Cihaz yönetimi araçları

Cihazınızı kaydetme adımları için Azure portalı, Visual Studio Code veya Azure CLI'yı kullanabilirsiniz. Her yardımcı programın kendi önkoşulları vardır:

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 tarafından desteklenen sistemler.

Cihazınızı kaydetme

Tercihinize bağlı olarak cihazınızı kaydetmek için Azure portalı, Visual Studio Code veya Azure CLI'yı kullanabilirsiniz.

Azure portalındaki IoT hub'ınızda IoT Edge cihazları, edge etkin olmayan IoT cihazlarından ayrı olarak oluşturulur ve yönetilir.

  1. Azure portalında oturum açın ve IoT hub'ınıza gidin.

  2. Sol bölmede menüden Cihazlar'ı ve ardından Cihaz Ekle'yi seçin.

  3. Cihaz oluştur sayfasında aşağıdaki bilgileri sağlayın:

    • Açıklayıcı bir cihaz kimliği oluşturun. Daha sonra kullanacağınız için bu cihaz kimliğini not edin.
    • IoT Edge Cihazı onay kutusunu işaretleyin.
    • Kimlik doğrulama türü olarak Simetrik anahtar'ı seçin.
    • Kimlik doğrulama anahtarlarını otomatik olarak oluşturmak ve yeni cihazı hub'ınıza bağlamak için varsayılan ayarları kullanın.
  4. Kaydet'i seçin.

IoT Hub'a kayıtlı bir cihazınız olduğuna göre, IoT Edge çalışma zamanını yükleme ve sağlama işlemini tamamlamak için kullandığınız bilgileri alın.

Kayıtlı cihazları görüntüleme ve sağlama bilgilerini alma

Simetrik anahtar kimlik doğrulaması kullanan cihazların IoT Edge çalışma zamanının yüklenmesini ve sağlanmasını tamamlamak için bağlantı dizesi gerekir.

IoT hub'ınıza bağlanan uç özellikli cihazlar Cihazlar sayfasında listelenir. Listeyi Iot Edge Cihazı türüne göre filtreleyebilirsiniz.

Cihazlarınızı Azure portalında IoT Hub'da görüntüleme işleminin ekran görüntüsü.

Cihazınızı ayarlamaya hazır olduğunuzda, fiziksel cihazınızı IoT hub'ında kimliğine bağlayan bağlantı dizesi gerekir.

Simetrik anahtarlarla kimlik doğrulaması yapılan cihazların bağlantı dizesi portalda kopyalanabilir.

  1. Portaldaki Cihazlar sayfasından listeden IoT Edge cihaz kimliğini seçin.
  2. Birincil Bağlantı Dizesi veya İkincil Bağlantı Dizesi değerini kopyalayın.

IoT Edge'i yükleme

Bu bölümde, Linux VM'nizi veya fiziksel cihazınızı IoT Edge için hazırlarsınız. Ardından IoT Edge'i 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 konak işletim sisteminizi Bullseye'a güncelleştirin.

Yükleme birkaç komutla yapılabilir. Bir terminal açın ve aşağıdaki komutları çalıştırın:

  • 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
    

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 etmişsinizdir. 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ı, IoT Edge ile resmi olarak desteklenen tek kapsayıcı altyapısıdır. Docker CE/EE kapsayıcı görüntüleri Moby çalışma zamanıyla uyumludur.

Moby motorunu yükleyin.

sudo apt-get update; \
  sudo apt-get install moby-engine

Moby altyapısı başarıyla yüklendikten sonra, günlüğe kaydetme mekanizması olarak günlük sürücüsünü kullanacak local şekilde yapılandırın. Günlük yapılandırması hakkında daha fazla bilgi edinmek için bkz . Üretim Dağıtımı Denetim Listesi.

  • Docker daemon'un yapılandırma dosyasını adresinde /etc/docker/daemon.jsonoluşturun veya 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 gereken ö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 çıktısında ve Network Drivers altındaki Generally Necessary tüm öğelerin etkinleştirilip etkinleştirilmediğini denetleyin. Özellikleriniz eksikse, çekirdeğinizi kaynaktan yeniden oluşturup uygun çekirdek .config'e eklemek üzere ilişkili modülleri seçerek bunları etkinleştirin. Benzer şekilde, veya menuconfiggibi defconfig bir çekirdek yapılandırma oluşturucu kullanıyorsanız ilgili özellikleri bulup etkinleştirin ve çekirdeğinizi buna göre yeniden oluşturun. Yeni değiştirilen çekirdeğinizi dağıttıktan sonra, gerekli tüm ö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 güvenlik daemon'ı IoT Edge cihazında güvenlik standartlarını sağlar ve korur. Daemon her önyüklemede başlar ve IoT Edge çalışma zamanının geri kalanını başlatarak cihazı önyükler.

Bu bölümdeki adımlar, İnternet bağlantısı olan bir cihaza en son sürümü 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.

IoT Edge sürüm 1.1.* ile birlikte libiothsm-std paketini yükleyin:

sudo apt-get update; \
  sudo apt-get install iotedge

Not

IoT Edge sürüm 1.1, IoT Edge'in uzun vadeli destek dalıdır. Eski bir sürüm çalıştırıyorsanız, eski sürümler artık desteklenmediğinden en son düzeltme ekini yüklemenizi veya güncelleştirmenizi öneririz.

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 ayarlamak için bir sonraki adıma hazırsınız demektir.

IoT Edge cihazında yapılandırma dosyasını açın.

sudo nano /etc/iotedge/config.yaml

Dosyanın sağlama yapılandırmalarını bulun ve bir bağlantı dizesi bölümü kullanarak el ile sağlama yapılandırmasını açıklamayı kaldırın (henüz açıklamalanmamışsa).

# Manual provisioning configuration using a connection string
provisioning:
source: "manual"
device_connection_string: "ADD_DEVICE_CONNECTION_STRING_HERE"

ioT Edge cihazınızdan bağlantı dizesi ile device_connection_string değerini güncelleştirin. Diğer sağlama bölümlerinin yorumlandığından emin olun. Sağlama: satırının önünde boşluk olmadığından ve iç içe öğelerin iki boşlukla girintili olduğundan emin olun.

Pano içeriğini Nano'ya Shift+Right Click yapıştırmak için veya tuşuna basın Shift+Insert.

Dosyayı kaydedip kapatın

CTRL + X, Y, Enter

Sağlama bilgilerini yapılandırma dosyasına girdikten sonra daemon'ı yeniden başlatın:

sudo systemctl restart iotedge

Başarılı yapılandırmayı 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ışıp çalışmadığını denetleyin.

sudo systemctl status iotedge

Hizmetle ilgili sorunları gidermeniz gerekirse hizmet günlüklerini alın.

journalctl -u iotedge

check Cihazın yapılandırmasını ve bağlantı durumunu doğrulamak için aracı kullanın.

sudo iotedge check

İpucu

İzinleriniz güncelleştirildikten sonra bile her zaman denetim aracını çalıştırmak için kullanın sudo . Araç, yapılandırma durumunu doğrulamak için yapılandırma dosyasına erişmek için yükseltilmiş ayrıcalıklara ihtiyaç duyar.

Not

Yeni sağlanan bir cihazda IoT Edge Hub ile ilgili bir hata görebilirsiniz:

üretime hazır olma ×: Edge Hub'ın depolama dizini konak dosya sisteminde kalıcı hale geldi - Hata

EdgeHub kapsayıcısının geçerli durumu denetlenemedi

IoT Edge Hub modülü çalışmadığından yeni sağlanan bir cihazda bu hata beklenir. Hatayı çözmek için IoT Hub'da cihazın modüllerini ayarlayın ve bir dağıtım oluşturun. Cihaz için dağıtım oluşturma, IoT Edge Hub modülü dahil olmak üzere cihazdaki modülleri başlatır.

IoT Edge cihazınızda çalışan tüm modülleri görüntüleyin. 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.

sudo iotedge list

Yeni bir IoT Edge cihazı oluşturduğunuzda, azure portalında durum kodu 417 -- The device's deployment configuration is not set görüntülenir. Bu durum normaldir ve cihazın modül dağıtımı almaya hazır olduğu anlamına gelir.

Ç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'i 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.

  1. Azure IoT Edge sürümlerine gidin ve hedeflemek istediğiniz sürüm sürümünü bulun.

  2. Bu sürüm için Varlıklar bölümünü genişletin.

  3. Her sürümde IoT Edge güvenlik daemon'ı ve hsmlib için yeni dosyalar olmalıdır. IoT Edge'i çevrimdışı bir cihaza yükleyecekseniz bu dosyaları önceden indirin. Aksi takdirde, bu bileşenleri güncelleştirmek için aşağıdaki komutları kullanın.

    1. IoT Edge cihazınızın mimarisiyle eşleşen libiothsm-std dosyasını bulun. Dosya bağlantısına sağ tıklayın ve bağlantı adresini kopyalayın.

    2. Hsmlib'in bu sürümünü yüklemek için aşağıdaki komutta kopyalanan bağlantıyı kullanın:

      curl -L <libiothsm-std_link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
      
    3. IoT Edge cihazınızın mimarisiyle eşleşen iotedge dosyasını bulun. Dosya bağlantısına sağ tıklayın ve bağlantı adresini kopyalayın.

    4. IoT Edge güvenlik daemon'unun bu sürümünü yüklemek için aşağıdaki komutta kopyalanan bağlantıyı kullanın.

      curl -L iotedge_link_here -o iotedge.deb && sudo apt-get install ./iotedge.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ğlama olan sonraki adıma hazırsınız.

IoT Edge'i kaldırma

IoT Edge yüklemesini cihazınızdan kaldırmak istiyorsanız aşağıdaki komutları kullanın.

IoT Edge çalışma zamanını kaldırın.

sudo apt-get autoremove iotedge

IoT Edge çalışma zamanı kaldırıldığında, oluşturduğu tüm kapsayıcılar durdurulur ancak cihazınızda hala var olur. 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ı da 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