Öğretici: Ubuntu (18.04 x64) simülatörü başvuru aracısını kullanarak Azure IoT Hub için Cihaz Güncelleştirmesi

Bu öğreticide, IoT Hub için Cihaz Güncelleştirmesi kullanılarak uçtan uca görüntü tabanlı bir güncelleştirme gösterilmektedir. 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ü paketleri ve bağımlılıklarını yönetmekle aynı zorlukları oluşturmaz. Atomik yapısı nedeniyle, bir A/B yük devretme modelini kolayca benimseyebilirsiniz.

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

  • Etiketleri kullanarak bir IoT cihazını Cihaz Güncelleştirmesi grubuna atayın.
  • Görüntü indirip yükleyin.
  • Bir güncelleştirmeyi içeri aktarma.
  • Görüntü güncelleştirmesi dağıtma.
  • Güncelleştirme dağıtımını izleyin.

Önkoşullar

  • IoT hub'ı ile yapılandırılmış bir Cihaz Güncelleştirmesi hesabı ve örneği oluşturun.

  • Ubuntu 18.04 cihazına sahip olmanız gerekir. Bu cihaz fiziksel veya sanal makine olabilir.

  • En son sürümde Release Assets adlı zip dosyasını Tutorial_Simulator.zip indirin ve sıkıştırmasını açın.

    Test cihazınız geliştirme makinenizden farklıysa zip dosyasını her ikisine de indirin.

    zip dosyasını indirmek için kullanabilirsiniz wget . değerini en son sürümle değiştirin <release_version> , örneğin 1.0.0.

    wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
    

Cihazı kaydetme ve modül kimliği yapılandırma

IoT hub'ınızdaki cihaz kayıt defterine bir cihaz ekleyin. IoT hub'ına bağlanan her cihazın kaydedilmesi gerekir.

Bu bölümde bir modül kimliği de oluşturacağız. Modüller, bir IoT cihazında bulunan bileşenler için bağımsız kimliklerdir ve bu da birden çok işlem çalıştıran bir IoT cihazınız olduğunda daha ince ayrıntı düzeyine olanak tanır. Bu öğreticide, IoT cihazında çalışan Cihaz Güncelleştirmesi aracısı için bu modül kimliğini kullanacaksınız. Daha fazla bilgi için bkz. IoT Hub modül ikizlerini anlama ve kullanma.

  1. Azure portal IoT hub'ınıza gidin.
  2. Sol bölmede Cihazlar’ı seçin. Ardından Cihaz Ekle'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.
  5. Artık Cihazlar sayfasına geri dönersiniz ve oluşturduğunuz cihaz listede olmalıdır. Bu cihazı seçin.
  6. Modül Kimliği Ekle'yi seçin.
  7. Modül Kimliği Adı'nın altında modül için duAgent gibi bir ad girin.
  8. Kaydet’i seçin

Modül bağlantı dizesini kopyalama

  1. Cihaz görünümünde, modülünüzün Modül Kimlikleri başlığı altında listelendiğini görmeniz gerekir. Modül adını seçerek ayrıntılarını açın.
  2. Bağlantı dizesinin (birincil anahtar) yanındaki Kopyala simgesini seçin. Cihaz Güncelleştirme aracısını yapılandırırken kullanmak için bu bağlantı dizesini kaydedin. Bu dize, modül bağlantı dizenizdir.

Modül ikizinize etiket ekleme

  1. Modül kimliği ayrıntıları sayfasında Modül Kimliği İkizi'ni seçin

  2. Gösterildiği gibi, ikiz dosyasına ve version ile aynı düzeyde modelId yeni bir Cihaz Güncelleştirmesi etiket değeri ekleyin:

    "tags": {
        "ADUGroup": "DU-simulator-tutorial"
    },
    

    Modül ikizindeki ADUGroup etiketinin ekran görüntüsü.

    Cihaz Güncelleştirmesi tarafından yönetilen her cihaz, cihazı bir Cihaz Güncelleştirmesi grubuna atayan bu ayrılmış etikete ihtiyaç duyar. Burada gösterildiği gibi cihaz ikizinde veya modül ikizinde olabilir. Her cihaz yalnızca bir Cihaz Güncelleştirme grubuna atanabilir.

  3. Kaydet’i seçin. Portal, json yapısına etiketini eklemek için modül ikizini yeniden biçimlendirir.

Cihaz Güncelleştirmesi aracısını yükleme ve yapılandırma

Cihaz Güncelleştirmesi aracısı, Cihaz Güncelleştirmesi tarafından yönetilen her cihazda çalışır. Bu öğreticide, cihazın yapılandırmasını değiştirmeden bir güncelleştirmenin bir cihaza nasıl uygulanabileceğini görebilmek için bunu simülatör olarak çalışacak şekilde yapılandıracağız.

  1. IoT cihazınızda Microsoft paket deposunu ekleyin ve ardından Microsoft paketi imzalama anahtarını güvenilen anahtarlar listenize ekleyin.

    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   
    
  2. Cihaz Güncelleştirme aracısı .deb paketlerini yükleyin.

    sudo apt-get update
    sudo apt-get install deviceupdate-agent
    
  3. Aracının yapılandırma dosyasını açın.

    sudo nano /etc/adu/du-config.json
    
  4. Yapılandırma dosyasında aşağıdaki değerleri güncelleştirin:

    • manufacturer: "Contoso" - Bu değer IoT cihazını güncelleştirmeleri hedeflemek üzere sınıflandırmak için kullanılır.
    • model: "Video" - Bu değer IoT cihazını güncelleştirmeleri hedeflemek üzere sınıflandırmak için kullanılır.
    • ad: "aduagent"
    • agents.connectionData: Modül kimliğinden kopyaladığınız bağlantı dizesini sağlayın.
    • agents.manufacturer: "Contoso"
    • agents.model: "Video"

    Bu adımdaki parametreler hakkında daha fazla bilgi için bkz . Cihaz Güncelleştirmesi yapılandırma dosyası.

    Not

    Cihazı sağlamak için IoT Kimlik Hizmeti'ni de kullanabilirsiniz. Bunu yapmak için, Cihaz Güncelleştirmesi aracısını yüklemeden önce iot girintisi hizmetini yükler . Ardından, Ve ile "connectionType": "AIS"connectionData Cihaz Güncelleştirme aracısını yapılandırma dosyasında boş bir dize olarak yapılandırın.

  5. Dosyayı kaydedin ve kapatın. CTRL+X, Yve Enter.

  6. Aracıyı simülatör olarak çalışacak şekilde ayarlayın. Cihaz Güncelleştirmesi aracısının SWUpdate (microsoft/swupdate:1 ile bir paket güncelleştirmesini işlemek için simülatör işleyicisini çağırması için IoT cihazında aşağıdaki komutu çalıştırın.

      sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
    
  7. Tutorial_Simulator.zip Önkoşullarda indirdiğiniz dosyanın sıkıştırmasını açın ve dosyayı klasörüne tmp kopyalayınsample-du-simulator-data.json.

    cp sample-du-simulator-data.json /tmp/du-simulator-data.json
    

    /tmp yoksa şunu çalıştırın:

    sudo mkdir/tmp
    sudo chown root:root/tmp
    sudo chmod 1777/tmp
    
  8. Yeni dosyanın izinlerini değiştirin.

    sudo chown adu:adu /tmp/du-simulator-data.json
    sudo chmod 664 /tmp/du-simulator-data.json
    
  9. Değişikliklerinizi uygulamak için Cihaz Güncelleştirmesi aracısını yeniden başlatın.

     sudo systemctl restart deviceupdate-agent
    

Güncelleştirmeyi içeri aktarma

Bu bölümde, önkoşullarda indirilen Tutorial_Simulator.zip ve adu-update-image-raspberrypi3.swu dosyalarını TutorialImportManifest_Sim.importmanifest.json kullanırsınız. Güncelleştirme dosyası Raspberry Pi öğreticisinden yeniden kullanılır. Bu öğreticideki güncelleştirme simüle edildiğinden, belirli dosya içeriğinin önemi yoktur.

  1. Geliştirme makinenizde Azure portal oturum açın ve Cihaz Güncelleştirmesi ile yapılandırılan IoT hub'ınıza gidin.

  2. Gezinti bölmesindeki Cihaz Yönetimi altında Güncelleştirmeler'ı seçin.

  3. Yeni güncelleştirmeyi içeri aktar'ı seçin.

  4. Depolama kapsayıcısından seç'i seçin.

  5. Var olan bir depolama hesabını seçin veya + Depolama hesabı'yı seçerek yeni bir hesap oluşturun. Ardından, var olan bir kapsayıcıyı seçin veya + Kapsayıcı'yı seçerek 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 önkoşullarda indirdiğiniz dosyalara gidin. TutorialImportManifest_Sim.importmanifest.json ve adu-update-image-raspberrypi3.swu dosyalarını ve ardından Karşıya Yükle'yi seçin.

  7. Her dosyanın yanındaki onay kutusunu seçin ve ardından Seç düğmesini seçerek güncelleştirmeyi içeri aktar sayfasına dönün.

    Kapsayıcıda karşıya yüklenen dosyaların seçilmesini gösteren ekran görüntüsü.

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

    Karşıya yüklenen ve güncelleştirme olarak içeri aktarılacak dosyaları gösteren ekran görüntüsü.

  9. İç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şlemi devam ederken içeri aktarmayı Çalışıyor olarak ve içeri aktarma tamamlandığında Başarılı olarak gösterir. Durumu güncelleştirmek için Yenile düğmesini kullanın.

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

    Kullanılabilir güncelleştirme olarak listelenen yeni güncelleştirmeyi gösteren ekran görüntüsü.

İçeri aktarma işlemi hakkında daha fazla bilgi için bkz. IoT Hub için 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. Güncelleştirmeler sayfasının üst kısmındaki Gruplar ve Dağıtımlar sekmesine gidin.

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

    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.

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

Güncelleştirmeyi dağıtma

  1. Gruplar ve Dağıtımlar sekmesinde, cihaz grubunuz için kullanılabilecek yeni bir güncelleştirme görmeniz gerekir. Güncelleştirme bağlantısı Durum altında olmalıdır. Sayfayı yenilemeniz gerekebilir.

  2. Ayrıntılarını görüntülemek için grup adını seçin.

  3. Grup ayrıntıları sayfasında yeni bir güncelleştirme olduğunu görmeniz gerekir. Dağıtımı başlatmak için Dağıt'ı seçin.

    Grup güncelleştirme dağıtımı başlatmayı gösteren ekran görüntüsü.

  4. Önceki bölümde içeri aktardığımız güncelleştirme, bu grup için en iyi kullanılabilir güncelleştirme olarak listelenir. Dağıt'ı seçin.

  5. Dağıtımınızı hemen başlayacak şekilde zamanlayın ve oluştur'u seçin.

  6. Grup ayrıntıları sayfasında Geçerli güncelleştirmeler sekmesine gidin. Dağıtım ayrıntıları'nın altında DurumEtkin'e dönüşür.

  7. Cihazınız başarıyla güncelleştirildikten sonra Güncelleştirmeler sayfasına dönün. Uyumluluk grafiğinizin ve dağıtım ayrıntılarınızın aynı şekilde güncelleştirildiğini görmeniz gerekir.

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

  1. Grup ayrıntıları sayfasına dönün ve Dağıtım geçmişi sekmesini seçin.

  2. Oluşturduğunuz dağıtımın yanındaki Dağıtım ayrıntılarını görüntüle'yi 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.

Artık Ubuntu (18.04 x64) simülatör başvuru aracısını kullanarak 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

Sonraki öğreticiye devam edecekseniz Cihaz Güncelleştirmenizi koruyun ve kaynakları IoT Hub.

Artık gerekli olmadığında, bu kaynakları Azure portal silebilirsiniz.

  1. Azure portal kaynak grubunuza gidin.

  2. Hangi kaynakların silineceğini seçin.

    • Gruptaki tüm kaynakları silmek istiyorsanız Kaynak grubunu sil'i seçin.
    • Yalnızca seçili kaynakları silmek istiyorsanız, onay kutularını kullanarak kaynakları seçin ve sil'i seçin.

Sonraki adımlar

Bu öğreticide bir görüntü güncelleştirmesini içeri aktarmayı ve dağıtmayı öğrendiniz. Ardından cihaz paketlerini nasıl güncelleştireceğinizi öğrenin.