كيفية ومكان تثبيت عامل OSConfig لنظام التشغيل Linux

هذه المقالة مخصصة للأشخاص الذين يرغبون في إضافة قدرات OSConfig إلى أجهزتهم، بحيث يمكن توفير تكوينهم وإدارته ومراقبته عبر خدمات Azure IoT. يمكن أن يشمل ذلك منشئي الأجهزة ومدمجي الأنظمة ومنشئي الحلول وما إلى ذلك.

عامل OSConfig هو مكون Linux مدمج يعرض التكوين المحلي لكل جهاز في Azure IoT للتزويد والإدارة على نطاق واسع. للسياق حول دوافع OSConfig واستخدامه، راجع: ما هو OSConfig ل IoT.

مقياس الأسطول أو جهاز واحد؟

  • لبدء تجربة السيناريوهات، يمكنك تثبيت OSConfig على جهاز واحد.

  • على نطاق واسع، يجب أن يكون لكل جهاز سيتم توفير تكوينه وإدارته عامل OSConfig، كما هو الحال في الرسم التخطيطي التالي.

    رسم تخطيطي يوضح أجهزة متعددة تتصل ب IoT Hub، مع توأم OSConfig لكل منها.

    عادة ما يتم تضمين عامل OSConfig في صور نظام تشغيل الجهاز المرجعية، والتي يتم تطبيقها بعد ذلك على العديد من الأجهزة.

ما هي أنواع الأجهزة؟

فئات الأجهزة

راجع الجدول أدناه للحصول على ملخص. تتبع الملاحظات التفصيلية الجدول.

تثبيت OSConfig؟
فئة MCU ¹ ليس الآن
وحدة معالجة مركزية/وحدة معالجة مركزية أقل قوة w/ Linux ² نعم
أجهزة أكثر قوة w/ Linux ³ نعم
الأجهزة التي تعمل بنظام التشغيل Windows IoT قدرات مماثلة
مرجع CSP مضمن

¹ فئة MCU: للسياق، قد تتضمن هذه أجهزة Arduino والأجهزة المستندة إلى RP2040 وما إلى ذلك. تقوم هذه الأجهزة عادة بتشغيل تعليمة برمجية محددة للسيناريو بدون نظام تشغيل أو مع نظام تشغيل صغير مثل AzureRTOS أو FreeRTOS.

أدنى قوة لوحدة المعالجة المركزية/ وحدة المعالجة المركزية من فئة w/ Linux: تم تصميم العامل ليكون مضغوطا وفعالا، ما يتيح الاستخدام وصولا إلى الأجهزة الأصغر القادرة على تشغيل Linux.

³ حساب حافة أكثر قوة w/ Linux: كمكون فعال من جانب الجهاز، عامل OSConfig هو تماما في المنزل على أجهزة حوسبة حافة أكثر قوة مثل مجموعات NVidia Jetson.

Linux "أجهزة IoT" مقابل Linux "أجهزة Edge"

في النظام البنائي ل Azure IoT لنظام Linux، تستخدم أحيانا مصطلحات جهاز IoT مقابل جهاز Edge للتمييز بين ما إذا كان الجهاز مثبتا عليه IoT Edge. هناك أيضا ارتباط فضفاض مع فئة الجهاز (تميل الأجهزة الأكبر إلى تثبيت IoT Edge).

يعمل OSConfig في أي من السياقين. يمكن تشغيله جنبا إلى جنب مع IoT Edge، ولكنه لا يتطلب IoT Edge.

ماذا عن أسرار الجهاز، وماذا عن تطبيقات/عوامل/وحدات متعددة؟

نوصي باستخدام OSConfig مع خدمة هوية Azure IoT (AIS).

AIS هو وسيط Microsoft على الجهاز للتعامل مع الأسرار والمصادقة. تجعل واجهة برمجة التطبيقات من السهل على العديد من التطبيقات والوكلاء و/أو وحدات Edge مشاركة هوية جهاز واحد. توضح الخطوات أدناه استخدام AIS وOSConfig معا.

تتوفر AIS مستقلة، ويتم تضمينها أيضا في IoT Edge 1.2 والإكبر. ضع في اعتبارك ما يلي عند التثبيت.

تثبيت AIS؟
لا يحتوي الجهاز على IoT Edge (المعروف أيضا باسم "جهاز IoT") نعم
يحتوي الجهاز على IoT Edge 1.2 أو أحدث نعم¹
يحتوي الجهاز على IoT Edge 1.1 أو أقل بلا مربع

¹ يتضمن IoT Edge 1.2 والإكبر مكونات AIS. لتبسيط الإرشادات، تتضمن الخطوات أدناه دائما تثبيت AIS. يتيح هذا الأسلوب لمدير الحزمة اكتشاف ما إذا كانت هذه الخطوة غير عملية، بدلا من إعادة إنشاء هذا المنطق خارجيا.

2 لا تقم بتثبيت AIS على الأجهزة ذات IoT Edge 1.1 أو أقل. ضع في اعتبارك الانتقال إلى إصدار أحدث من IoT Edge. إذا لم تكن مستعدا لترقية IoT Edge ولكنك لا تزال ترغب في استكشاف سيناريوهات OSConfig، ففكر في تجربة السيناريوهات على جهاز آخر أو جهاز ظاهري في الوقت الحالي.

الوظيفة 1. تثبيت المكونات على الجهاز

هناك ثلاثة خيارات لتناسب احتياجاتك:

  • أ. تثبيت الحزم
  • ب. البنية من المصدر
  • ج. استخدام الأجهزة ذات الإمكانات المضمنة

اختر تجربتك المفضلة أدناه للحصول على الإرشادات:

تتوفر حزم التثبيت الجاهزة ل arm64 (المعروف أيضا باسم aarch64)، amd64 (المعروف أيضا باسم x86_64) على:

  • Debian 10
  • Debian 11
  • Ubuntu Server 18.04
  • Ubuntu Server 20.04

الخطوة 1.1. توصيل جهاز packages.microsoft.com

يمكنك استخدام أمثلة الأوامر التالية لتوصيل مدير حزمة نظام التشغيل بالقناة الثابتة على packages.microsoft.com.

#!/bin/bash

## For Ubuntu and on Debian 10+

## Register packages.microsoft.com key and prod channel
sudo wget https://packages.microsoft.com/keys/microsoft.asc -O /etc/apt/trusted.gpg.d/packages-microsoft-com_key.asc
os_name=$(grep ^ID= /etc/os-release | tr -d "ID=")
os_version=$(grep ^VERSION_ID /etc/os-release | tr -d "VERSION_ID=")
sudo wget https://packages.microsoft.com/config/"$os_name"/"$os_version"/prod.list -O /etc/apt/sources.list.d/packages-microsoft-com_prod.list
sudo apt update

تلميح

يربط المثال أعلاه مدير الحزمة prod بالقناة على packages.microsoft.com، وهو مناسب لمعظم الأجهزة والمواقف. للحصول على معلومات حول إصدارات المعاينة، راجع: حول إصدارات OSConfig أو إصدارات "insider"

الخطوة 1.2. تثبيت حزمة AIS

تنبيه

كما هو مذكور أعلاه، لا تقم بتثبيت AIS على جهاز مع IoT Edge 1.1 أو أقل. AIS مخصصة للأجهزة التي لا تتضمن IoT Edge، أو الأجهزة ذات IoT Edge 1.2 أو أعلى.

sudo apt-get install -y aziot-identity-service

الخطوة 1.3. تثبيت حزمة OSConfig

sudo apt-get install -y osconfig

إذا كنت تقوم فقط بتثبيت المكونات في هذا الوقت (على سبيل المثال إعداد صورة أساسية) لا تتصل ب Azure، يمكنك التوقف هنا. سيتم تنفيذ الخطوات التالية لاحقا، ربما من قبل عميلك.

الوظيفة 2. قم بالاتصال بـ Azure

الآن بعد أن أصبح عامل OSConfig و AIS موجودين على الجهاز، فإن الخطوة التالية هي تكوين الجهاز بهوية حتى يتمكن من الاتصال ب Azure.

تلميح

قد يكون لدى بعض الأجهزة آليات للقيام بذلك نيابة عنك. على سبيل المثال، تتضمن أجهزة Azure Percept تجربة إعداد للاتصال بالجهاز.

الخطوة 2.1. تعيين بيانات اعتماد الجهاز إلى AIS على الجهاز

تدعم AIS سيناريوهات توزيع متعددة وأساليب مصادقة.

يستخدم المثال التبسيط التالي سلسلة اتصال بمفتاح متماثل. بالنسبة لسيناريوهات الإنتاج، اختر من بين خيارات المصادقة الأقوى الموضحة في تكوين خدمة هوية Azure IoT.

مثال سريع: الاتصال بمفتاح متماثل

في مدخل Microsoft Azure:

  1. انتقل إلى قائمة أجهزة IoT Hub
  2. إنشاء هوية جهاز إذا لزم الأمر
  3. استعرض للوصول إلى خصائص الجهاز، وانسخ سلسلة الاتصال

على الجهاز:

  1. قم بتشغيل الأوامر التالية لتعيين بيانات الاعتماد إلى AIS، واستبدال العنصر النائب لسلسلة الاتصال بعنادك الخاص.
sudo aziotctl config mp –-connection-string "<your connection string from IoT Hub>"
sudo aziotctl config apply

الخطوة 2.2. التحقق من الاتصال الناجح ب Azure

يمكنك التحقق من اتصال AIS و OSConfig ب IoT Hub باستخدام هذه الأوامر على الجهاز:

sudo aziotctl check
sudo systemctl status osconfig | grep Active

يجب أن يشير إخراج aziotctl check الأمر إلى اجتياز جميع الاختبارات.

يجب أن يتضمن Active: activeإخراج .systemctl status osconfig في بعض الحالات قد ترى Active: activating (auto-restart) بدلا من ذلك، ما يعني أن systemd ينتظر على مؤقت لإعادة تشغيل الخدمة. لتجاوز هذا على الفور بدلا من الانتظار، قم بتشغيل sudo systemctl restart osconfig، ثم جرب أمر الحالة مرة أخرى.

اكتمل الأمر الآن! عميل OSConfig قيد التشغيل الآن على جهازك.

إعدادات العامل الاختيارية

يمكن للعديد من الأشخاص تخطي هذا القسم واستخدام السلوكيات الافتراضية ببساطة. إذا كان لديك قيود البيئة أو الحوكمة مثل الخوادم الوكيلة أو قيود جدار الحماية الصادرة أو الشبكات ذات الطبقات، فشاهد ما يلي:

تحديد بروتوكول IoT Hub

تلميح

تمت إضافة تحديد البروتوكول إلى قناة prod/stable في الإصدار v1.0.2.2022040405. تأكد من استخدام أحدث إصدار prod/مستقر من OSConfig.

عند الاتصال ب IoT Hub، يمكن لعامل OSConfig استخدام نقل بيانات تتبع الاستخدام العادي في قائمة انتظار الرسائل (MQTT) أو يمكنه استخدام MQTT عبر WebSockets (MQTT_WS).

لا يحتاج العديد من الأشخاص إلى تحديد بروتوكول، ويمكنهم ببساطة استخدام السلوكيات الافتراضية. إذا كنت بحاجة إلى تحديد بروتوكول استنادا إلى أحد الاعتبارات التالية، يمكنك تعيين Protocol القيمة في /etc/osconfig/osconfig.json.

MQTT MQTT_WS
منفذ TCP ¹ 8883 443
خادم الوكيل ² لا نعم
بوابة IoT Edge
(الأصل/الطفل) ³
نعم لا
معرف البروتوكول
لتعيين في osconfig.json
1 2

¹ يشير إلى منفذ TCP المستخدم عندما يتصل عامل OSConfig على الجهاز الصادر ب IoT Hub

يشير ² إلى ما إذا كان OSConfig يمكنه استخدام خادم وكيل HTTP بشكل صريح (عبر متغير بيئة https_proxy)

³ يشير إلى سيناريو بوابة IoT Edge الشفافة، حيث يتصل OSConfig الذي يعمل على جهاز تابع ب IoT Hub عبر جهاز أصل

الاتصال من خلال خادم وكيل HTTP

إذا كانت بيئتك تتطلب OSConfig للاتصال ب IoT Hub عبر خادم وكيل HTTP، فشاهد ما يلي:

تلميح

تمت إضافة دعم الخادم الوكيل إلى القناة prod/stable في الإصدار v1.0.2.2022040405. Ensure you are using the latest prod/stable version of OSConfig.

  1. كما هو ملاحظ في تحديد بروتوكول IoT Hub، يمكن استخدام MQTT_WS فقط مع خادم وكيل HTTP. لتنشيط MQTT_WS، تأكد من Protocol تعيين القيمة في /etc/osconfig/osconfig.json إلى 2.

  2. تأكد من https_proxy تعيين متغير البيئة أو HTTPS_PROXY في السياق حيث يتم تشغيل OSConfig.

    عادة ما ينقل sysadmins أو منشئو الصور هذا عن طريق تحرير ملفات الوحدة النظامية لأي خدمات (بما في ذلك OSConfig) التي يجب أن تستخدم الخادم الوكيل.

    على سبيل المثال، يمكنك إضافة سطر مثل
    Environment="https_proxy=http://myproxy.example.com:3128"
    [Service] إلى جزء من /etc/systemd/system/osconfig.service.
    تأكد من تشغيل sudo systemctl daemon-reload الملف sudo systemctl restart osconfig وبعد تحريره.

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

الآن بعد أن أصبح لديك جهاز يقوم بتشغيل OSConfig ومتصل ب Azure IoT، يمكنك تجربة سيناريوهات الإدارة.

للحصول على نظرة عامة على سيناريوهات وقدرات OSConfig، راجع:

للحصول على أمثلة عملية محددة، راجع: