استخدام cloud-init لتحديث الحزم وتثبيتها في جهاز Azure ظاهري بنظام التشغيل Linux

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

توضح لك هذه المقالة كيفية استخدام cloud-init لتحديث الحزم على جهاز ظاهري (VM) بنظام التشغيل Linux أو مجموعات مقياس الجهاز الظاهري في وقت التوفير في Azure. يتم تشغيل برامج cloud-init النصية هذه على التمهيد الأول بمجرد توفير الموارد بواسطة Azure. لمزيد من المعلومات عن كيفية عمل cloud-init بالأصل في Azure وتوزيعات Linux المدعومة، راجع نظرة عامة على cloud-init

تحديث جهاز ظاهري باستخدام cloud-init

لأغراض أمنية، قد تحتاج إلى تكوين جهاز ظاهري لتطبيق آخر التحديثات عند التمهيد الأول. نظرا لأن cloud-init يعمل عبر توزيعات Linux المختلفة، فليس هناك حاجة لتحديد apt، zypper أو yum لمدير الحزمة. وبدلاً من ذلك، يمكنك تحديد package_upgrade والسماح لعملية cloud-init بتحديد الآلية المناسبة للتوزيع قيد الاستخدام.

على سبيل المثال، نستخدم Azure Cloud Shell. لرؤية عملية الترقية قيد التنفيذ، قم بإنشاء ملف باسم cloud_init_upgrade.txt وألصق التكوين التالي. يمكنك استخدام أي محرر ترغبه. تأكد من نسخ ملف cloud-init بالكامل بشكل صحيح، خاصة السطر الأول.

انسخ النص أدناه وألصقه في الملف cloud_init_upgrade.txt. تأكد من نسخ ملف cloud-init بالكامل بشكل صحيح، خاصة السطر الأول.

#cloud-config
package_upgrade: true
packages:
- httpd

قبل التوزيع، تحتاج إلى إنشاء مجموعة موارد باستخدام الأمر az group create. مجموعة موارد Azure هي حاوية منطقية يتم بها نشر موارد Azure وإدارتها. في المثال التالي، سيتم إنشاء مجموعة موارد باسم myResourceGroup في موقع eastus.

az group create --name myResourceGroup --location eastus

الآن، قم بإنشاء جهاز ظاهري باستخدام az vm create وتحديد ملف cloud-init باستخدام المعلمة --custom-data كما يلي:

az vm create \
  --resource-group myResourceGroup \
  --name vmName \
  --image imageCIURN \
  --custom-data cloud_init_upgrade.txt \
  --admin-username azureuser \
  --generate-ssh-keys

إشعار

استبدل قيم myResourceGroup وvmName و imageCIURN وفقا لذلك. تأكد من اختيار صورة مع Cloud-init.

SSH إلى عنوان IP العام للجهاز الظاهري الموضح في الإخراج من الأمر السابق. أدخل المستخدم الخاص بك و publicIpAddress كما يلي:

ssh <user>@<publicIpAddress>

تشغيل أداة إدارة الحزمة والتحقق من وجود تحديثات:

  • تنفيذ الأمر التالي للتأكد من عدم وجود تحديثات معلقة
sudo yum check-update

نظراً لأن cloud-init تتحقق من التحديثات وتثبيتها عند التمهيد، فلا ينبغي أن تكون هناك تحديثات إضافية لتطبيقها.

  • يمكنك مشاهدة عملية التحديث وعدد الحزم المتغيرة وتثبيت httpd عن طريق تشغيل الأمر التالي ومراجعة الإخراج.
sudo yum history
ID     | Command line                                | Date and time    | Action(s)      | Altered
--------------------------------------------------------------------------------------------------
     3 | -y install httpd                            | 2022-02-18 18:30 | Install        |    7
     2 | -y upgrade                                  | 2022-02-18 18:23 | I, O, U        |  321 EE
     1 |                                             | 2021-02-04 19:20 | Install        |  496 EE

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

للحصول على أمثلة إضافية على cloud-init لتغييرات التكوين، راجع ما يلي: