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

ينطبق على:IoT Edge 1.4 checkmark IoT Edge 1.4

هام

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

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

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

تسرد هذه المقالة خطوات نشر جهاز ظاهري Ubuntu 20.04 LTS مع تثبيت وقت تشغيل 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. للبدء، انقر على الزر أدناه:

    Deploy to Azure Button for iotedge-vm-deploy

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

    Screenshot showing the iotedge-vm-deploy template

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

    عند تعبئة كافة الحقول، انقر فوق الزر الموجود في الأسفل للانتقال إلى Next : Review + create حيث يمكنك مراجعة الشروط والنقر فوق إنشاء لبدء النشر.

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

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

    Screenshot showing the dns name of the iotedge vm

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

    Screenshot showing the dns name of the iotedge vm

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

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

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

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

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

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