إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ أجهزة Windows الظاهرية ✔️ مجموعات مقياس مرنة
قد تحتاج إلى إدخال برنامج نصي أو بيانات تعريف أخرى في جهاز Microsoft Azure الظاهري في وقت التزويد. يدعم Azure هذا السيناريو من خلال ميزة تسمى البيانات المخصصة.
يتم توفير البيانات المخصصة للجهاز الظاهري أثناء بدء التشغيل أو الإعداد الأول، وهو ما يُسمى بالتزويد. التزويد هو العملية التي يتم فيها إتاحة معلمات إنشاء الجهاز الظاهري (على سبيل المثال، اسم المضيف واسم المستخدم وكلمة المرور والشهادات والبيانات المخصصة والمفاتيح) إلى الجهاز الظاهري. عامل التزويد، مثل cloud-init، يعالج تلك المعايير.
ملحوظة
يقدم Azure أيضا ميزة بيانات مستخدم منفصلة. على عكس البيانات المخصصة، يمكن استرجاع بيانات المستخدم من خدمة بيانات Azure Instance Metadata Service (IMDS)، وتستمر طوال عمر الجهاز الافتراضي، ويمكن تحديثها دون إيقاف أو إعادة تصوير الجهاز الافتراضي. استخدم بيانات المستخدم عندما تحتاج إلى وصول أو تحديثات بعد التجهيز؛ استخدم بيانات مخصصة عندما تحتاج إلى معالجة حمولة بواسطة وكيل التوفير عند الإقلاع الأول.
تمرير البيانات المخصصة إلى الجهاز الظاهري
لاستخدام البيانات المخصصة، يجب عليك ترميز Base64 للمحتويات قبل تمرير البيانات إلى واجهة برمجة التطبيقات--إلا إذا كنت تستخدم أداة CLI تتولى التحويل نيابةً عنك، مثل Azure CLI. لا يمكن أن يتجاوز الحجم 64 كيلوبايت.
في CLI، يمكنك تمرير بياناتك المخصصة كملف، كما يوضح المثال التالي. يتم تحويل الملف إلى Base64.
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--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.
يتم تأمين مجلد %SystemDrive%\AzureData أثناء التوفير بحيث يكون التحكم الكامل فقط في NT AUTHORITY\SYSTEMوBUILTIN\Administrators ، ويرث CustomData.bin هذه الأذونات. إذا قمت بنسخ CustomData.bin في مكان آخر للمعالجة، اضبط الأذونات على الوجهة بشكل صريح، لأن الأذونات لا تنتقل مع الملف..
Linux
على أنظمة تشغيل Linux، تُمرر البيانات المخصصة إلى الجهاز الظاهري عبر ملف ovf-env.xml. يُنسخ هذا الملف إلى الدليل /var/lib/waagent أثناء التزويد. نسخ الإصدارات الأحدث من عامل Linux البيانات المشفرة Base64 إلى /var/lib/waagent/CustomData للراحة.
يدعم Azure حالياً وكيلي تزويد:
Linux Agent. بشكل افتراضي، لا يقوم العامل بمعالجة البيانات المخصصة. تحتاج إلى إنشاء صورة مخصصة مع تمكين البيانات. الإعدادات ذات الصلة هي:
Provisioning.DecodeCustomDataProvisioning.ExecuteCustomData
عند تمكين البيانات المخصصة وتشغيل برنامج نصي، لن يبلغ الجهاز الظاهري عن توفير جهاز ظاهري ناجح حتى ينتهي البرنامج النصي من التنفيذ. إذا تجاوز البرنامج النصي الحد الزمني الإجمالي لتوفير الجهاز الظاهري وهو 40 دقيقة، يفشل إنشاء الجهاز الظاهري.
إذا فشل البرنامج النصي في التشغيل، أو حدثت أخطاء أثناء التنفيذ، فهذا لا يُعد فشلاً فادحاً في التزويد. تحتاج إلى إنشاء مسار إعلام لتنبيهك بحالة إكمال البرنامج النصي.
لاستكشاف أخطاء تنفيذ البيانات المخصصة وإصلاحها، راجع /var/log/waagent.log.
تهيئة السحابة. بشكل افتراضي، يعالج هذا العامل البيانات المخصصة. يقبل تنسيقات متعددة من البيانات المخصصة، مثل تكوين تهيئة السحابة والبرامج النصية.
على غرار «Linux Agent»، إذا حدثت أخطاء أثناء تنفيذ معالجة التكوين أو البرامج النصية عندما تعالج تهيئة السحابة البيانات المخصصة، فهذا لا يُعد فشلاً فادحاً في التزويد. تحتاج إلى إنشاء مسار إعلام لتنبيهك بحالة إكمال البرنامج النصي.
ومع ذلك، وعلى عكس Linux Agent، لا تنتظر تهيئة السحابة انتهاء تكوينات البيانات المخصصة من المستخدم قبل إبلاغ النظام الأساسي بأن الجهاز الظاهري جاهز. لمزيد من المعلومات عن تهيئة السحابة على Azure، بما في ذلك استكشاف الأخطاء وإصلاحها، راجع دعم تهيئة السحابة للأجهزة الظاهرية في Azure.
الأسئلة المتداولة
هل يمكنني تحديث البيانات المخصصة بعد إنشاء الجهاز الظاهري؟
بالنسبة إلى الأجهزة الظاهرية الفردية، لا يمكنك تحديث البيانات المخصصة في نموذج الجهاز الظاهري. ولكن بالنسبة لمجموعات مقياس الجهاز الظاهري، يمكنك تحديث البيانات المخصصة. لمزيد من المعلومات، راجع تعديل مجموعة تحجيم. عند تحديث البيانات المخصصة في النموذج لمجموعة مقياس الجهاز الظاهري:
- لا تحصل المثيلات الموجودة في مجموعة المقياس على البيانات المخصصة المحدثة حتى يتم تحديثها إلى أحدث نموذج وإعادة تصورها.
- تتلقى المثيلات الجديدة البيانات المخصصة الجديدة.
هل يمكنني وضع قيم حساسة في بيانات مخصصة؟
ننصح بعدم تخزين البيانات الحساسة في بيانات مخصصة. لمزيد من المعلومات، راجع أفضل ممارسات أمان بيانات Azure وتشفيرها.
هل تتوفر البيانات المخصصة في IMDS؟
لا. لا يتم عرض البيانات المخصصة عبر خدمة بيانات Azure Instance Metadata Service (IMDS). إذا كنت بحاجة لاسترجاع حمولة من داخل الجهاز الافتراضي بعد التجهيز، أو تحديثها دون إيقاف أو إعادة تصوير الجهاز الافتراضي، استخدم ميزة بيانات المستخدم بدلا من ذلك. للمزيد من التفاصيل حول قراءة بيانات المستخدمين من IMDS، راجع الحصول على بيانات المستخدمين.