Compartir a través de


Introducción al controlador de extensiones de configuración de estado deseado de Azure

Nota:

Antes de habilitar la extensión DSC, nos gustaría hacerle saber que ahora está disponible una versión más reciente de DSC, denominada Configuración de la máquina de Azure. El servicio Configuración de la máquina de Azure incluye características de la extensión DSC y características solicitadas habitualmente en los comentarios de los clientes. Azure Machine Configuration también incluye compatibilidad con las máquinas híbridas mediante servidores habilitados para Arc.

La extensión de máquina virtual de Azure para máquinas virtuales (VM) de Azure y las extensiones asociadas forman parte de los servicios de infraestructura de Microsoft Azure. Las extensiones de la máquina virtual de Azure son componentes de software que amplían la funcionalidad de dicha máquina virtual y simplifican diversas operaciones de administración de la máquina virtual.

La extensión DSC solo inserta una configuración en la máquina virtual. No hay ningún informe disponible, excepto los locales en la máquina virtual.

Versiones de DSC disponibles

La extensión DSC admite configuraciones de la versión 1.1 de la plataforma DSC. Para más información, consulte PSDesiredStateConfiguration v1.1.

Requisitos previos

  • Estación de trabajo del desarrollador: para interactuar con la extensión DSC de Azure, debe usar Azure Portal o el SDK de Azure PowerShell/CLI.

  • Agente invitado: la máquina virtual de Azure preparada con la configuración de DSC debe tener un sistema operativo que admita Windows Management Framework (WMF) 4.0 o posterior. Puede encontrar la lista completa de las versiones compatibles del sistema operativo en el historial de versiones de la extensión Azure DSC.

Términos y conceptos

En este artículo, se asume que está familiarizado con estos conceptos:

  • Configuración: se refiere a un documento de configuración de DSC.

  • Nodo: identifica un destino para una configuración de DSC. En este artículo, nodo siempre hace referencia a una máquina virtual de Azure.

  • Los datos de configuración se almacenan en un archivo de formato DSC de PowerShell (.psd1) que tiene datos de entorno para una configuración.

Architecture

La extensión DSC de Azure usa el marco de extensión de máquina virtual de Azure para entregar y aplicar las configuraciones de DSC que se ejecutan en las máquinas virtuales de Azure, así como informar sobre estas. La extensión DSC acepta un documento de configuración y un conjunto de parámetros.

Cuando se llama a la extensión por primera vez, se instala una versión de WMF usando la siguiente lógica:

  • Si el sistema operativo de la máquina virtual de Azure es Windows Server 2016, no se realiza ninguna acción. Windows Server 2016 ya tiene instalada la versión más reciente de PowerShell.

  • Si se especifica la propiedad wmfVersion, se instala la versión especificada de WMF, a menos que la versión especificada no sea compatible con el sistema operativo de la máquina virtual.

  • Si no hay ninguna propiedad wmfVersion especificada, se instala la versión aplicable más reciente de WMF.

El proceso de instalación de WMF requiere un reinicio. Después del reinicio, la extensión descarga el archivo .zip que se especifica en la propiedad modulesUrl, si se proporciona. Si esta ubicación se encuentra en Azure Blob Storage, se puede especificar un token de SAS en la propiedad sasToken para acceder al archivo. Después de que el .zip descargue y desempaquete, la función de configuración definida en configurationFunction se ejecuta para generar un archivo Managed Object Format (MOF) (.mof). Luego, la extensión ejecuta el comando Start-DscConfiguration -Force con el archivo .mof generado. La extensión captura la salida y la escribe en el canal de estado de Azure.

Nombre de la configuración de nodo

Para el parámetro NodeConfigurationName, asegúrese de proporcionar el nombre de la configuración del nodo, no la Configuración.

La Configuración se define en un script que se usa para compilar la configuración del nodo (archivo MOF). El nombre de la configuración del nodo es siempre el nombre de la Configuración, seguido de un punto . y localhost o un nombre de equipo específico.

Implementación de la plantilla de ARM

El enfoque más común para implementar la extensión DSC es usar plantillas de Azure Resource Manager. Para más información y ejemplos sobre cómo incluir la extensión DSC en las plantillas de ARM, consulte Extensión Desired State Configuration con plantillas de ARM.

Implementación de cmdlets de PowerShell

Los cmdlets de PowerShell para administrar la extensión DSC son ideales para solucionar problemas de manera interactiva y escenarios de recopilación de información. Puede usar los cmdlets para empaquetar, publicar y supervisar las implementaciones de la extensión DSC.

Estos son algunos de los cmdlets de PowerShell que están disponibles:

  • El cmdlet Publish-AzVMDscConfiguration toma un archivo de configuración, busca los recursos de DSC dependientes y, luego, crea un archivo zip. El archivo zip contiene la configuración y recursos de DSC que son necesarios para aplicar la configuración. El cmdlet también puede crear el paquete localmente mediante el parámetro -OutputArchivePath. En caso contrario, el cmdlet publica el archivo .zip en Blob Storage y lo protege con un token de SAS.

    El script de configuración de PowerShell (.ps1) que el cmdlet crea se encuentra en el archivo .zip en la raíz de la carpeta de archivos. La carpeta del módulo se encuentra en la carpeta de archivos en los recursos.

  • El cmdlet Set-AzVMDscExtension inserta la configuración que la extensión DSC de PowerShell necesita en un objeto de configuración de VM.

  • El cmdlet Get-AzVMDscExtension recupera el estado de la extensión DSC de una VM específica.

  • El cmdlet Get-AzVMDscExtensionStatus recupera el estado de la configuración de DSC que el controlador de la extensión DSC aplica. Esta acción puede realizarse en una sola máquina virtual o en un grupo de máquinas virtuales.

  • El cmdlet Remove-AzVMDscExtension quita el controlador de extensiones de una VM específica. Tenga en cuenta que este cmdlet no quita la configuración, ni desinstala WMF ni cambia la configuración aplicada en la máquina virtual. El cmdlet solo quita el controlador de extensiones.

Consideraciones importantes

Hay varias consideraciones que debe tener en cuenta al trabajar con cmdlets de Azure Resource Manager.

  • Los cmdlets de Azure Resource Manager son sincrónicos.

  • Se requieren varios parámetros, incluidos ResourceGroupName, VMName, ArchiveStorageAccountName, Version y Location.

  • ArchiveResourceGroupName es un parámetro opcional. Especifique este parámetro cuando la cuenta de almacenamiento pertenezca a un grupo de recursos que no sea el mismo en el que se crea la máquina virtual.

  • Use el modificador AutoUpdate para actualizar automáticamente el controlador de extensiones a la versión más reciente cuando esté disponible. Este parámetro puede provocar que la máquina virtual se reinicie cuando se lance una nueva versión de WMF.

Configuración con cmdlets de PowerShell

La extensión DSC de Azure puede usar documentos de configuración de DSC para configurar directamente las máquinas virtuales de Azure durante la implementación. Este paso no registra el nodo en Automation ni en la Configuración de la máquina. Tenga en cuenta que el nodo no se administra de forma centralizada.

Este código muestra un ejemplo de configuración sencillo. Para trabajar con este ejemplo, guarde esta configuración localmente como el archivo de script iisInstall.ps1.

configuration IISInstall
{
    node "localhost"
    {
        WindowsFeature IIS
        {
            Ensure = "Present"
            Name = "Web-Server"
        }
    }
}

Los siguientes comandos de PowerShell colocan el script iisInstall.ps1 en la máquina virtual especificada. Los comandos también ejecutan la configuración y luego informan sobre el estado.

$resourceGroup = 'dscVmDemo'
$vmName = 'myVM'
$storageName = 'demostorage'
#Publish the configuration script to user storage
Publish-AzVMDscConfiguration -ConfigurationPath .\iisInstall.ps1 -ResourceGroupName $resourceGroup -StorageAccountName $storageName -force
#Set the VM to run the DSC configuration
Set-AzVMDscExtension -Version '2.76' -ResourceGroupName $resourceGroup -VMName $vmName -ArchiveStorageAccountName $storageName -ArchiveBlobName 'iisInstall.ps1.zip' -AutoUpdate -ConfigurationName 'IISInstall'

Implementación de la CLI de Azure

La CLI de Azure puede utilizarse para implementar la extensión DSC en una máquina virtual existente. Estos ejemplos muestran cómo implementar una máquina virtual en Windows.

Para una máquina virtual que ejecuta Windows, use el siguiente comando:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name DSC \
  --publisher Microsoft.Powershell \
  --version 2.77 --protected-settings '{}' \
  --settings '{}'

Implementación de Azure Portal

Para configurar la extensión DSC en Azure Portal, siga estos pasos:

  1. Vaya a la máquina virtual.

  2. En Configuración, seleccione Extensiones y aplicaciones.

  3. En Extensiones, seleccione + Agregar.

  4. Seleccione Desired State Configuration de PowerShell, y luego Siguiente.

  5. Configure los parámetros siguientes para la extensión DSC.

    • Módulos de configuración o script: (obligatorio) proporcione los módulos de configuración o el archivo de script para la máquina virtual.

      Los scripts y módulos de configuración requieren un archivo. ps1 que tiene un script de configuración o un archivo .zip con un script de configuración. ps1 en la raíz. Si utiliza un archivo .zip, todos los recursos dependientes se deben incluir en las carpetas de módulo en el archivo .zip. Puede crear el archivo ZIP mediante el cmdlet Publish-AzureVMDscConfiguration -OutputArchivePath que se incluye en el SDK de Azure PowerShell. El archivo .zip se carga en su Blob Storage de usuario y se protege mediante un token de SAS.

    • Nombre completo del módulo de configuración: (obligatorio) especifique esta opción para incluir varias funciones de configuración en un único archivo de script de .ps1. Para esta configuración, escriba el nombre del archivo de script .ps1 de configuración seguido de una barra diagonal \ y el nombre de la función de configuración. Por ejemplo, si el archivo de script .ps1 tiene el nombre configuration.ps1 y el nombre de configuración es IisInstall, escriba el valor configuration.ps1\IisInstall de la configuración.

    • Argumentos de configuración: si la función de configuración adopta argumentos, escriba los valores aquí con el formato argumentName1=value1,argumentName2=value2. Tenga en cuenta que este formato difiere del formato que se usa para especificar argumentos de configuración en cmdlets de PowerShell o plantillas de ARM.

    • Archivo PSD1 de datos de configuración: si la configuración necesita un archivo de datos de configuración en formato .psd1, use esta configuración para seleccionar el archivo de datos y cargarlo a su Blob Storage de usuario. El archivo de datos de configuración se protege mediante un token de SAS en Blob Storage.

    • Versión de WMF: especifica la versión de Windows Management Framework que se va a instalar en la máquina virtual. Si elige más reciente, que es el valor predeterminado, el sistema instala la versión más reciente de WMF. Otros valores posibles incluyen 4.0, 5.0 y 5.1. Estos valores posibles están sujetos a actualizaciones.

    • Recopilación de datos: habilite esta configuración si desea que la extensión DSC recopile telemetría sobre la máquina virtual. Para más información, consulte Azure DSC extension data collection (Colección de datos de la extensión DSC de Azure).

    • Versión: (obligatorio) especifica la versión de la extensión DSC que se va a instalar. Para obtener información sobre las versiones, consulte Historial de versiones de la extensión Azure DSC.

    • Actualización automática de la versión secundaria: esta configuración se asigna al conmutador AutoUpdate en los cmdlets. Configure esta opción para permitir que la extensión DSC se actualice automáticamente a la versión más reciente durante la instalación. indica al controlador de extensión DSC que use la versión más reciente disponible. No (valor predeterminado) obliga la instalación de la versión que especifique en la configuración Versión.

  6. Después de configurar los parámetros, seleccione Revisar y crear y luego seleccione Crear.

Registros de extensión DSC

Puede ver los registros de la extensión Azure DSC en la máquina virtual en C:\WindowsAzure\Logs\Plugins\Microsoft.Powershell.DSC\<version number>.

Pasos siguientes