تشغيل Azure IoT Edge على أجهزة Ubuntu الظاهرية

ينطبق على: علامة اختيار IoT Edge 1.5 IoT Edge 1.5 علامة اختيار IoT Edge 1.4 IoT Edge 1.4

هام

IoT Edge 1.5 LTS وIoT Edge 1.4 LTS هي إصدارات مدعومة. IoT Edge 1.4 LTS هو نهاية العمر الافتراضي في 12 نوفمبر 2024. إذا كنت تستخدم إصدارا سابقا، فشاهد تحديث IoT Edge.

وقت تشغيل Azure IoT Edge هو ما يحول الجهاز إلى جهاز IoT Edge. يمكن استخدام وقت التشغيل على أجهزة صغيرة مثل Raspberry Pi أو كبيرة مثل الخادم الصناعي. بمجرد تكوين جهاز بوقت تشغيل IoT Edge، يمكنك البدء في استخدام منطق تسلسل العمل عليه من السحابة.

لمعرفة المزيد حول كيفية عمل وقت تشغيل IoT Edge والمكونات المضمنة، راجع فهم وقت تشغيل Azure IoT Edge وهندسته.

تسرد هذه المقالة خطوات نشر جهاز ظاهري Ubuntu مع وقت تشغيل Azure IoT Edge المثبت والمكون باستخدام جهاز مزود مسبقا سلسلة الاتصال. يتم إنجاز النشر باستخدام قالب Azure Resource Manager المستند إلى cloud-init والمحتفظ به في مستودع مشروع iotedge-vm-deploy.

عند التمهيد الأول، يقوم الجهاز الظاهري بتثبيت أحدث إصدار من وقت تشغيل Azure IoT Edge عبر cloud-init. كما أنه يعين سلسلة الاتصال المتوفرة قبل بدء وقت التشغيل، مما يسمح لك بتكوين جهاز IoT Edge وتوصيله بسهولة دون الحاجة إلى بدء SSH أو جلسة عمل سطح مكتب بعيد.

النشر باستخدام زر النشر في Azure

يسمح الزر Deploy to Azure بالنشر المبسط لقوالب Azure Resource Manager التي يتم الاحتفاظ بها على GitHub. يوضح هذا القسم استخدام الزر Deploy to Azure المضمن في مستودع مشروع iotedge-vm-deploy .

  1. ستقوم بنشر جهاز Linux VM ممكن عليه Azure IoT Edge باستخدام قالب iotedge-vm-deploy Azure Resource Manager. للبدء، حدد الزر التالي:

    التوزيع إلى زر Azure لـ iotedge-vm-deploy

  2. في الإطار الذي تم إطلاقه حديثًا، قم بتعبئة حقول النموذج المتوفرة:

    لقطة شاشة تظهر قالب iotedge-vm-deploy

    الحقل ‏‏الوصف
    الاشتراك اشتراك Azure النشط لنشر الجهاز الظاهري فيه.
    مجموعة الموارد مجموعة موارد موجودة، أو تم إنشاؤها حديثًا؛ لاحتواء الجهاز الظاهري، والموارد المرتبطة به.
    المنطقة المنطقة الجغرافية لنشر الجهاز الظاهري فيها، يتم تعيين هذه القيمة افتراضيا إلى موقع مجموعة الموارد المحددة.
    بادئة تسمية DNS قيمة مطلوبة من اختيارك تُستخدم لبادئة اسم مضيف الجهاز الظاهري.
    اسم مستخدم المسؤول اسم مستخدم يتم توفير امتيازات الجذر عند النشر.
    سلسلة اتصال الجهاز سلسلة الاتصال جهاز لجهاز تم إنشاؤه داخل IoT Hub المقصود.
    حجم الجهاز الظاهري حجم الجهاز الظاهري الذي سيتم نشره.
    إصدار نظام التشغيل Ubuntu إصدار نظام تشغيل Ubuntu الواجب تثبيته على الجهاز الظاهري الرئيسي.
    نوع المصادقة اختر sshPublicKey أو كلمة المرور وفقا لتفضيلاتك.
    كلمة مرور أو مفتاح المسؤول قيمة مفتاح SSH العام أو قيمة كلمة السر اعتمادًا على اختيار نوع المصادقة.

    حدد Next : Review + create لمراجعة الشروط وحدد إنشاء لبدء النشر.

  3. تحقق من اكتمال النشر بنجاح. يتم نشر مورد جهاز ظاهري في مجموعة الموارد المحددة. لاحظ اسم الجهاز، يجب أن يكون هذا بالتنسيق vm-0000000000000. أيضًا، تدوين ملاحظة بـ اسم DNSالمقترن، والتي ينبغي أن يكون بتنسيق <dnsLabelPrefix>.<location>.cloudapp.azure.com.

    يمكن الحصول على اسم DNS من قسم Overview من الجهاز الظاهري المنشور حديثًا داخل مدخل Azure.

    لقطة شاشة توضح اسم dns في الجهاز الافتراضي iotedge

  4. إذا أردت SSH في هذا الجهاز الافتراضي بعد الإعداد، استخدم DNS Nameبالأمر:.ssh <adminUsername>@<DNS_Name>

النشر من Azure CLI

  1. تأكد من تثبيت ملحق Azure CLI iot مع:

    az extension add --name azure-iot
    
  2. بعد ذلك، إذا كنت تستخدم Azure CLI على سطح المكتب، فابدأ بتسجيل الدخول:

    az login
    
  3. إذا كان لديك اشتراكات متعددة، فحدد الاشتراك الذي تريد استخدامه:

    1. سرد اشتراكاتك:

      az account list --output table
      
    2. انسخ حقل SubscriptionID للاشتراك الذي تريد استخدامه.

    3. قم بتعيين اشتراك العمل الخاص بك بالمعرف الذي نسخته:

      az account set -s <SubscriptionId>
      
  4. إنشاء مجموعة موارد جديدة (أو تحديد مجموعة موجودة في الخطوات التالية):

    az group create --name IoTEdgeResources --location westus2
    
  5. إنشاء جهاز ظاهري جديد:

    لاستخدام authenticationType من password، راجع المثال التالي:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='password' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
    

    للمصادقة باستخدام مفتاح SSH، حدد authenticationType من sshPublicKey، ثم قم بتوفير قيمة مفتاح SSH في المعلمة adminPasswordOrKey. راجع المثال التالي:

    #Generate the SSH Key
    ssh-keygen -m PEM -t rsa -b 4096 -q -f ~/.ssh/iotedge-vm-key -N ""
    
    #Create a VM using the iotedge-vm-deploy script
    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='sshPublicKey' \
    --parameters adminPasswordOrKey="$(< ~/.ssh/iotedge-vm-key.pub)"
    
  6. تحقق من اكتمال النشر بنجاح. يجب نشر مورد جهاز ظاهري في مجموعة الموارد المحددة. لاحظ اسم الجهاز، يجب أن يكون هذا بالتنسيق vm-0000000000000. أيضًا، تدوين ملاحظة بـ اسم DNSالمقترن، والتي ينبغي أن يكون بتنسيق <dnsLabelPrefix>.<location>.cloudapp.azure.com.

    يمكن الحصول على اسم DNS من الإخراج بتنسيق JSON للخطوة السابقة، ضمن قسم المخرجات كجزء من إدخال SSH العام. يمكن استخدام قيمة هذا الإدخال ل SSH إلى الجهاز المنشور حديثا.

    "outputs": {
      "public SSH": {
        "type": "String",
        "value": "ssh <adminUsername>@<DNS_Name>"
      }
    }
    

    يمكن أيضا الحصول على اسم DNS من قسم Overview للجهاز الظاهري المنشور حديثا داخل مدخل Microsoft Azure.

    لقطة شاشة توضح اسم dns في الجهاز الافتراضي iotedge

  7. إذا أردت SSH في هذا الجهاز الافتراضي بعد الإعداد، استخدم DNS Nameبالأمر:.ssh <adminUsername>@<DNS_Name>

الخطوات التالية

الآن بعد أن أصبح لديك جهاز IoT Edge مزود بوقت التشغيل مثبتا، يمكنك نشر وحدات IoT Edge النمطية.

إذا كنت تواجه مشكلات في تثبيت وقت تشغيل IoT Edge بشكل صحيح، فراجع صفحة استكشاف الأخطاء وإصلاحها .

لتحديث تثبيت موجود إلى أحدث إصدار من IoT Edge، راجع تحديث البرنامج الخفي لأمان IoT Edge ووقت التشغيل.

إذا كنت ترغب في فتح المنافذ للوصول إلى الجهاز الظاهري من خلال SSH أو الاتصالات الواردة الأخرى، فراجع وثائق Azure Virtual Machines حول فتح المنافذ ونقاط النهاية إلى جهاز Linux الظاهري.