Simetrik anahtarları kullanarak Linux'ta IoT Edge cihazı oluşturma ve sağlama

Şunlar için geçerlidir:IoT Edge 1.4 onay işareti 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.

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

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

    Azure portal IoT Hub Cihaz Ekle düğmesinin nerede bulunacağı ekran görüntüsü.

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

    Azure portal IoT Hub 'Cihaz oluştur' formunu doldurma işleminin ekran görüntüsü.

  4. Kaydet’i seçin.

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

Azure portal IoT Hub listelenen yeni cihazınızın ekran görüntüsü.

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.

Azure portal IoT Hub cihazlarınızı 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ı 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:

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

  1. Dosyasını oluşturun (dosya henüz orada değilse) veya Docker daemon'un yapılandırma dosyasını adresinde /etc/docker/daemon.jsonaçın.

  2. 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"
       }
    
  3. 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ındaki Generally 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, veya menuconfiggibi defconfig 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.

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

  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.

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 .

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

  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.

    Check komutundan alınan örnek yanıtların ekran görüntüsü.

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

    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.

    Azure portal dağıtılan ve onay çalıştıran IoT Edge modüllerinin ekran görüntüsü.

    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.

  1. Azure IoT Edge sürümlerine gidin ve hedeflemek istediğiniz yayın 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. ç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.

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

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