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

Şunlar için geçerlidir:IoT Edge 1.4 checkmark IoT Edge 1.4

Önemli

IoT Edge 1.4 desteklenen sürümdür. Önceki bir sürümdeyseniz bkz. IoT Edge’i güncelleştirme.

Bu makalede, IoT Edge'i yüklemeyi 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şimi izlemek için kullanılan bir cihaz kimliği vardır. Bir cihazı aşağıdakiler dahil bağlantı bilgileriyle yapılandırabilirsiniz:

  • IoT hub ana bilgisayar adı
  • Cihaz Kimliği
  • IoT Hub'a 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ı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 makalede IoT Edge cihazınızı kaydetme ve ioT Edge'i (IoT Edge çalışma zamanı olarak da adlandırılır) cihazınıza 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'yı 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 tarafından desteklenen sistemler.

Visual Studio Code uzantıları

Visual Studio Code kullanıyorsanız cihaz oluşturma ve yönetim sürecini kolaylaştıran 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'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, örneğin my-edge-device-1 (tümü küçük harf). Daha sonra kullanacağınız için bu Cihaz Kimliğini kopyalayın.
    • IoT Edge Cihazı 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.
  4. Kaydet'i seçin.

Yeni cihazınızın IoT hub'ınızda listelendiğini görmeniz gerekir.

IoT Hub'a 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ın IoT Edge çalışma zamanının yüklenmesini ve sağlanmasını tamamlamak için bağlantı dizesi gerekir. 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ını kullanıyorsanız bağlantı dizesi cihazın kendisinden bulabilirsiniz. IoT hub'ınızda cihazınızı seçtiğinizde cihaz sayfasında olarak 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ı dizesi gerekir. Simetrik anahtarlarla kimlik doğrulaması yapılan cihazların bağlantı dizesi portalda kopyalanabilir. portalda bağlantı dizesi bulmak için:

  1. Cihazlar sayfasından listeden IoT Edge cihaz kimliğini seçin.
  2. Birincil Bağlan ion Dizesi veya İkincil Bağlan ion Dizesi değerini kopyalayın. her iki anahtar da çalışır.

IoT Edge'i yükleme

Bu bölümde, Linux sanal makinenizi 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:

  • 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
    

İşletim sistemi sürümleri hakkında daha fazla bilgi için bkz . Azure IoT Edge tarafından 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 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

Varsayılan olarak, kapsayıcı altyapısı kapsayıcı günlüğü boyutu sınırlarını ayarlamaz. Bu durum, zaman içinde cihazın günlüklerle dolmasına ve disk alanının tamamının kullanılmasına 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ımlarda, kapsayıcınızı günlüğe kaydetme mekanizması olarak günlük sürücüsünü kullanacak local şekilde nasıl yapılandırabileceğiniz gösterilmektedir.

  1. Mevcut Docker daemon'un yapılandırma dosyasını oluşturma veya düzenleme

    sudo nano /etc/docker/daemon.json
    
  2. Varsayılan günlük sürücüsünü local örnekte gösterildiği gibi günlük sürücüsüne ayarlayın.

       {
          "log-driver": "local"
       }
    
  3. Değişikliklerin etkili olması için kapsayıcı altyapısını yeniden başlatın.

    sudo systemctl restart docker
    

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 itibaren 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 varsa ve en son sürüme yükseltmek istiyorsanız IoT Edge güvenlik daemon'unu ve çalışma zamanını güncelleştirme'deki adımları kullanın. Sonraki sürümler, Yükseltme için belirli adımların gerekli olduğu IoT Edge'in önceki sürümlerinden yeterince farklıdır.

IoT Edge'in en son sürümünü ve IoT kimlik hizmeti paketini yükleyin (henüz güncel değilseniz):

  • 22.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge
    
  • 20.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 için Microsoft Defender güvenlik mikro aracısını içerir. Edge cihazlarınızın güvenlik izlemesini ve sağlamlaştırmasını sağlamak için mikro aracıyı Edge aracısıyla yüklemeniz önerilir. IoT için 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

Artık kapsayıcı altyapısı ve IoT Edge çalışma zamanı cihazınızda yüklü olduğuna göre, cihazı bulut kimliği ve kimlik doğrulama bilgileriyle ayarlamaya hazırsınız.

Aşağıdaki komutu kullanarak IoT Edge cihazınızı simetrik anahtar kimlik doğrulamasıyla 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 yapılandırma dosyasına bağlantı dizesi girer.

  1. Yapılandırma değişikliklerini uygulayın.

    sudo iotedge config apply
    
  2. 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ında IoT hub'ınıza gidin ve ardından:

  1. IoT Hub menüsünden Cihazlar'ı seçin.

  2. Sayfayı açmak için cihazınızı seçin.

  3. Modülleri Ayarla sekmesini seçin.

  4. IoT Edge varsayılan modüllerini (edgeAgent ve edgeHub) dağıtmak istediğimizden bu bölmeye modül eklememiz gerekmez, bu nedenle en alttaki Gözden geçir ve oluştur'u seçin.

  5. 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.

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 .

  1. IoT Edge sistem hizmetinin çalışıp çalışmadığını denetleyin.

    sudo iotedge system status
    

    Başarılı durum yanıtı, hizmetleri çalışıyor veya hazır olarak gösterir aziot .

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

    sudo iotedge system logs
    
  3. 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. Yaygın hataları gidermek için bkz . Azure IoT Edge için yaygın sorunların çözümleri.

    Screenshot of sample responses from the check command.

    İ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:

    × üretim hazırlığı: Edge Hub'ın depolama dizini konak dosya sisteminde kalıcı - 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ı giderir.

    Alternatif olarak, durum kodunu olarak 417 -- The device's deployment configuration is not setgörebilirsiniz. Modülleriniz dağıtıldıktan sonra bu durum değişir.

  4. 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.

    Azure portalında cihaz sayfanızı görüntüleyerek cihazınızın ve modüllerinizin dağıtılıp dağıtılmadığını ve çalışıp çalışmadığını denetleyin.

    Screenshot of IoT Edge modules deployed and running confirmation in the Azure portal.

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

Ubuntu tutturmalarını kullanıyorsanız, bir tutturma indirip çevrimdışı yükleyebilirsiniz. Daha fazla bilgi için bkz . Tutturmaları indirme ve çevrimdışı yükleme.

Curl komutlarını kullanarak bileşen dosyalarını doğrudan IoT Edge GitHub deposundan hedefleyebilirsiniz.

Not

Cihazınızda şu anda IoT Edge sürüm 1.1 veya üzeri çalıştırılı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.

  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 ve kimlik hizmeti 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 aziot-identity-service dosyasını bulun. Dosya bağlantısına sağ tıklayın ve bağlantı adresini kopyalayın.

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

      curl -L <identity service link> -o aziot-identity-service.deb && sudo apt-get install ./aziot-identity-service.deb
      

    1. 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.

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

      curl -L <iotedge link> -o aziot-edge.deb && sudo apt-get install ./aziot-edge.deb
      

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 --purge aziot-edge

IoT Edge'i --purge yeniden yüklemeyi planlıyorsanız ve gelecekte aynı yapılandırma bilgilerini kullanmayı planlıyorsanız bayrağı atlayın. bayrağı, --purge yapılandırma dosyalarınız da 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 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 ID>

Son olarak, kapsayıcı çalışma zamanını cihazınızdan kaldırın.

sudo apt-get autoremove --purge moby-engine

Sonraki adımlar

Modülleri cihazınıza dağıtmayı öğrenmek için IoT Edge modüllerini dağıtmaya devam edin.