كيفية إدارة التحديثات برمجيا لأجهزة Azure الظاهرية
ترشدك هذه المقالة خلال عملية استخدام Azure REST API لتشغيل تقييم ونشر تحديث على جهاز Azure الظاهري باستخدام Azure Update Manager في Azure. إذا كنت مستخدما جديدا ل Update Manager وتريد معرفة المزيد، فشاهد نظرة عامة على Azure Update Manager. لاستخدام Azure REST API لإدارة الخوادم الممكنة بواسطة Arc، راجع كيفية العمل برمجيا مع الخوادم الممكنة بواسطة Arc.
يمكنك Azure Update Manager في Azure من استخدام Azure REST API للوصول برمجيا. بالإضافة إلى ذلك، يمكنك استخدام أوامر REST المناسبة من Azure PowerShell وAzure CLI.
يتوفر دعم Azure REST API لإدارة أجهزة Azure الظاهرية من خلال ملحق الجهاز الظاهري ل Update Manager.
تقييم التحديث
لتشغيل تقييم تحديث على جهاز Azure الظاهري، حدد طلب POST التالي:
POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/virtualMachineName/assessPatches?api-version=2020-12-01`
لتحديد طلب POST، يمكنك استخدام الأمر Azure CLI az vm assess-patches .
az vm assess-patches -g MyResourceGroup -n MyVm
تحديث النشر
لتشغيل نشر تحديث إلى جهاز Azure الظاهري، حدد طلب POST التالي:
POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/virtualMachineName/installPatches?api-version=2020-12-01`
نص الطلب
يصف الجدول التالي عناصر نص الطلب:
الخاصية | الوصف |
---|---|
maximumDuration |
الحد الأقصى لمقدار الوقت الذي يتم فيه تشغيل العملية. يجب أن تكون سلسلة مدة متوافقة مع ISO 8601 مثل PT4H (4 ساعات). |
rebootSetting |
ضع علامة لتحديد ما إذا كان يجب إعادة تشغيل الجهاز وإذا كان تثبيت تحديث Guest OS يتطلب إكماله. القيم المقبولة هي: IfRequired, NeverReboot, AlwaysReboot . |
windowsParameters |
خيارات المعلمات لتحديث نظام التشغيل الضيف على أجهزة Azure الظاهرية التي تعمل بنظام تشغيل Microsoft Windows Server مدعوم. |
windowsParameters - classificationsToInclude |
قائمة الفئات/التصنيفات التي سيتم استخدامها لتحديد التحديثات التي سيتم تثبيتها على الجهاز. القيم المقبولة هي: Critical, Security, UpdateRollup, FeaturePack, ServicePack, Definition, Tools, Updates |
windowsParameters - kbNumbersToInclude |
قائمة بمعرفات KB ل Windows Update التي يجب تثبيتها. سيتم تثبيت جميع التحديثات التي تنتمي إلى التصنيفات المقدمة في classificationsToInclude القائمة. kbNumbersToInclude هي قائمة اختيارية من KBs محددة ليتم تثبيتها بالإضافة إلى التصنيفات. على سبيل المثال: 1234 |
windowsParameters - kbNumbersToExclude |
قائمة بمعرفات KB ل Windows Update التي يجب عدم تثبيتها. تتجاوز هذه المعلمة windowsParameters - classificationsToInclude ، ما يعني أن معرف KB ل Windows Update المحدد هنا لن يتم تثبيته حتى إذا كان ينتمي إلى التصنيف المقدم ضمن classificationsToInclude المعلمة . |
maxPatchPublishDate |
يتم استخدام هذا لتثبيت التصحيحات التي تم نشرها في أو قبل تاريخ النشر الأقصى المحدد هذا. |
linuxParameters |
خيارات المعلمة لتحديث نظام التشغيل الضيف على أجهزة Azure الظاهرية التي تعمل بنظام تشغيل خادم Linux مدعوم. |
linuxParameters - classificationsToInclude |
قائمة الفئات/التصنيفات التي سيتم استخدامها لتحديد التحديثات التي سيتم تثبيتها على الجهاز. القيم المقبولة هي: Critical, Security, Other |
linuxParameters - packageNameMasksToInclude |
قائمة حزم Linux التي يجب تثبيتها. سيتم تثبيت جميع التحديثات التي تنتمي إلى التصنيفات المقدمة في classificationsToInclude القائمة. packageNameMasksToInclude هي قائمة اختيارية بأسماء الحزم التي سيتم تثبيتها بالإضافة إلى التصنيفات. على سبيل المثال: mysql, libc=1.0.1.1, kernel* |
linuxParameters - packageNameMasksToExclude |
قائمة التحديثات التي يجب عدم تثبيتها. تتجاوز هذه المعلمة linuxParameters - packageNameMasksToExclude ، ما يعني أن الحزمة المحددة هنا لن يتم تثبيتها حتى إذا كانت تنتمي إلى التصنيف المقدم ضمن classificationsToInclude المعلمة. |
لتحديد طلب POST، يمكنك استخدام استدعاء Azure REST API التالي مع معلمات وقيم صالحة.
POST on 'subscriptions/{subscriptionId}/resourceGroups/acmedemo/providers/Microsoft.Compute/virtualMachines/ameacr/installPatches?api-version=2020-12-01
{
"maximumDuration": "PT120M",
"rebootSetting": "IfRequired",
"windowsParameters": {
"classificationsToInclude": [
"Security",
"UpdateRollup",
"FeaturePack",
"ServicePack"
],
"kbNumbersToInclude": [
"11111111111",
"22222222222222"
],
"kbNumbersToExclude": [
"333333333333",
"55555555555"
]
}
}'
إنشاء جدول تكوين الصيانة
لإنشاء جدول تكوين صيانة، حدد طلب PUT التالي:
PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenanceConfigurationsName>?api-version=2021-09-01-preview`
نص الطلب
يصف الجدول التالي عناصر نص الطلب:
الخاصية | الوصف |
---|---|
id |
معرف مؤهل بالكامل للمورد |
location |
الحصول على موقع المورد أو تعيينه |
name |
اسم المورد |
properties.extensionProperties |
الحصول على خصائص ملحق تكوين الصيانة أو تعيينها |
properties.maintenanceScope |
الحصول على أو تعيين maintenanceScope للتكوين |
properties.maintenanceWindow.duration |
مدة نافذة الصيانة بتنسيق HH:MM. إذا لم يتم توفيرها، يتم استخدام القيمة الافتراضية استنادا إلى نطاق الصيانة المقدم. مثال: 05:00. |
properties.maintenanceWindow.expirationDateTime |
تاريخ انتهاء الصلاحية الفعلي لنافذة الصيانة بتنسيق YYYY-MM-DD hh:mm. يتم إنشاء النافذة في المنطقة الزمنية المقدمة إلى التوقيت الصيفي وفقا لتلك المنطقة الزمنية. يجب تعيين تاريخ انتهاء الصلاحية إلى تاريخ مستقبلي. إذا لم يتم توفيره، يتم تعيينه إلى الحد الأقصى للتاريخ 9999-12-31 23:59:59. |
properties.maintenanceWindow.recurEvery |
معدل تكرار نافذة الصيانة. يمكن التعبير عن السعر كجداول يومية أو أسبوعية أو شهرية. يتم تنسيق الجداول اليومية على أنها recurEvery: [Frequency as integer]['Day(s)']. إذا لم يتم توفير أي تردد، يكون التردد الافتراضي هو 1. أمثلة الجدول اليومي هي recurEvery: Day, recurEvery: 3Days. يتم تنسيق الجداول الأسبوعية على أنها recurEvery: [Frequency as integer]['Week(s)'] [اختياري قائمة مفصولة بفواصل من أيام الأسبوع من الاثنين إلى الأحد]. أمثلة الجدول الأسبوعي هي recurEvery: 3Weeks، recurEvery: Week السبت، الأحد. يتم تنسيق الجداول الشهرية ك [Frequency as integer]['Month(s)'] [Comma separated list of month days] or [Frequency as integer]['Month(s)'] [Week of Month (First, Second, Third, Fourth, Last)] [Weekday Monday-Sunday]. أمثلة الجدول الشهري هي recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23, day24, recurEvery: Month Last الأحد, recurEvery: Month Fourth Monday. |
properties.maintenanceWindow.startDateTime |
تاريخ البدء الفعلي لنافذة الصيانة بتنسيق YYYY-MM-DD hh:mm. يمكنك تعيين تاريخ البدء إلى التاريخ الحالي أو التاريخ المستقبلي. سيتم إنشاء النافذة في المنطقة الزمنية المقدمة وتعديلها حسب التوقيت الصيفي وفقا لتلك المنطقة الزمنية. |
properties.maintenanceWindow.timeZone |
اسم المنطقة الزمنية. يمكن الحصول على قائمة بفواصل الوقت عن طريق تنفيذ [System.TimeZoneInfo]:GetSystemTimeZones() في PowerShell. مثال: توقيت المحيط الهادئ القياسي، التوقيت العالمي المتفق عليه، التوقيت القياسي لأوروبا، توقيت كوريا الرسمي، Cen. توقيت أستراليا الرسمي. |
properties.namespace |
الحصول على مساحة اسم المورد أو تعيينها |
properties.visibility |
الحصول على رؤية التكوين أو تعيينها. القيمة الافتراضية هي "مخصص" |
systemData |
بيانات تعريف Azure Resource Manager التي تحتوي على معلومات createBy و modifiedBy. |
tags |
الحصول على علامات المورد أو تعيينها |
type |
نوع المورد |
لتحديد طلب POST، يمكنك استخدام استدعاء Azure REST API التالي مع معلمات وقيم صالحة.
PUT on '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/atscalepatching/providers/Microsoft.Maintenance/maintenanceConfigurations/TestAzureInGuestAdv2?api-version=2021-09-01-preview
{
"location": "eastus2euap",
"properties": {
"namespace": null,
"extensionProperties": {
"InGuestPatchMode" : "User"
},
"maintenanceScope": "InGuestPatch",
"maintenanceWindow": {
"startDateTime": "2021-08-21 01:18",
"expirationDateTime": "2221-05-19 03:30",
"duration": "01:30",
"timeZone": "India Standard Time",
"recurEvery": "Day"
},
"visibility": "Custom",
"installPatches": {
"rebootSetting": "IfRequired",
"windowsParameters": {
"classificationsToInclude": [
"Security",
"Critical",
"UpdateRollup"
]
},
"linuxParameters": {
"classificationsToInclude": [
"Other"
]
}
}
}
}'
إقران جهاز ظاهري بجدول زمني
لربط جهاز ظاهري بجدول تكوين الصيانة، حدد طلب PUT التالي:
PUT on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`
لتحديد طلب PUT، يمكنك استخدام استدعاء Azure REST API التالي مع معلمات وقيم صالحة.
PUT on '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/atscalepatching/providers/Microsoft.Compute/virtualMachines/win-atscalepatching-1/providers/Microsoft.Maintenance/configurationAssignments/TestAzureInGuestAdv?api-version=2021-09-01-preview
{
"properties": {
"maintenanceConfigurationId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/atscalepatching/providers/Microsoft.Maintenance/maintenanceConfigurations/TestAzureInGuestIntermediate2"
},
"location": "eastus2euap"
}'
إزالة الجهاز من الجدول
لإزالة جهاز من الجدول، احصل على جميع أسماء تعيينات التكوين للجهاز الذي تم إنشاؤه لربط الجهاز بالجدول الحالي من Azure Resource Graph كما هو مدرج:
maintenanceresources
| where type =~ "microsoft.maintenance/configurationassignments"
| where properties.maintenanceConfigurationId =~ "<maintenance configuration Resource ID>"
| where properties.resourceId =~ "<Machine Resource Id>"
| project name, id
بعد الحصول على الاسم من أعلاه، احذف تعيين التكوين باتباع طلب DELETE -
DELETE on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`
الخطوات التالية
- لعرض تقييم التحديث وسجلات النشر التي تم إنشاؤها بواسطة Update Manager، راجع سجلات الاستعلام.
- لاستكشاف المشكلات وإصلاحها، راجع استكشاف أخطاء Update Manager وإصلاحها .