Freigeben über


Steuern von Updates mit Wartungskonfigurationen und Bicep

Gilt für: ✔️ Linux-VMs ✔️ Windows-VMs ✔️ Flexible Skalierungsgruppen ✔️ Einheitliche Skalierungsgruppen

Sie können das Feature für Wartungskonfigurationen verwenden, um zu steuern, wann Plattformupdates auf verschiedene Azure-Ressourcen angewendet werden. In diesem Artikel werden die Optionen in der Bicep-Sprache für die Verwendung dieses Features behandelt. Weitere Informationen zu den Vorteilen der Verwendung des Features „Wartungskonfigurationen“, zu ihren Einschränkungen und zu anderen Verwaltungsoptionen finden Sie unter Verwalten von Plattformupdates mit Wartungskonfigurationen.

Wichtig

Bestimmte Bereiche unterstützen bestimmte Computertypen und -zeitpläne. Achten Sie darauf, den richtigen Bereich für Ihren virtuellen Computer auszuwählen.

Voraussetzungen

Bevor Sie fortfahren, besuchen Sie Bicep-Module, um mehr darüber zu erfahren, wie die Bereitstellung von Bizeps in Module organisiert werden kann.

  • Der Umfang der Ressourcenbereitstellung sollte verstanden werden, bevor Sie mit der Bicep-Vorlage fortfahren. Weitere Informationen finden Sie unter Scope Functions für Bicep.
  • Es ist wichtig zu wissen, wie und wo Ressourcen bereitgestellt werden.
  • Bicep-Module müssen zum Ausführen von Bereitstellungen verwendet werden. Für die Bereitstellung von Ressourcen in unterschiedlichen Bereichen ist die Verwendung von Modulen erforderlich.

Tipp

Stellen Sie immer den richtigen Satz von Abhängigkeiten bereit, da Module in verschiedenen Bereichen ausgeführt werden. Zum Beispiel: Der Umfang für die Konfigurationszuweisung in der Wartungskonfiguration sollte bei Verwendung eines dynamischen Umfangs Subscription und bei Verwendung einer statischen Zuweisung (keine dynamischen Umfänge konfiguriert) ResourceId sein.

Bicep-Ressourcendefinition

Sehen Sie sich die Informationen zum Ressourcenformat und zur Ressourcendefinition der Bicep-Vorlage in den untenstehenden Leitfäden an, bevor Sie mit dem Arbeitsbeispiel fortfahren.

Beispiel

Es müssen drei Bicep-Dateien erstellt werden. Sie sollten alle drei Dateien im selben Ordner speichern. Sie können sie auch in verschiedenen Ordnern speichern, aber achten Sie darauf, den Pfad der Dateinamen in der genannten example.bicep-Datei zu aktualisieren.

Vorlagenausführung


az deployment group create --name samplebicep --template-file .\ds.bicep --resource-group  testrg --parameters '{}' --debug --subscription abc4def8-er57-2345-f4t8-dff65f67afr3

Beispielvorlage

example.bicep
metadata description = 'Demo Main'

module mrpmc1 './maintenanceconfig.bicep' = {

  name: 'mrpmc'

  params: {

   configName: 'test-MaintConfig-Bicep'

  }

}

module ca1 './config_assignment.bicep' = {

  name: 'mrpmcconfigassign2'

  scope: subscription()

  params : {

  configId: '${resourceGroup().id}/providers/microsoft.maintenance/maintenanceConfigurations/test-MaintConfig-Bicep'

  }

  dependsOn: [

    mrpmc1

  ]

}
maintenanceconfig.bicep
metadata description = 'Demo1'

param location string = 'Canada Central'

param configName string = ''

targetScope = 'resourceGroup'

resource MaintConfig4 'Microsoft.Maintenance/maintenanceConfigurations@2023-04-01' = {

  name: configName //'test-MaintConfig-Bicep'

  location: location

  tags: null

  properties: {

    extensionProperties: {

      InGuestPatchMode: 'user'

    }

    installPatches: {

      linuxParameters: {

        classificationsToInclude: [

          'Critical'

          'Security'

        ]

        packageNameMasksToExclude: null

        packageNameMasksToInclude: null

      }

      rebootSetting: 'RebootIfRequired'

      windowsParameters: {

        classificationsToInclude: [

          'Critical'

          'Security'

        ]

      //  excludeKbsRequiringReboot: false

        kbNumbersToExclude: null

        kbNumbersToInclude: null

      }

    }

    maintenanceScope: 'InGuestPatch'

    maintenanceWindow: {

      duration: '02:00'

      expirationDateTime: '9999-12-31 23:59:59'

      recurEvery: 'Day'

      startDateTime: '2023-12-29 12:00'

      timeZone: 'Mountain Standard Time'

    }

  //  namespace: 'string'

   //visibility: 'public'

  }

}

output mrpConfId string = MaintConfig4.id
config_assignment.bicep
metadata description = 'Demo'

param location string = 'Canada Central'

param configId string = ''

targetScope = 'subscription'

resource symbolicname 'Microsoft.Maintenance/configurationAssignments@2023-04-01' = {

  name: 'myconfig'

  location: 'global'

  scope: subscription()

  properties: {

    filter: {

      locations: []

      osTypes: [

        'Linux'

        'Windows'

      ]

     // resourceGroups: null

      resourceTypes: [

        'microsoft.compute/virtualmachines'

        'microsoft.hybridcompute/machines'

      ]

      resourceGroups:[

        'RG-MaintConfigs'

      ]

     // tagSettings:{

    //  filterOperator: 'All'

     //   tags: {updates: ['true']}

     // }

    }

    maintenanceConfigurationId: configId

    //resourceId: ''

   

  }

}
Beispielausgabe
{
  "id": "/subscriptions/eee2cef4-bc47-4278-b4f8-cfc65f25dfd8/resourceGroups/testrg/providers/Microsoft.Resources/deployments/samplebicep",
  "location": null,
  "name": "samplebicep",
  "properties": {
    "correlationId": "b125fc6f-f771-46d7-9b88-b31e0da959f5",
    "debugSetting": null,
    "dependencies": [
      {
        "dependsOn": [
          {
            "id": "/subscriptions/eee2cef4-bc47-4278-b4f8-cfc65f25dfd8/resourceGroups/testrg/providers/Microsoft.Resources/deployments/mrpmc",
            "resourceGroup": "testrg",
            "resourceName": "mrpmc",
            "resourceType": "Microsoft.Resources/deployments"
          }
        ],
        "id": "/subscriptions/eee2cef4-bc47-4278-b4f8-cfc65f25dfd8/providers/Microsoft.Resources/deployments/mrpmcconfigassign2",
        "resourceName": "mrpmcconfigassign2",
        "resourceType": "Microsoft.Resources/deployments"
      }
    ],
    "duration": "PT51.5773913S",
    "error": null,
    "mode": "Incremental",
    "onErrorDeployment": null,
    "outputResources": [
      {
        "id": "/subscriptions/eee2cef4-bc47-4278-b4f8-cfc65f25dfd8/providers/Microsoft.Maintenance/configurationAssignments/myconfig"
      },
      {
        "id": "/subscriptions/eee2cef4-bc47-4278-b4f8-cfc65f25dfd8/resourceGroups/testrg/providers/Microsoft.Maintenance/maintenanceConfigurations/test-MaintConfig-Bicep",
        "resourceGroup": "testrg"
      }
    ],
    "outputs": null,
    "parameters": null,
    "parametersLink": null,
    "providers": [
      {
        "id": null,
        "namespace": "Microsoft.Resources",
        "providerAuthorizationConsentState": null,
        "registrationPolicy": null,
        "registrationState": null,
        "resourceTypes": [
          {
            "aliases": null,
            "apiProfiles": null,
            "apiVersions": null,
            "capabilities": null,
            "defaultApiVersion": null,
            "locationMappings": null,
            "locations": [
              null,
              "canadacentral"
            ],
            "properties": null,
            "resourceType": "deployments",
            "zoneMappings": null
          }
        ]
      }
    ],
    "provisioningState": "Succeeded",
    "templateHash": "9584585695667229579",
    "templateLink": null,
    "timestamp": "2024-02-23T12:22:14.801966+00:00",
    "validatedResources": null
  },
  "resourceGroup": "testrg",
  "tags": null,
  "type": "Microsoft.Resources/deployments"
}

Nächste Schritte

Weitere Informationen finden Sie unter Wartung für virtuelle Computer in Azure.