Поделиться через


Using Virtual Machine Scale Sets with the Azure DSC Extension

Virtual Machine Scale Sets can be used with the Azure Desired State Configuration (DSC) extension handler. Virtual Machine Scale Sets provide a way to deploy and manage large numbers of virtual machines, and can elastically scale in and out in response to load. DSC is used to configure the VMs as they come online so they are running the production software.

Примечание.

Расширение DSC будет прекращено 31 марта 2028 г. Перейдите на Конфигурацию машины Azure до указанной даты. Подробнее см. в записи блога с объявлением. Служба конфигурации машин Azure объединяет некоторые функции расширения DSC, конфигурации состояния службы автоматизации Azure и часто запрашиваемые функции из отзывов клиентов. Конфигурация компьютера Azure также включает поддержку гибридных компьютеров с помощью серверов с поддержкой Arc.

Differences between deploying to Virtual Machines and Virtual Machine Scale Sets

The underlying template structure for a Virtual Machine Scale Set is slightly different from a single VM. Specifically, a single VM deploys extensions under the "virtualMachines" node. There is an entry of type "extensions" where DSC is added to the template

"resources": [
          {
              "name": "Microsoft.Powershell.DSC",
              "type": "extensions",
              "location": "[resourceGroup().location]",
              "apiVersion": "2015-06-15",
              "dependsOn": [
                  "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]"
              ],
              "tags": {
                  "displayName": "dscExtension"
              },
              "properties": {
                  "publisher": "Microsoft.Powershell",
                  "type": "DSC",
                  "typeHandlerVersion": "2.20",
                  "autoUpgradeMinorVersion": false,
                  "forceUpdateTag": "[parameters('dscExtensionUpdateTagVersion')]",
                  "settings": {
                      "configuration": {
                          "url": "[concat(parameters('_artifactsLocation'), '/', variables('dscExtensionArchiveFolder'), '/', variables('dscExtensionArchiveFileName'))]",
                          "script": "DscExtension.ps1",
                          "function": "Main"
                      },
                      "configurationArguments": {
                          "nodeName": "[variables('vmName')]"
                      }
                  },
                  "protectedSettings": {
                      "configurationUrlSasToken": "[parameters('_artifactsLocationSasToken')]"
                  }
              }
          }
      ]

A Virtual Machine Scale Set node has a "properties" section with the "VirtualMachineProfile", "extensionProfile" attribute. DSC is added under "extensions"

"extensionProfile": {
            "extensions": [
                {
                    "name": "Microsoft.Powershell.DSC",
                    "properties": {
                        "publisher": "Microsoft.Powershell",
                        "type": "DSC",
                        "typeHandlerVersion": "2.20",
                        "autoUpgradeMinorVersion": false,
                        "forceUpdateTag": "[parameters('DscExtensionUpdateTagVersion')]",
                        "settings": {
                            "configuration": {
                                "url": "[concat(parameters('_artifactsLocation'), '/', variables('DscExtensionArchiveFolder'), '/', variables('DscExtensionArchiveFileName'))]",
                                "script": "DscExtension.ps1",
                                "function": "Main"
                            },
                            "configurationArguments": {
                                "nodeName": "localhost"
                            }
                        },
                        "protectedSettings": {
                            "configurationUrlSasToken": "[parameters('_artifactsLocationSasToken')]"
                        }
                    }
                }
            ]

Behavior for a Virtual Machine Scale Set

The behavior for a Virtual Machine Scale Set is identical to the behavior for a single VM. When a new VM is created, it is automatically provisioned with the DSC extension. If a newer version of the WMF is required by the extension, the VM reboots before coming online. Once it is online, it downloads the DSC configuration .zip and provision it on the VM. More details can be found in the Azure DSC Extension Overview.

Дальнейшие действия

Examine the Azure Resource Manager template for the DSC extension.

Learn how the DSC extension securely handles credentials.

For more information on the Azure DSC extension handler, see Introduction to the Azure Desired State Configuration extension handler.

For more information about PowerShell DSC, visit the PowerShell documentation center.