Linux'ta simetrik IoT Edge bir cihaz oluşturma ve sağlama

Uygulama hedefi:  Evet simgesi IoT Edge 1,1 diğer sürümler: IoT Edge 1,2

Uygulama hedefi:  Evet simgesi IoT Edge 1,2 diğer sürümler: IoT Edge 1,1

Bu makalede, bir Linux IoT Edge cihazı kaydetme ve sağlama ile ilgili 1.500.000.000'den fazla IoT Edge.

IoT hub'larına bağlanan her cihazın buluttan cihaza veya cihazdan buluta iletişimleri izlemek için kullanılan bir cihaz kimliği vardır. Bir cihazı, IoT hub ana bilgisayar adını, cihaz kimliğini ve cihazın IoT hub'ını doğrulamak için kullandığı bilgileri içeren bağlantı bilgileriyle IoT Hub.

Bu makaledeki adımlarda, tek bir cihazı IoT hub'ını bağlayarak el ile sağlama adlı bir işlem adım adım açıklanmıştır. El ile sağlama için cihazların kimliklerini doğrulamaya IoT Edge vardır:

  • Simetrik anahtarlar: Yeni bir cihaz kimliği IoT Hub, hizmet iki anahtar oluşturur. Anahtarlardan birini cihaza yer ve kimlik doğrulama IoT Hub sunar.

    Bu kimlik doğrulama yöntemi daha hızlı bir şekilde çalışmaya başlamaz, ancak o kadar güvenli değildir.

  • X.509 otomatik olarak imzalanan: İki X.509 kimlik sertifikası oluşturun ve bunları cihaza yer açın. Yeni bir cihaz kimliği IoT Hub her iki sertifikadan parmak izleri sağlar. Cihaz kimlik doğrulaması IoT Hub, bir sertifika sunar IoT Hub sertifikanın parmak iziyle eş olduğunu doğrular.

    Bu kimlik doğrulama yöntemi daha güvenlidir ve üretim senaryoları için önerilir.

Bu makalede kimlik doğrulama yönteminiz olarak simetrik anahtarların kullanımı açıklanmıştır. X.509 sertifikalarını kullanmak için bkz. X.509 sertifikalarınıkullanarak Linux'ta IoT Edge cihaz oluşturma ve sağlama.

Not

Ayar için çok sayıda cihazınız varsa ve her birini el ile sağlamak istemiyorsanız, IoT Edge'nin IoT Hub 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 IoT Edge yüklemeyi kapsar. Bu görevleri gerçekleştirmek için kullanılan farklı önkoşullar ve yardımcı programlar vardır. Devam etmeden önce tüm önkoşulların karşılandığından 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:

Azure aboneliğinizin ücretsiz veya standart bir IoT hub'ı.

IoT Edge yükleme

X64, ARM32 veya ARM64 Linux cihazı.

Microsoft, Ubuntu Server 18.04 ve Raspberry Pi OS Stretch işletim sistemleri için yükleme paketleri sağlar.

Üretim senaryolarında şu anda hangi işletim sistemlerinin desteklen olduğu hakkında en son bilgiler için bkz. Azure IoT Edge sistemleri.

Not

ARM64 cihazları için destek genel önizlemededir.

Cihazınızı kaydetme

tercihinize bağlı olarak cihazınızı kaydetmek için Azure portal, Visual Studio Code veya Azure clı 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 IoT Edge ' i seçin ve ardından IoT Edge cihaz ekle' yi seçin.

    Azure portal IoT Edge bir cihaz ekleyin

  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 bir yere unutmayın.
    • Kimlik doğrulama türü olarak simetrik anahtar ' ı seçin.
    • Kimlik doğrulama anahtarlarını otomatik oluşturmak ve yeni cihazı hub 'ınıza bağlamak için varsayılan ayarları kullanın.
  4. Kaydet’i seçin.

Artık IoT Hub kayıtlı bir cihazınız olduğuna göre, IoT Edge çalışma zamanının yüklenmesi ve sağlanması 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üklenmesi ve sağlanması için bağlantı dizelerine ihtiyacı vardır.

IoT Hub 'ınıza bağlanan tüm Edge özellikli cihazlar IoT Edge sayfasında listelenir.

IoT Hub 'ınızdaki tüm IoT Edge cihazları görüntülemek için Azure portal kullanın

Cihazınızı ayarlamaya hazırsanız, fiziksel cihazınızı IoT Hub 'ındaki kimliğiyle bağlayan bağlantı dizesine ihtiyacınız vardır.

Simetrik Anahtarlarla kimlik doğrulayan cihazların, bağlantı dizeleri portalda kopyalamak için kullanılabilir.

  1. Portaldaki IoT Edge sayfasında, IoT Edge cihazları LISTESINDEN cihaz kimliği ' ne tıklayın.
  2. Birincil bağlantı dizesinin veya İkincil bağlantı dizesinin değerini kopyalayın.

Yükleme IoT Edge

Bu bölümde Linux VM'nizi veya fiziksel cihazınızı sanal makineniz için IoT Edge. Ardından, IoT Edge.

Uygulama çalışma zamanının yüklenmeye hazır olması için önce cihazınıza iki IoT Edge gerekir. Cihazınızın Microsoft yükleme paketlerine erişmesi ve bir kapsayıcı altyapısının yüklü olması gerekir.

Microsoft yükleme paketlerine erişme

  1. Cihazınızın işletim sistemiyle eşleşen depo yapılandırma paketini indirin.

    • Ubuntu Server 18.04:

      curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb > ./packages-microsoft-prod.deb
      
    • Raspberry Pi OS Stretch:

      curl https://packages.microsoft.com/config/debian/stretch/multiarch/packages-microsoft-prod.deb > ./packages-microsoft-prod.deb
      
  2. Microsoft'un paket deposunu ve GPG ortak anahtarını eklemek için yapılandırma paketini yükleyin.

    sudo apt install ./packages-microsoft-prod.deb
    

Not

Azure IoT Edge paketleri, her pakette ( veya dizininde) bulunan lisans usr/share/doc/{package-name} koşullarına LICENSE tabi olur. Paket kullanmadan önce lisans koşullarını okuyun. Paketin yüklenmesi ve kullanımı, bu koşulları kabul ettiğiniz anlamına geldi. Lisans koşullarını kabul etmiyorsanız bu paketi kullanmayın.

Kapsayıcı altyapısı yükleme

Azure IoT Edge OCI ile uyumlu bir kapsayıcı çalışma zamanı kullanılır. Üretim senaryoları için Moby altyapısını kullanmanizi öneririz. Moby altyapısı, resmi olarak IoT Edge. Docker CE/EE kapsayıcı görüntüleri Moby çalışma zamanıyla uyumludur.

  1. Cihazınızın paket listelerini güncelleştirin.

    sudo apt-get update
    
  2. Moby altyapısını yükleyin.

    sudo apt-get install moby-engine
    

    İpucu

    Moby kapsayıcı altyapısını yükleme sırasında hatayla karşınıza çıkarsanız Linux çekirdeğinizin Moby uyumluluğunu 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öndermektedir. Çekirdek yapılandırmanızı kontrol etmek için Moby tarafından sağlanan check-config betiği 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 altındaki tüm öğelerin Generally Necessary Network Drivers etkinleştirildiğinden kontrol edin. Özellikleriniz eksikse, çekirdeğinizi kaynaktan yeniden oluşturarak ve uygun çekirdek kaynağına dahil etmek için ilişkili modülleri seçerek bunları .config. Benzer şekilde, veya gibi bir çekirdek yapılandırma oluşturucu kullanıyorsanız ilgili özellikleri bulup etkinleştirin ve çekirdeğinizi defconfig uygun şekilde yeniden oluşturmanız menuconfig gerekir. Yeni değiştirilen çekirdeğinizi dağıttıktan sonra, tüm gerekli özelliklerin başarıyla etkinleştirildiğinden emin olmak için check-config betiği yeniden çalıştırın.

IoT Edge çalışma zamanını yükleme

Bu IoT Edge güvenlik daemon'ı, cihaz üzerinde güvenlik IoT Edge sağlar ve sürdürür. Daemon her önyüklemede başlar ve çalışma zamanının geri kalanını başlatarak IoT Edge başlatır.

Bu bölümdeki adımlar, internet bağlantısı olan bir cihaza en son sürümü yüklemek için tipik bir işlemi temsil ediyor. Yayın öncesi sürüm gibi belirli bir sürümü yüklemeniz veya çevrimdışıyken yüklemeniz gerekirse, bu makalenin devamlarında Çevrimdışı veya belirli bir sürüm yükleme adımlarını izleyin.

Cihazınızın paket listelerini güncelleştirin.

sudo apt-get update

libiothsm-std paketiyle IoT Edge 1.1.* sürümünü yükleyin:

sudo apt-get install iotedge

Not

IoT Edge 1.1, 1.1 sürümünün uzun süreli destek IoT Edge. Daha eski bir sürüm çalıştırdıysanız, eski sürümler artık destekçi olmadığı için en son düzeltme ekini yüklemenizi veya güncelleştirmenizi öneririz.

IoT Edge hizmeti, cihaz üzerinde güvenlik standartları sağlar ve IoT Edge sağlar. Hizmet her önyüklemede başlar ve çalışma zamanının geri kalanını başlatarak IoT Edge başlatır.

IoT kimlik hizmeti, IoT Edge'nin 1.2 sürümüyle birlikte IoT Edge. Bu hizmet, IoT Edge ve IoT Edge iletişim kurması gereken diğer cihaz bileşenleri için kimlik sağlama ve IoT Hub.

Bu bölümdeki adımlar, internet bağlantısı olan bir cihaza en son sürümü yüklemek için tipik bir işlemi temsil ediyor. Yayın öncesi sürüm gibi belirli bir sürümü yüklemeniz veya çevrimdışıyken yüklemeniz gerekirse, bu makalenin devamlarında Çevrimdışı veya belirli bir sürüm yükleme adımlarını izleyin.

Not

Bu bölümdeki adımlarda, 1.2 IoT Edge yükleme adımları açık ve açık bir şekilde 2.

Zaten eski bir IoT Edge çalıştıran bir IoT Edge cihazınız varsa ve 1.2'ye yükseltmek için, IoT Edge güvenlik daemon'larını ve çalışma zamanlarını güncelleştirme adımlarını kullanın. Sürüm 1.2, yükseltme için gerekli olan IoT Edge önceki sürümlerden yeterince farklıdır.

Cihazınızın paket listelerini güncelleştirin.

sudo apt-get update

IoT Edge ve IoT kimlik hizmetinin hangi sürümlerinin kullanılabilir olduğunu kontrol edin.

apt list -a aziot-edge aziot-identity-service

IoT Edge ve IoT kimlik hizmeti paketinin en son sürümünü yüklemek için aşağıdaki komutu kullanın:

sudo apt-get install aziot-edge

Cihazı bulut kimliğiyle sağlama

Artık kapsayıcı altyapısı ve IoT Edge çalışma zamanı cihazınıza yüklendikten sonra, cihazı bulut kimliği ve kimlik doğrulama bilgileriyle ayarlamak için bir sonraki adıma hazır olursanız.

Uygulama IoT Edge yapılandırma dosyasını açın.

sudo nano /etc/iotedge/config.yaml

Dosyanın sağlama yapılandırmalarını bulun ve bağlantı dizesi kullanarak El ile sağlama yapılandırması bölümünü (henüz açıklanmamışsa) açıklayın.

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

Device_connection_string değerini IoT Edge bağlantı dizesiyle güncelleştirin. Diğer sağlama bölümlerinin açıklamalarını çıkaranın. Sağlama: satırın daha önce boşluk oluşturmay olduğundan ve iç içe geçmiş öğelerin iki boşlukla girintili olduğundan emin olun.

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

Dosyayı kaydedin ve kapatın.

CTRL + X, Y, Enter

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

sudo systemctl restart iotedge

Aşağıdaki komutu kullanarak IoT Edge anahtar kimlik doğrulaması ile hızlı bir şekilde yapılandırabilirsiniz:

sudo iotedge config mp --connection-string 'PASTE_DEVICE_CONNECTION_STRING_HERE'

komutu iotedge config mp cihazda bir yapılandırma dosyası oluşturur ve bağlantı dizenizi dosyaya girer.

Yapılandırma değişikliklerini uygulama.

sudo iotedge config apply

Yapılandırma dosyasını görmek için dosyayı açabilirsiniz:

sudo nano /etc/aziot/config.toml

Başarılı yapılandırmayı doğrulama

Çalışma zamanının başarıyla yük IoT Edge 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 sudo komutlarının önünde kullanın.

Sistem hizmetinin IoT Edge olup olun.

sudo systemctl status iotedge
sudo iotedge system status

Başarılı bir durum yanıtı: Ok .

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

journalctl -u iotedge
sudo iotedge system logs

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

sudo iotedge check

İpucu

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

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ışıyor olduğunu görüyor olun. edgeAgent modülü varsayılan olarak çalışır ve cihazınıza dağıtarak ek modülleri yüklemenize ve başlatmanıza yardımcı olur.

sudo iotedge list

Yeni bir cihaz IoT Edge cihaz, durum kodunu 417 -- The device's deployment configuration is not set Azure portal. Bu durum normaldir ve cihazın bir 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ında yer alan senaryolara göredir. Bu şunları içerebilir:

  • Çevrimdışı IoT Edge yükleme
  • Sürüm adayı sürümünü yükleme

Azure IoT Edge çalışma zamanının aracılığıyla kullanılabilir olmayan belirli bir sürümünü yüklemek için bu bölümdeki adımları apt-get install 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 daha eski bir sürümü veya sürüm adayı sürümünü yüklemek isteyen herkes için kullanılabilir.

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

  1. Azure IoT Edge sürümünegidin ve hedeflemek istediğiniz yayın sürümünü bulun.

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

  3. Her sürümde, güvenlik daemon'IoT Edge hsmlib için yeni dosyalar olması gerekir. Çevrimdışı bir cihaza IoT Edge, bu dosyaları zamanından önce indirin. Aksi takdirde, bu bileşenleri güncelleştirmek için aşağıdaki komutları kullanın.

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

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

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

    4. Aşağıdaki komutta kopyalanan bağlantıyı kullanarak güvenlik daemon'larının IoT Edge yükleyin.

      curl -L iotedge_link_here -o iotedge.deb && sudo apt-get install ./iotedge.deb
      

Not

Cihazınız şu anda 1.1 IoT Edge veya daha eski bir sürümde çalışıyorsa, bu bölümdeki adımları uygulamadan önce iotedge ve libiothsm-std paketlerini kaldırın. Daha fazla bilgi için bkz. 1.0 veya 1.1'den 1.2'ye güncelleştirme.

  1. Azure IoT Edge sürümünegidin ve hedeflemek istediğiniz yayın sürümünü bulun.

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

  3. Her sürümde, kimlik hizmeti IoT Edge yeni dosyalar olması gerekir. Çevrimdışı bir cihaza IoT Edge, bu dosyaları zamanından önce indirin. Aksi takdirde, bu bileşenleri güncelleştirmek için aşağıdaki komutları kullanın.

    1. Cihazınızın mimarisiyle eşleşen aziot-identity-service IoT Edge 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
      
    3. Cihazınızın mimarisiyle eşleşen aziot-edge IoT Edge dosyasını bulun. Dosya bağlantısına sağ tıklayın ve bağlantı adresini kopyalayın.

    4. Aşağıdaki komutta kopyalanan bağlantıyı kullanarak bu IoT Edge.

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

Kapsayıcı altyapısı ve IoT Edge çalışma zamanı cihazınıza yüklendikten sonra, bir sonraki adım için hazır olur ve bu da cihazı bulut kimliğiyle sağlama adımıdır.

Kaldırma IoT Edge

Cihaz yüklemesini kaldırmak IoT Edge aşağıdaki komutları kullanın.

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

sudo apt-get remove iotedge
sudo apt-get remove aziot-edge

Yapılandırma --purge dosyalarınız da dahil olmak üzere uygulamayla ilişkilendirilmiş tüm IoT Edge silmek için bayrağını kullanın. Yeniden yüklemek ve gelecekte aynı yapılandırma bilgilerini IoT Edge bu bayrağı dışarıda bırakın.

Çalışma IoT Edge kaldırıldığı zaman, oluşturduğu tüm kapsayıcılar durdurulur ancak yine de cihazda mevcut olur. Tümünü görüntüle kalanları görmek için kapsayıcıları kullanın.

sudo docker ps -a

İki çalışma zamanı kapsayıcısı dahil olmak üzere kapsayıcıları cihazdan silin.

sudo docker rm -f <container name>

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

sudo apt-get remove --purge moby-cli
sudo apt-get remove --purge moby-engine

Sonraki adımlar

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