Extensión DSC de PowerShell

Nota:

Antes de habilitar la extensión DSC, debe saber que ahora hay una versión más reciente de DSC disponible con carácter general, administrada mediante una característica de Azure Automanage denominada configuración de máquina. La característica de configuración de máquina combina características de la extensión Desired State Configuration (DSC) del controlador, State Configuration de Azure Automation y las características que más solicitan los clientes en sus comentarios. La configuración de máquina también incluye compatibilidad con las máquinas híbridas mediante servidores habilitados para Arc.

Información general

Microsoft, como editor de la extensión DSC de PowerShell, es quien presta los servicios de soporte técnico para esta solución. La extensión carga y aplica una configuración de DSC de PowerShell en una máquina virtual de Azure. La extensión DSC llama a DSC de PowerShell para aplicar la configuración de DSC recibida en la máquina virtual. En este documento se especifican las plataformas compatibles, configuraciones y opciones de implementación de la extensión de máquina virtual de DSC para Windows.

Requisitos previos

Sistema operativo

La extensión DSC es compatible con los sistemas operativos siguientes:

Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012R2, Windows Server 2012, Windows Server 2008 R2 SP1, Windows Client 7/8.1/10

Conectividad de Internet

La extensión DSC para Windows requiere que la máquina virtual de destino pueda comunicarse con Azure y la ubicación del paquete de configuración (archivo .zip) si se encuentra en una ubicación fuera de Azure.

Esquema de extensión

El siguiente JSON muestra el esquema para la parte de configuración de la extensión DSC en una plantilla de Azure Resource Manager.

{
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "name": "Microsoft.Powershell.DSC",
  "apiVersion": "2018-10-01",
  "location": "<location>",
  "properties": {
    "publisher": "Microsoft.Powershell",
    "type": "DSC",
    "typeHandlerVersion": "2.77",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "wmfVersion": "latest",
        "configuration": {
            "url": "http://validURLToConfigLocation",
            "script": "ConfigurationScript.ps1",
            "function": "ConfigurationFunction"
        },
        "configurationArguments": {
            "argument1": "Value1",
            "argument2": "Value2"
        },
        "configurationData": {
            "url": "https://foo.psd1"
        },
        "privacy": {
            "dataCollection": "enable"
        },
        "advancedOptions": {
            "forcePullAndApply": false,
            "downloadMappings": {
             "specificDependencyKey": "https://myCustomDependencyLocation"
            }
        }
    },
    "protectedSettings": {
        "configurationArguments": {
            "parameterOfTypePSCredential1": {
                "userName": "UsernameValue1",
                "password": "PasswordValue1"
            },
            "parameterOfTypePSCredential2": {
                "userName": "UsernameValue2",
                "password": "PasswordValue2"
            }
        },
        "configurationUrlSasToken": "?g!bber1sht0k3n",
        "configurationDataUrlSasToken": "?dataAcC355T0k3N"
    }
  }
}

Valores de propiedad

Nombre Valor / ejemplo Tipo de datos
apiVersion 2018-10-01 date
publisher Microsoft.Powershell.DSC string
type DSC string
typeHandlerVersion 2.77 int

Valores de la propiedad settings

Nombre Tipo de datos Descripción
settings.wmfVersion string Especifica la versión de Windows Management Framework que debe instalarse en la máquina virtual. Si se establece esta propiedad en "latest", se instalará la versión más reciente de WMF. Los únicos valores posibles actualmente para esta propiedad son "4.0", "5.0" y "latest". Estos valores posibles están sujetos a actualizaciones. El valor predeterminado es "latest".
settings.configuration.url string Especifica la ubicación de la dirección URL desde la que descargar el archivo zip de la configuración de DSC. Si la dirección URL proporcionada requiere un token de SAS para el acceso, deberá establecer la propiedad protectedSettings.configurationUrlSasToken en el valor de su token de SAS. Esta propiedad es necesaria si se definen settings.configuration.script o settings.configuration.function.
settings.configuration.script string Especifica el nombre de archivo del script que contiene la definición de la configuración de DSC. Este script debe estar en la carpeta raíz del archivo zip descargado de la dirección URL especificada en la propiedad configuration.url. Esta propiedad es necesaria si se definen settings.configuration.url o settings.configuration.script.
settings.configuration.function string Especifica el nombre de la configuración de DSC. La configuración con nombre debe incluirse en el script definido en configuration.script. Esta propiedad es necesaria si se definen settings.configuration.url o settings.configuration.function.
settings.configurationArguments Colección Define los parámetros que desea pasar a la configuración de DSC. Esta propiedad no se cifrará.
settings.configurationData.url string Especifica la dirección URL desde la que descargar el archivo de datos de configuración (.pds1) que se usará como entrada para la configuración de DSC. Si la dirección URL proporcionada requiere un token de SAS para el acceso, deberá establecer la propiedad protectedSettings.configurationDataUrlSasToken en el valor de su token de SAS.
settings.privacy.dataEnabled string Habilita o deshabilita la recopilación de telemetría. Los únicos valores posibles para esta propiedad son "Enable", "Disable" o "$null". Si se deja esta propiedad en blanco o como null, se habilitará la telemetría.
settings.advancedOptions.forcePullAndApply Bool Esta configuración está diseñada para mejorar la experiencia de trabajar con la extensión para registrar los nodos con DSC de Azure Automation. Si el valor es $true, la extensión esperará a que la primera ejecución de la configuración se extraiga antes de devolver una respuesta correcta o con errores. Si el valor se establece en $false, el estado devuelto por la extensión solo indicará si el nodo se registró correctamente con State Configuration de Azure Automation y la configuración del nodo no se ejecutará durante el registro.
settings.advancedOptions.downloadMappings Colección Define ubicaciones alternativas para descargar dependencias como WMF y .NET

Valores protegidos de la propiedad settings

Nombre Tipo de datos Descripción
protectedSettings.configurationArguments string Define los parámetros que desea pasar a la configuración de DSC. Esta propiedad se cifrará.
protectedSettings.configurationUrlSasToken string Especifica el token de SAS para acceder a la dirección URL definida en configuration.url. Esta propiedad se cifrará.
protectedSettings.configurationDataUrlSasToken string Especifica el token de SAS para acceder a la dirección URL definida en configurationData.url. Esta propiedad se cifrará.

Implementación de plantilla

Las extensiones de VM de Azure pueden implementarse con plantillas de Azure Resource Manager. Las plantillas resultan ideales al implementar una o varias máquinas virtuales que requieren configurarse tras la implementación. Se puede encontrar una plantilla de ejemplo de Resource Manager que incluye la extensión de DSC para Windows en la Galería de inicio rápido de Azure.

Solución de problemas y asistencia

Solución de problemas

Los datos sobre el estado de las implementaciones de extensiones pueden recuperarse desde Azure Portal y mediante la CLI de Azure. Para ver el estado de implementación de las extensiones de una máquina virtual determinada, ejecute el comando siguiente con la CLI de Azure.

az vm extension list --resource-group myResourceGroup --vm-name myVM -o table

El paquete de extensión se descarga y se implementa en esta ubicación en la máquina virtual de Azure.

C:\Packages\Plugins\{Extension_Name}\{Extension_Version}

El archivo de estado de la extensión contiene los códigos de éxito o error de subestado y estado, junto con el error detallado y una descripción de cada extensión ejecutada.

C:\Packages\Plugins\{Extension_Name}\{Extension_Version}\Status\{0}.Status  -> {0} being the sequence number

Los registros de salida de la extensión se registran en el directorio siguiente:

C:\WindowsAzure\Logs\Plugins\{Extension_Name}\{Extension_Version}

Códigos de error y su significado

Código de error Significado Acción posible
1000 Error genérico El mensaje de este error lo proporciona la excepción específica en los registros de extensión
52 Error de instalación de extensión El mensaje de este error lo proporciona la excepción específica
1002 Error de instalación de WMF Error al instalar WMF
1004 Paquete comprimido no válido Archivo ZIP no válido; error al desempaquetar el archivo ZIP
1100 Error de argumento Indica un problema en la entrada proporcionada por el usuario. El mensaje del error lo proporciona la excepción específica

Soporte técnico

Si necesita más ayuda con cualquier aspecto de este artículo, puede ponerse en contacto con los expertos de Azure en los foros de MSDN Azure o Stack Overflow. Como alternativa, puede registrar un incidente de soporte técnico de Azure. Vaya al sitio de soporte técnico de Azure y seleccione Obtener soporte. Para obtener información sobre el uso del soporte técnico, lea las Preguntas más frecuentes de soporte técnico de Microsoft Azure.