各位云用户,大家好,
我目前正在试用全新且出色的更新管理中心。作为不得不在 Azure 自动化帐户中摆弄更新管理的人,我很欣赏这项新服务。除了分配虚拟机来更新计划之外。
我做了什么:
创建了“维护配置”,其中包含更新计划和更新分类(全部)
之后,我想根据标签自动分配特定范围内的机器。我们使用“UpdateWave”作为标签名称。因为我希望自动加入带有此标签的机器,所以我需要通过策略来执行此操作。Azure 将该过程称为“动态范围”(https://docs.microsoft.com/en-us/azure/update-center/scheduled-patching?tabs=schedule-updates-single-overview%2Cschedule-updates-scale-overview#dynamic-scoping)。
我为“[预览]:配置定期检查 Azure 虚拟机上缺少的系统更新”创建了一个策略分配,该策略分配将机器配置为自动检查更新。
当我检查合规性时,一段时间后我发现我的测试机器符合该政策。
第一个问题:但是当我查看更新管理中心时,定期评估并未启用。
有人知道这是怎么回事吗?同时,几个小时过去了,情况仍然一样。
第二个问题:
评估后,我当然希望将机器分配给一个时间表。这也必须通过策略来完成。为此,我将“[预览] 使用更新管理中心安排定期更新”策略分配给订阅,并且分配的部署成功。此分配基本上应将范围内订阅中的所有虚拟机分配给该计划(出于测试目的,我删除了所有过滤标签)。
当我查看合规性时,我看不到任何虚拟机。似乎没有匹配的虚拟机。但范围订阅“eu2-iaaststu-sub”确实有我的 2 个 Windows 操作系统虚拟机。我创建了两次补救任务(启用了“补救前重新评估资源合规性”)并且它完成了。但它总是有 0 个受影响的资源。我不明白!
我是目标订阅的所有者。
我非常想使用这项服务。它让机器的上线变得容易得多。如果它能用就好了!
有人知道这两个错误的原因是什么吗?或者还有其他提示吗?
2022 年 11 月 7 日更新:Microsoft 修复了策略定义的大部分内容。这些策略现在支持支持更新管理的操作系统。自动修复功能现在仍不起作用。
答案1
好的,经过很长一段时间我才知道这个问题。微软现在似乎对这些政策存在一些问题,或者至少它们没有反映文档中写的内容(截至 2022 年 9 月 6 日)。
在更新管理中心的文档中(https://docs.microsoft.com/en-us/azure/update-center/support-matrix?tabs=azurevm%2Cazurevm-os#supported-operating-systems) 支持以下 Windows 操作系统:
如果您查看策略定义(“[预览]:配置 Azure 虚拟机上缺少的系统更新的定期检查”),就会发现这些操作系统现在还不在选择范围内:
我所做的是在该列表中添加了其他几个 Windows 操作系统以供选择,并将策略定义保存为包含更多 VM SKU 的副本并将其分配给范围。之后,该策略按预期工作,所有 VM 都被策略选中并(大部分)按预期工作。
我希望这个问题能够在更新管理中心正式发布之前得到解决。
答案2
关于问题 1
我在这方面取得了一些进展,但仍然没有 100% 成功。我相信你已经发现,网上没有太多帮助。
首先,您需要根据订阅注册预览更新管理功能。
Register-AzProviderFeature -FeatureName InGuestAutoPatchVMPreview - ProviderNamespace Microsoft.Compute Register-AzProviderFeature -FeatureName InGuestAutoAssessmentVMPreview -ProviderNamespace Microsoft.Compute Register-AzProviderFeature -FeatureName InGuestScheduledPatchVMPreview -ProviderNamespace Microsoft.Compute
然后,对于每个预览策略,您需要更新发布者、优惠和 SKUhttps://docs.microsoft.com/en-us/azure/update-center/support-matrix?tabs=azurevm%2Cazurevm-os#supported-operating-systems. 政策如下
[Preview]: Configure periodic checking for missing system updates on azure virtual machines [Preview]: Machines should be configured to periodically check for missing system updates [Preview]: Schedule recurring updates using Update Management Center
当创建新的虚拟机并针对新资源运行策略评估时,您最终应该会看到新更新管理门户中的“补丁编排”和“定期评估”字段已更新以反映您的策略。尽管它似乎与 Windows 虚拟机比 Linux 更一致。
关于问题 2
- 政策
[Preview]: Schedule recurring updates using Update Management Center
应该将更改为PatchMode
Azure Orchestrated (AutomaticByPlatform),但整个策略不适用于新创建的资源;它不会将新创建的 VM 分配给维护配置,也不会patchMode
按照策略描述中所述将策略更新为 AutomaticByPlatform。 - 如您所见,您应该能够手动将虚拟机添加到维护配置中,但要做到这一点,您需要先将
patchMode
虚拟机设置为 AutomaticByPlatform - 因此您需要使用策略来设置它 - 最后,手动修复
[Preview]: Schedule recurring updates using Update Management Center
策略似乎确实有效,尽管它不一致,并且资源的合规性信息之后仍然显示不合规。
因此,仍然值得使用上述三种策略,因为它们确实有用。对于我们来说,我们可能只会自动运行脚本来查找没有维护配置分配的虚拟机,然后手动分配它。
最后
通过 Azure 门户检查更新管理设置的状态时要小心。这可能是一个缓存问题,但通常它不会显示正确的结果。通过 powershell 检查结果会更快(请原谅我的初级 powershell 能力)。
你可以使用以下命令获取虚拟机的 patchMode
(get-azvm)[0].OSProfile.LinuxConfiguration.patchsettings.AssessmentMode
或者(get-azvm)[0].OSProfile.WindowsConfiguration.patchsettings.AssessmentMode
或者
$allVMs = get-azvm foreach ($aVM in $allVMs) { if($aVM.OSProfile.LinuxConfiguration.patchsettings.AssessmentMode) {$patchsettings = $aVM.OSProfile.LinuxConfiguration.patchsettings.AssessmentMode} if($aVM.OSProfile.WindowsConfiguration.patchsettings.AssessmentMode) {$patchsettings = $aVM.OSProfile.WindowsConfiguration.patchsettings.AssessmentMode} write-host $aVM.name.PadRight(31,' ') " / " $patchsettings.PadRight(28,' ') " / " $aVM.StorageProfile.ImageReference.Publisher.PadRight(22,' ') " / " $aVM.StorageProfile.ImageReference.Offer.PadRight(28,' ') " / " $aVM.StorageProfile.ImageReference.SKU
}
答案3
我还发现这个 UMS 预览版存在一些奇怪的问题:
即使从维护配置计划中删除,ARC 服务器仍会接收更新。必须删除维护配置才能阻止它们接收更新。
当计划中包含偏移时,不会触发更新。
还有谁见过类似的行为?