Öğretici: Raspberry Pi 3 B+ başvuru görüntüsünü kullanarak Azure IoT Hub için Cihaz Güncelleştirmesi

Azure IoT Hub için Cihaz Güncelleştirmesi görüntü tabanlı, paket tabanlı ve betik tabanlı güncelleştirmeleri destekler.

Görüntü güncelleştirmeleri, cihazın son durumunda daha yüksek bir güvenilirlik düzeyi sağlar. Bir görüntü güncelleştirmesinin sonuçlarını üretim öncesi ortamla üretim ortamı arasında çoğaltmak genellikle daha kolaydır çünkü paketler ve bağımlılıklarıyla aynı güçlükleri oluşturmaz. Atomik yapısı nedeniyle, bir A/B yük devretme modelini de kolayca benimseyebilirsiniz.

Bu öğretici, Raspberry Pi 3 B+ panosunda IoT Hub için Cihaz Güncelleştirmesi'ni kullanarak uçtan uca görüntü tabanlı bir güncelleştirmeyi tamamlama adımlarında size yol gösterir.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Bir resim indirin.
  • IoT cihazınıza etiket ekleyin.
  • Bir güncelleştirmeyi içeri aktarma.
  • Görüntü güncelleştirmesini dağıtma.
  • Güncelleştirme dağıtımını izleyin.

Not

Bu öğreticideki görüntü güncelleştirmeleri Raspberry Pi B3 panosunda doğrulanmıştır.

Ön koşullar

Henüz yapmadıysanız, bir Cihaz Güncelleştirme hesabı ve örneği oluşturun ve bir IoT hub'ı yapılandırın.

Resmi indirme

Cihaz Güncelleştirmesi GitHub sürümleri sayfasındakiVarlıklar bölümünde örnek görüntüler sağlıyoruz. .gz dosyası Raspberry Pi 3 B+ kartına yanıp sönebileceğiniz temel görüntüdür. swUpdate dosyası, IoT Hub için Cihaz Güncelleştirmesi aracılığıyla içeri aktaracağınız güncelleştirmedir.

SD kartı görüntüyle yanıp söner

Raspberry Pi 3 B+ cihazında kullanılacak SD karta Cihaz Güncelleştirmesi temel görüntüsünü (adu-base-image) yüklemek için sık kullandığınız işletim sistemi yanıp sönen aracı kullanın.

SD kartı yanıp sönmek için bmaptool kullanma

  1. bmaptool Henüz yapmadıysanız yardımcı programını yükleyin.

    sudo apt-get install bmap-tools
    
  2. içindeki /devSD kartın yolunu bulun. Yol veya /dev/mmcblk*gibi /dev/sd* görünmelidir. Doğru yolu bulmanıza yardımcı olması için yardımcı programını kullanabilirsiniz dmesg .

  3. Yanıp sönmeden önce bağlı tüm bölümleri çıkarın.

    sudo umount /dev/<device>
    
  4. Cihazda yazma izinlerine sahip olduğunuzdan emin olun.

    sudo chmod a+rw /dev/<device>
    
  5. İsteğe bağlı: Daha hızlı yanıp sönenler için bimap dosyasını ve görüntü dosyasını indirin ve aynı dizine yerleştirin.

  6. SD kartı yanıp söner.

    sudo bmaptool copy <path to image> /dev/<device>
    

Azure IoT Hub yazılımı için Cihaz Güncelleştirmesi aşağıdaki lisans koşullarına tabidir:

Aracıyı kullanmadan önce lisans koşullarını okuyun. Yüklemeniz ve kullanımınız, bu koşulları kabul ettiğinizi oluşturur. Lisans koşullarını kabul etmiyorsanız IoT Hub için Cihaz Güncelleştirmesi aracısını kullanmayın.

IoT Hub'da cihaz veya modül oluşturma ve bağlantı dizesi alma

Şimdi cihazı IoT Hub'a ekleyin. IoT Hub'ın içinden cihaz için bir bağlantı dizesi oluşturulur.

  1. Azure portalından IoT hub'ınıza gidin.

  2. Sol bölmede Cihazlar’ı seçin. Ardından Yeni'yi seçin.

  3. Cihaz Kimliği'nin altında cihaz için bir ad girin. Anahtarları otomatik oluştur onay kutusunun seçili olduğundan emin olun.

  4. Kaydet’i seçin. Cihazlar sayfasında, oluşturduğunuz cihaz listede olmalıdır.

  5. İki seçenekten birini kullanarak cihaz bağlantı dizesini alın:

    • Seçenek 1: Cihaz Güncelleştirme aracısını modül kimliğiyle kullanın: Aynı Cihazlar sayfasında üst kısımdaki Modül Kimliği Ekle'yi seçin. IoTHubDeviceUpdate adlı yeni bir Cihaz Güncelleştirme modülü oluşturun. Kullanım örneğiniz için geçerli olan diğer seçenekleri belirleyin ve ardından Kaydet'i seçin. Yeni oluşturulan modülü seçin. Modül görünümünde Birincil Bağlantı Dizesi'nin yanındaki Kopyala simgesini seçin.
    • Seçenek 2: Cihaz Kimliği ile Cihaz Güncelleştirme aracısını kullanın: Cihaz görünümünde Birincil Bağlantı Dizesi'nin yanındaki Kopyala simgesini seçin.
  6. Kopyalanan karakterleri aşağıdaki adımlarda daha sonra kullanmak üzere bir yere yapıştırın:

    Bu kopyalanan dize, cihaz bağlantı dizenizdir.

Cihazınıza etiket ekleme

  1. Azure portalında IoT Hub'ınıza gidin.

  2. Sol bölmedeki Cihazlar'ın altında IoT cihazınızı bulun ve cihaz ikizi veya modül ikizine gidin.

  3. Cihaz Güncelleştirme aracısı modülünün modül ikizinde, mevcut Cihaz Güncelleştirmesi etiket değerlerini null olarak ayarlayarak silin. Cihaz kimliğini Cihaz Güncelleştirmesi aracısıyla kullanıyorsanız bu değişiklikleri cihaz ikizinde yapın.

  4. Gösterildiği gibi yeni bir Cihaz Güncelleştirmesi etiket değeri ekleyin:

        "tags": {
                "ADUGroup": "<CustomTagValue>"
                }
    

IoT Hub için Cihaz Güncelleştirmesi için cihaz yapılandırmalarını hazırlama

IoT Hub için Cihaz Güncelleştirmesi'nin düzgün yapılandırılması için cihazda iki yapılandırma dosyası olmalıdır. İlk dosya, konumunda /adu/du-config.jsonbulunması gereken dosyadırdu-config.json. İkinci dosya, konumunda /adu/du-diagnostics-config.jsonbulunması gereken dosyadırdu-diagnostics-config.json.

ve dosyaları için du-config.json iki örnek aşağıda verilmiştir du-diagnostics-config.json :

Örnek du-config.json

{
   "schemaVersion": "1.0",
   "aduShellTrustedUsers": [
      "adu",
      "do"
   ],
   "manufacturer": "fabrikam",
   "model": "vacuum",
   "agents": [
      {
      "name": "main",
      "runas": "adu",
      "connectionSource": {
         "connectionType": "string",
         "connectionData": "HostName=example-connection-string.azure-devices.net;DeviceId=example-device;SharedAccessKey=M5oK/rOP12aB5678YMWv5vFWHFGJFwE8YU6u0uTnrmU="
      },
      "manufacturer": "fabrikam",
      "model": "vacuum"
      }
   ]
}  

Örnek du-diagnostics-config.json

{
   "logComponents":[
      {
         "componentName":"adu",
         "logPath":"/adu/logs/"
      },
      {
         "componentName":"do",
         "logPath":"/var/log/deliveryoptimization-agent/"
      }
   ],
   "maxKilobytesToUploadPerLogPath":50
}

Raspberry Pi'de Cihaz Güncelleştirme aracısını yapılandırma

  1. Raspberry Pi 3'in ağa bağlı olduğundan emin olun.

  2. Yapılandırma ayrıntılarını eklemek için şu yönergeleri izleyin:

    1. İlk olarak, PowerShell penceresinde aşağıdaki komutu kullanarak makinede SSH yapın:

      ssh raspberrypi3 -l root
      
    2. Aşağıdakileri kullanarak dosyayı oluşturun veya düzenlemek üzere açın du-config.json :

      nano /adu/du-config.json
      
    3. Komutu çalıştırdıktan sonra, dosyayla birlikte açık bir düzenleyici görmeniz gerekir. Dosyayı hiç oluşturmadıysanız boş olur. Şimdi önceki örnek du-config.json içeriğini kopyalayın ve cihazınız için gereken yapılandırmaları değiştirin. Ardından, örnek bağlantı dizesini önceki adımlarda oluşturduğunuz cihazınkiyle değiştirin.

    4. Değişikliklerinizi tamamladıktan sonra düzenleyiciden çıkmak için öğesini seçin Ctrl+X . Ardından değişiklikleri kaydetmek için girin y .

    5. Şimdi benzer komutları kullanarak dosyayı oluşturmanız du-diagnostics-config.json gerekir. Dosyayı oluşturmak veya düzenlemek üzere açmak du-diagnostics-config.json için aşağıdakileri kullanarak başlayın:

      nano /adu/du-diagnostics-config.json
      
    6. Önceki örnek du-diagnostics-config.json içeriğini kopyalayın ve varsayılan derlemeden farklı yapılandırmaları değiştirin. Örnek du-diagnostics-config.json dosyası, IoT Hub için Cihaz Güncelleştirmesi için varsayılan günlük konumlarını temsil eder. Bu varsayılan değerleri yalnızca uygulamanız farklıysa değiştirmeniz gerekir.

    7. Değişikliklerinizi tamamladıktan sonra düzenleyiciden çıkmak için öğesini seçin Ctrl+X . Ardından değişiklikleri kaydetmek için girin y .

    8. Dizinde bulunan /adu/ dosyaları göstermek için aşağıdaki komutu kullanın. Şunları kullanarak her iki yapılandırma dosyanızı da görmeniz gerekir.du-diagnostics-config.json dosyalarını düzenlemek için:

      ls -la /adu/
      
  3. Yapılandırmaların uygulandığından emin olmak için Cihaz Güncelleştirme sistemi daemon'unu yeniden başlatın. terminalde oturum açmış raspberrypiolan aşağıdaki komutu kullanın:

    systemctl start adu-agent
    
  4. Aşağıdaki komutu kullanarak aracının canlı olup olmadığını denetleyin:

    systemctl status adu-agent
    

    Durumun canlı ve yeşil olarak göründüğünü görmeniz gerekir.

IoT Hub için Cihaz Güncelleştirmesi'nde cihazı bağlama

  1. Sol bölmede Cihazlar’ı seçin.

  2. Cihaz adınızı içeren bağlantıyı seçin.

  3. IoT cihaz kimliğini kullanarak doğrudan Cihaz Güncelleştirmesi'ne bağlanıyorsanız sayfanın üst kısmında Cihaz İkizi'ni seçin. Aksi takdirde, oluşturduğunuz modülü seçin ve modül ikizini seçin.

  4. Cihaz İkizi özelliklerinin bildirilen bölümünde Linux çekirdek sürümünü arayın.

    Cihaz Güncelleştirmesi'nden güncelleştirme almamış olan yeni bir cihaz için DeviceManagement:DeviceInformation:1.swVersion değeri, cihazda çalışan üretici yazılımı sürümünü temsil eder. Bir cihaza güncelleştirme uygulandıktan sonra, Cihaz Güncelleştirmesi cihazda çalışan üretici yazılımı sürümünü temsil etmek için AzureDeviceUpdateCore:ClientMetadata:4.installedUpdateId özellik değerini kullanır.

  5. Temel ve güncelleştirme görüntü dosyalarının dosya adında bir sürüm numarası vardır.

    adu-<image type>-image-<machine>-<version number>.<extension>
    

    Sonraki "Güncelleştirmeyi içeri aktar" bölümünde bu sürüm numarasını kullanın.

Güncelleştirmeyi içeri aktarma

  1. En son aracı için Sürüm Varlıkları'ndan örnek öğretici bildirimini (Öğretici İçeri Aktarma Manifest_Pi.json) ve örnek güncelleştirmeyi (adu-update-image-raspberrypi3-0.6.5073.1.swu) indirin.

  2. Azure portal oturum açın ve Cihaz Güncelleştirmesi ile IoT hub'ınıza gidin. Sol bölmedeki Otomatik Cihaz Yönetimi altında Güncelleştirmeler'ı seçin.

  3. Güncelleştirmeler sekmesini seçin.

  4. + Yeni Güncelleştirmeyi İçeri Aktar'ı seçin.

  5. + Depolama kapsayıcısından seç'i seçin. Var olan bir hesabı seçin veya + Depolama hesabı kullanarak yeni bir hesap oluşturun. Ardından var olan bir kapsayıcıyı seçin veya + Kapsayıcı kullanarak yeni bir kapsayıcı oluşturun. Bu kapsayıcı, güncelleştirme dosyalarınızı içeri aktarma için hazırlamak için kullanılır.

    Not

    Önceki güncelleştirmelerden yanlışlıkla dosya içeri aktarmayı önlemek için bir güncelleştirmeyi her içeri aktardığınızda yeni bir kapsayıcı kullanmanızı öneririz. Yeni bir kapsayıcı kullanmıyorsanız, bu adımı tamamlamadan önce var olan kapsayıcıdaki dosyaları sildiğinizden emin olun.

    Depolama hesaplarını ve Kapsayıcıları gösteren ekran görüntüsü.

  6. Kapsayıcınızda Karşıya Yükle'yi seçin ve 1. adımda indirdiğiniz dosyalara gidin. Tüm güncelleştirme dosyalarınızı seçtikten sonra Karşıya Yükle'yi seçin. Ardından Seç düğmesini seçerek güncelleştirmeyi içeri aktar sayfasına dönün.

    Karşıya yüklenen dosyaların seçilmesini gösteren ekran görüntüsü.

    Bu ekran görüntüsünde içeri aktarma adımı gösterilmektedir. Dosya adları örnekte kullanılan adlarla eşleşmeyebilir.

  7. Güncelleştirmeyi içeri aktar sayfasında, içeri aktarılacak dosyaları gözden geçirin. Ardından içeri aktarma işlemini başlatmak için Güncelleştirmeyi içeri aktar'ı seçin.

    Güncelleştirmeyi içeri aktar'ı gösteren ekran görüntüsü.

  8. İçeri aktarma işlemi başlar ve ekran İçeri aktarma geçmişi bölümüne geçer. Durum sütunu içeri aktarma işleminin başarılı olduğunu gösterdiğinde Kullanılabilir güncelleştirmeler üst bilgisini seçin. İçeri aktarılan güncelleştirmenizi şimdi listede görmeniz gerekir.

    İş durumunu gösteren ekran görüntüsü.

İçeri aktarma işlemi hakkında daha fazla bilgi için bkz. Cihaz Güncelleştirmesi'ne güncelleştirme aktarma.

Cihaz gruplarını görüntüleme

Cihaz Güncelleştirmesi, cihazları düzenlemek için grupları kullanır. Cihaz Güncelleştirmesi, cihazları atanan etiketlerine ve uyumluluk özelliklerine göre otomatik olarak gruplar halinde sıralar. Her cihaz yalnızca bir gruba aittir, ancak grupların farklı cihaz sınıflarını sıralamak için birden çok alt grubu olabilir.

  1. Sayfanın üst kısmındaki Gruplar ve Dağıtımlar sekmesine gidin.

    Gruplanmamış cihazları gösteren ekran görüntüsü.

  2. Grup listesini ve güncelleştirme uyumluluk grafiğini görüntüleyin. Güncelleştirme uyumluluk grafiği, çeşitli uyumluluk durumlarındaki cihazların sayısını gösterir: En son güncelleştirmede, Yeni güncelleştirmeler kullanılabilir ve devam eden Güncelleştirmeler. Güncelleştirme uyumluluğu hakkında bilgi edinin.

    Güncelleştirme uyumluluğu görünümünü gösteren ekran görüntüsü.

  3. Bu öğreticide ayarladığınız simülasyon cihazını ve yeni gruptaki cihazlar için kullanılabilir güncelleştirmeleri içeren bir cihaz grubu görmeniz gerekir. Grubun cihaz sınıfı gereksinimlerini karşılamayen cihazlar varsa, bunlar ilgili geçersiz grupta gösterilir. Bu görünümden yeni kullanıcı tanımlı gruba en iyi kullanılabilir güncelleştirmeyi dağıtmak için grubun yanındaki Dağıt'ı seçin.

Etiketler ve gruplar hakkında daha fazla bilgi için bkz. Cihaz gruplarını yönetme.

Güncelleştirmeyi dağıtma

  1. Grup oluşturulduktan sonra cihaz grubunuz için kullanılabilecek yeni bir güncelleştirme görmeniz gerekir. Güncelleştirmenin bağlantısı En iyi güncelleştirme altında olmalıdır. Bir kez yenilemeniz gerekebilir.

    Uyumluluk hakkında daha fazla bilgi için bkz . Cihaz Güncelleştirmesi uyumluluğu.

  2. Grup adını seçerek hedef grubu seçin. Grup temel bilgileri altındaki grup ayrıntılarına yönlendirilirsiniz.

    Grup ayrıntılarını gösteren ekran görüntüsü.

  3. Dağıtımı başlatmak için Geçerli dağıtım sekmesine gidin. Kullanılabilir güncelleştirmeler bölümünden istediğiniz güncelleştirmenin yanındaki dağıtım bağlantısını seçin. Belirli bir grup için en iyi kullanılabilir güncelleştirme , En iyi vurgulama ile belirtilir.

    Güncelleştirme seçmeyi gösteren ekran görüntüsü.

  4. Dağıtımınızı hemen veya gelecekte başlayacak şekilde zamanlayın. Ardından Oluştur’u seçin.

    Oluştur düğmesini gösteren ekran görüntüsü.

  5. Dağıtım ayrıntıları'nın altında DurumEtkin'e dönüşür. Dağıtılan güncelleştirme (dağıtım) ile işaretlenir.

    Dağıtımın etkin olduğunu gösteren ekran görüntüsü.

  6. Güncelleştirmenin devam ettiğini görmek için uyumluluk grafiğini görüntüleyin.

  7. Cihazınız başarıyla güncelleştirildikten sonra uyumluluk grafiğinizin ve dağıtım ayrıntılarınızın aynı şekilde güncelleştirildiğini görürsünüz.

    Güncelleştirmenin başarılı olduğunu gösteren ekran görüntüsü.

Güncelleştirme dağıtımını izleme

  1. Sayfanın üst kısmındaki Dağıtım geçmişi sekmesini seçin.

    Dağıtım geçmişini gösteren ekran görüntüsü.

  2. Oluşturduğunuz dağıtımın yanındaki Ayrıntılar'ı seçin.

    Dağıtım ayrıntılarını gösteren ekran görüntüsü.

  3. En son durum ayrıntılarını görüntülemek için Yenile'yi seçin.

Raspberry Pi 3 B+ cihazında IoT Hub için Cihaz Güncelleştirmesi'ni kullanarak başarılı bir uçtan uca görüntü güncelleştirmesini tamamladınız.

Kaynakları temizleme

Artık gerekli olmadığında Cihaz Güncelleştirmesi hesabınızı, örneğinizi, IoT hub'ınızı ve IoT cihazınızı temizleyin.

Sonraki adımlar