Configuración de un cliente de extracción mediante ID de configuración en PowerShell 5.0 y versiones posteriores

Se aplica a: Windows PowerShell 5.0

Importante

El servidor de extracción (característica de Windows DSC-Service) es un componente de Windows Server admitido, si bien no está previsto ofrecer nuevas características o funcionalidades. nos gustaría saber que una versión más reciente de DSC ahora está disponible con carácter general, administrada por una característica de Azure Policy configuración de invitado con nombre. El servicio de configuración de invitado combina características de la extensión DSC, Azure Automation State Configuration y las características que más solicitan los clientes en sus comentarios. La configuración de invitado también incluye la compatibilidad con máquinas híbridas a través de servidores habilitados para Arc.

Antes de configurar un cliente de extracción, debe configurar un servidor de extracción. Aunque este orden no es obligatorio, ayuda a solucionar problemas y ayuda a garantizar que el registro sea correcto. Para configurar un servidor de extracción, puede usar a las siguientes guías:

Cada nodo de destino puede configurarse para descargar configuraciones y recursos, e incluso para notificar de su estado. Las secciones siguientes muestran cómo configurar a un cliente de extracción con un recurso compartido SMB o el servidor de extracción de DSC HTTP. Cuando se actualice el LCM del nodo, accederá a la ubicación configurada para descargar las configuraciones asignadas. Si los recursos necesarios no existen en el nodo, se descargarán automáticamente desde la ubicación configurada. Si el nodo se configura con un servidor de informes, notificará el estado de la operación.

Nota

Este tema se aplica a PowerShell 5.0. Para obtener información sobre cómo configurar un cliente de incorporación de cambios en PowerShell 4.0, consulte Configuración de un cliente de incorporación de cambios con el id. de configuración de PowerShell 4.0.

Configuración del LCM del cliente de extracción

La ejecución de cualquiera de los ejemplos siguientes crea una nueva carpeta de salida denominada PullClientConfigID y coloca un archivo MOF de metaconfiguración en ella. En este caso, el nombre del archivo MOF de metaconfiguración será localhost.meta.mof.

Para aplicar la configuración, llame al cmdlet Set-DscLocalConfigurationManager, con el valor de Path establecido en la ubicación del archivo MOF de metaconfiguración. Por ejemplo:

Set-DSCLocalConfigurationManager –ComputerName localhost –Path .\PullClientConfigId –Verbose.

Id. de configuración

Los ejemplos siguientes establecen la propiedad ConfigurationID del LCM en un GUID que se había creado anteriormente para este fin. La propiedad ConfigurationID es lo que usa el LCM para buscar la configuración adecuada en el servidor de incorporación de cambios. El archivo MOF de configuración del servidor de incorporación de cambios debe denominarse ConfigurationID.mof, donde ConfigurationID es el valor de la propiedad ConfigurationID del LCM del nodo de destino. Para obtener más información, vea Publicación de las configuraciones en un servidor de extracción (v4/v5).

Puede crear un GUID aleatorio mediante el ejemplo siguiente, o mediante el cmdlet New-Guid.

[System.Guid]::NewGuid()

Para obtener más información sobre el uso de GUID en su entorno, vea el tema sobre la planificación de GUID.

Configuración de un cliente de extracción para descargar configuraciones

Cada cliente debe configurarse en modo Pull (de extracción) y se le debe asignar la URL del servidor de extracción donde se almacena su configuración. Para ello, tendrá que configurar el administrador de configuración local (LCM) con la información necesaria. Para configurar el LCM, debe crear un tipo especial de configuración, decorado con el atributo DSCLocalConfigurationManager. Para más información sobre la configuración del LCM, consulte Configuración del administrador de configuración local.

Servidor de extracción de DSC HTTP

El script siguiente configura el LCM para que extraiga configuraciones de un servidor denominado "CONTOSO-PullSrv".

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'

        }
    }
}
PullClientConfigID

En el script, el bloque ConfigurationRepositoryWeb define el servidor de incorporación de cambios. ServerUrl especifica la dirección URL de la extracción de DSC

Recurso compartido SMB

El script siguiente configura el LCM para que extraiga configuraciones del recurso compartido SMB \\SMBPullServer\Pull.

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryShare SMBPullServer
        {
            SourcePath = '\\SMBPullServer\Pull'
        }
    }
}
PullClientConfigID

En el script, el bloque ConfigurationRepositoryShare define el servidor de extracción que, en este caso, es simplemente un recurso compartido SMB.

Configuración de un cliente de extracción para descargar recursos

Si solo especifica el bloque ConfigurationRepositoryWeb o ConfigurationRepositoryShare en la configuración del LCM (como en el ejemplo anterior), el cliente de extracción extraerá recursos de la misma ubicación donde recupera sus configuraciones. También puede especificar ubicaciones independientes para los recursos. Para especificar una ubicación de recurso como un servidor independiente, use el bloque ResourceRepositoryWeb. Para especificar una ubicación de recurso como un recurso compartido SMB, use el bloque ResourceRepositoryShare.

Nota

Puede combinar ConfigurationRepositoryWeb con ResourceRepositoryShare o ConfigurationRepositoryShare con ResourceRepositoryWeb. A continuación no se muestran ejemplos de esto.

Servidor de extracción de DSC HTTP

La metaconfiguración siguiente configura un cliente de extracción para que obtenga sus configuraciones de CONTOSO-PullSrv y sus recursos de CONTOSO-ResourceSrv.

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'

        }

        ResourceRepositoryWeb CONTOSO-ResourceSrv
        {
            ServerURL = 'https://CONTOSO-REsourceSrv:8080/PSDSCPullServer.svc'
        }
    }
}
PullClientConfigID

Recurso compartido SMB

En el siguiente ejemplo se muestra una metaconfiguración que configura un cliente para extraer configuraciones del recurso compartido SMB \\SMBPullServer\Configurations y recursos del recurso compartido SMB \\SMBPullServer\Resources.

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryShare SMBPullServer
        {
            SourcePath = '\\SMBPullServer\Configurations'
        }

        ResourceRepositoryShare SMBResourceServer
        {
            SourcePath = '\\SMBPullServer\Resources'
        }
    }
}
PullClientConfigID

Descarga automática de recursos en modo de inserción

A partir de PowerShell 5.0, los clientes de extracción pueden descargar módulos desde un recurso compartido SMB, incluso cuando están configurados para el modo Push (de inserción). Esto es especialmente útil en escenarios donde no se quiere configurar un servidor de extracción. El bloque ResourceRepositoryShare puede usarse sin especificar un ConfigurationRepositoryShare. En el siguiente ejemplo se muestra una metaconfiguración que configura un cliente para extraer de un recurso compartido SMB \\SMBPullServer\Resources. Cuando el nodo haya INSERTADO una configuración, descargará automáticamente los recursos necesarios, desde el recurso compartido especificado.

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Push'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
        }

        ResourceRepositoryShare SMBResourceServer
        {
            SourcePath = '\\SMBPullServer\Resources'
        }
    }
}
PullClientConfigID

Configuración de un cliente de extracción para notificar el estado

De forma predeterminada, los nodos no enviarán informes a un servidor de extracción configurado. Puede usar un solo servidor de extracción para configuraciones, recursos e informes, pero debe crear un bloque ReportRepositoryWeb para configurar los informes.

Servidor de extracción de DSC HTTP

En el siguiente ejemplo se muestra una metaconfiguración que configura un cliente para que envíe informes de datos y extraiga configuraciones y recursos a un único servidor de extracción.

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
        }

        ReportServerWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
        }
    }
}
PullClientConfigID

Para especificar un servidor de informes, utilice un bloque ReportRepositoryWeb. Un servidor de informes no puede ser un servidor SMB. La metaconfiguración siguiente configura un cliente de incorporación de cambios para que obtenga sus configuraciones de CONTOSO-PullSrv y sus recursos de CONTOSO-ResourceSrv, y para que envíe los informes de estado a CONTOSO-ReportSrv:

[DSCLocalConfigurationManager()]
configuration PullClientConfigID
{
    Node localhost
    {
        Settings
        {
            RefreshMode = 'Pull'
            ConfigurationID = '1d545e3b-60c3-47a0-bf65-5afc05182fd0'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
        }

        ConfigurationRepositoryWeb CONTOSO-PullSrv
        {
            ServerURL = 'https://CONTOSO-PullSrv:8080/PSDSCPullServer.svc'
        }

        ResourceRepositoryWeb CONTOSO-ResourceSrv
        {
            ServerURL = 'https://CONTOSO-REsourceSrv:8080/PSDSCPullServer.svc'
        }

        ReportServerWeb CONTOSO-ReportSrv
        {
            ServerURL = 'https://CONTOSO-REsourceSrv:8080/PSDSCPullServer.svc'
        }
    }
}
PullClientConfigID

Recurso compartido SMB

Un servidor de informes no puede ser un recurso compartido SMB.

Pasos siguientes

Una vez que se ha configurado el cliente de extracción, puede usar a las siguientes guías para realizar los pasos siguientes:

Consulte también