البيانات المخصصة وتهيئة السحابة على أجهزة Azure الظاهرية

تنبيه

تشير هذه المقالة إلى CentOS، وهو توزيع Linux يقترب من حالة نهاية العمر الافتراضي (EOL). يرجى مراعاة استخدامك والتخطيط وفقا لذلك. لمزيد من المعلومات، راجع إرشادات نهاية العمر الافتراضي CentOS.

ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ أجهزة Windows الظاهرية ✔️ مجموعات مقياس مرنة

قد تحتاج إلى إدخال برنامج نصي أو بيانات تعريف أخرى في جهاز Microsoft Azure الظاهري في وقت التزويد. في السُحب الأخرى، غالباً ما يطلق على هذا المفهوم بيانات المستخدم. يحتوي Microsoft Azure على ميزة مماثلة تُسمى البيانات المخصصة.

يتم توفير البيانات المخصصة للجهاز الظاهري أثناء بدء التشغيل أو الإعداد الأول، وهو ما يُسمى بالتزويد. التزويد هو العملية التي يتم فيها إتاحة معلمات إنشاء الجهاز الظاهري (على سبيل المثال، اسم المضيف واسم المستخدم وكلمة المرور والشهادات والبيانات المخصصة والمفاتيح) إلى الجهاز الظاهري. يتولى وكيل التزويد، مثل Linux Agent أو عمليات تهيئة السحابة، معالجة هذه المعلمات.

تمرير البيانات المخصصة إلى الجهاز الظاهري

لاستخدام البيانات المخصصة، يجب عليك ترميز Base64 للمحتويات قبل تمرير البيانات إلى واجهة برمجة التطبيقات--إلا إذا كنت تستخدم أداة CLI تتولى التحويل نيابةً عنك، مثل Azure CLI. لا يمكن أن يتجاوز الحجم 64 كيلوبايت.

في CLI، يمكنك تمرير بياناتك المخصصة كملف، كما يوضح المثال التالي. يتم تحويل الملف إلى Base64.

az vm create \
  --resource-group myResourceGroup \
  --name centos74 \
  --image OpenLogic:CentOS-CI:7-CI:latest \
  --custom-data cloud-init.txt \
  --generate-ssh-keys

في Azure Resource Manager، هناك دالة base64:

"name": "[parameters('virtualMachineName')]",
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2019-07-01",
"location": "[parameters('location')]",
"dependsOn": [
..],
"variables": {
        "customDataBase64": "[base64(parameters('stringData'))]"
    },
"properties": {
..
    "osProfile": {
        "computerName": "[parameters('virtualMachineName')]",
        "adminUsername": "[parameters('adminUsername')]",
        "adminPassword": "[parameters('adminPassword')]",
        "customData": "[variables('customDataBase64')]"
        },

معالجة البيانات المخصصة

يتعامل وكلاء التزويد المثبتون على الأجهزة الظاهرية مع الاتصال بالنظام الأساسي ووضع البيانات على نظام الملفات.

Windows

تُوضع البيانات المخصصة في %SYSTEMDRIVE%\AzureData\CustomData.bin كملف ثنائي، لكن لم تتم معالجتها. إذا كنت ترغب في معالجة هذا الملف، تحتاج إلى إنشاء صورة مخصصة وكتابة التعليمات البرمجية لمعالجة CustomData.bin.

Linux

على أنظمة تشغيل Linux، تُمرر البيانات المخصصة إلى الجهاز الظاهري عبر ملف ovf-env.xml. يُنسخ هذا الملف إلى الدليل /var/lib/waagent أثناء التزويد. نسخ الإصدارات الأحدث من عامل Linux البيانات المشفرة Base64 إلى /var/lib/waagent/CustomData للراحة.

يدعم Azure حالياً وكيلي تزويد:

  • Linux Agent. بشكل افتراضي، لا يقوم العامل بمعالجة البيانات المخصصة. تحتاج إلى إنشاء صورة مخصصة مع تمكين البيانات. الإعدادات ذات الصلة هي:

    • Provisioning.DecodeCustomData
    • Provisioning.ExecuteCustomData

    عند تمكين البيانات المخصصة وتشغيل برنامج نصي، لن يبلغ الجهاز الظاهري عن توفير جهاز ظاهري ناجح حتى ينتهي البرنامج النصي من التنفيذ. إذا تجاوز البرنامج النصي الحد الزمني الإجمالي لتوفير الجهاز الظاهري وهو 40 دقيقة، يفشل إنشاء الجهاز الظاهري.

    إذا فشل البرنامج النصي في التشغيل، أو حدثت أخطاء أثناء التنفيذ، فهذا لا يُعد فشلاً فادحاً في التزويد. تحتاج إلى إنشاء مسار إعلام لتنبيهك بحالة إكمال البرنامج النصي.

    لاستكشاف أخطاء تنفيذ البيانات المخصصة وإصلاحها، راجع /var/log/waagent.log.

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

    على غرار «Linux Agent»، إذا حدثت أخطاء أثناء تنفيذ معالجة التكوين أو البرامج النصية عندما تعالج تهيئة السحابة البيانات المخصصة، فهذا لا يُعد فشلاً فادحاً في التزويد. تحتاج إلى إنشاء مسار إعلام لتنبيهك بحالة إكمال البرنامج النصي.

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

الأسئلة المتداولة

هل يمكنني تحديث البيانات المخصصة بعد إنشاء الجهاز الظاهري؟

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

  • لا تحصل المثيلات الموجودة في مجموعة المقياس على البيانات المخصصة المحدثة حتى يتم تحديثها إلى أحدث نموذج وإعادة تصورها.
  • تتلقى المثيلات الجديدة البيانات المخصصة الجديدة.

هل يمكنني وضع قيم حساسة في بيانات مخصصة؟

ننصح بعدم تخزين البيانات الحساسة في بيانات مخصصة. لمزيد من المعلومات، راجع أفضل ممارسات أمان بيانات Azure وتشفيرها.

هل تتوفر البيانات المخصصة في IMDS؟

البيانات المخصصة غير متوفرة في خدمة بيانات تعريف مثيل Azure (IMDS). نقترح استخدام بيانات المستخدم في IMDS بدلاً من ذلك. لمزيد من المعلومات، راجع بيانات المستخدم من خلال خدمة بيانات تعريف مثيل Azure.