如何以编程方式将更新管理部署到Azure资源

时间:2018-10-03 20:35:21

标签: azure powershell updates patch

我目前正在尝试将Azure的更新管理解决方案设置为已设置的资源组。我已经阅读了很多有关此问题的文档,包括Microsoft的文档: https://docs.microsoft.com/en-us/azure/automation/automation-update-management

使用GUI进行设置非常简单,但是我一直未能找到以编程方式部署此方法的方法。我想联系堆栈社区,看看是否有人能够部署使用带有代码库的更新管理的环境,或者是否有人找到/构建了可用于在特定VM上启用更新管理器的powershell模块。

2 个答案:

答案 0 :(得分:3)

这条手臂模板应该可以工作:

{
    "apiVersion": "2017-05-15-preview",
    "type": "Microsoft.Automation/automationAccounts/softwareUpdateConfigurations",
    "name": "automationName/softwareUpdateName",
    "location": "[resourceGroup().location]",
    "properties": {
        "updateConfiguration": {
            "operatingSystem": "Windows",
            "duration": "PT2H0M",
            "windows": {
                "excludedKbNumbers": [
                    "168934",
                    "168973"
                ],
                "includedUpdateClassifications": "Critical",
                "rebootSetting": "IfRequired"
            },
            "azureVirtualMachines": [
                "/subscriptions/5ae68d89-69a4-454f-b5ce-e443cc4e0067/resourceGroups/myresources/providers/Microsoft.Compute/virtualMachines/vm-01",
                "/subscriptions/5ae68d89-69a4-454f-b5ce-e443cc4e0067/resourceGroups/myresources/providers/Microsoft.Compute/virtualMachines/vm-02",
                "/subscriptions/5ae68d89-69a4-454f-b5ce-e443cc4e0067/resourceGroups/myresources/providers/Microsoft.Compute/virtualMachines/vm-03"
            ],
            "nonAzureComputerNames": [
                "box1.contoso.com",
                "box2.contoso.com"
            ]
        },
        "scheduleInfo": {
            "frequency": "Hour",
            "startTime": "2017-10-19T12:22:57+00:00",
            "timeZone": "America/Los_Angeles",
            "interval": 1,
            "expiryTime": "2018-11-09T11:22:57+00:00",
            "advancedSchedule": {
                "weekDays": [
                    "Monday",
                    "Thursday"
                ]
            }
        }
    }
}

您可以使用rest api查找如何以所需的方式构造properties

例如,您可以将带有invoke-webrequest的properties json用作有效负载,例如curl。

答案 1 :(得分:1)

通过“ AzureRMAutomation” cmdlet与powershell中的“ Azure Updates”进行交互。例如,计划软件更新使用“ New-AzureRmAutomationSoftwareUpdateConfiguration” cmdlet。

https://docs.microsoft.com/en-us/powershell/module/azurerm.automation/new-azurermautomationsoftwareupdateconfiguration?view=azurermps-6.13.0

您应该能够在该目录中找到其他想要做的事情。

我偶然发现了这个网站,它没有上面的信息有用...

https://sharepointyankee.com/2018/02/26/importing-powershell-modules-into-azure-automation/

此过程使您可以从模块库下载Powershell模块。在简单搜索“更新”之后。我找到了两个模块“ xWindowsUpdate”和“ PSWindowsUpdate”。这些不会直接与azure更新管理器进行交互,但是在功能上可以达到相同的结果。