Partilhar via


Configurar um Cliente Pull com IDs de Configuração no PowerShell 5.0 e posterior

Aplica-se a: Windows PowerShell 5.0

Importante

O Servidor pull (Windows Feature DSC-Service) é um componente suportado do Windows Server. No entanto, não existem planos para oferecer novas funcionalidades ou capacidades. Gostaríamos que soubesse que está agora disponível uma versão mais recente do DSC, gerida por uma funcionalidade de Azure Policy com o nome configuração de convidado. O serviço de configuração de convidado combina as funcionalidades da Extensão DSC, Automatização do Azure State Configuration e as funcionalidades mais frequentemente pedidas do feedback dos clientes. A configuração de convidado também inclui suporte de máquina híbrida através de servidores compatíveis com o Arc.

Antes de configurar um cliente pull, deve configurar um servidor de solicitação. Embora esta encomenda não seja necessária, ajuda na resolução de problemas e ajuda-o a garantir que o registo foi efetuado com êxito. Para configurar um servidor de extração, pode utilizar os seguintes guias:

Cada nó de destino pode ser configurado para transferir configurações, recursos e até comunicar o respetivo estado. As secções abaixo mostram-lhe como configurar um cliente pull com uma partilha SMB ou Um Servidor de Solicitação DSC HTTP. Quando o LCM do Nó é atualizado, irá contactar a localização configurada para transferir quaisquer configurações atribuídas. Se não existirem recursos necessários no Nó, será transferido automaticamente a partir da localização configurada. Se o Nó estiver configurado com um Servidor de Relatórios, comunicará o estado da operação.

Nota

Este tópico aplica-se ao PowerShell 5.0. Para obter informações sobre como configurar um cliente pull no PowerShell 4.0, veja Configurar um cliente pull com o ID de configuração no PowerShell 4.0

Configurar o cliente de solicitação LCM

A execução de qualquer um dos exemplos abaixo cria uma nova pasta de saída denominada PullClientConfigID e coloca aí um ficheiro MOF de metaconfiguração. Neste caso, o ficheiro MOF de metaconfiguração terá o nome localhost.meta.mof.

Para aplicar a configuração, chame o cmdlet Set-DscLocalConfigurationManager , com o Caminho definido para a localização do ficheiro MOF de metaconfiguração. Por exemplo:

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

ID de Configuração

Os exemplos abaixo definem a propriedade ConfigurationID do LCM para um Guid que tinha sido criado anteriormente para esta finalidade. O ConfigurationID é o que o LCM utiliza para encontrar a configuração adequada no servidor de extração. O ficheiro MOF de configuração no servidor de extração tem de ter o nome ConfigurationID.mof, em que ConfigurationID é o valor da propriedade ConfigurationID do LCM do nó de destino. Para obter mais informações, veja Publicar Configurações num Servidor pull (v4/v5).

Pode criar um Guid aleatório com o exemplo abaixo ou com o cmdlet New-Guid .

[System.Guid]::NewGuid()

Para obter mais informações sobre como utilizar Guids no seu ambiente, veja Planear guids.

Configurar um Cliente Pull para transferir Configurações

Cada cliente tem de ser configurado no modo Pull e dado o URL do servidor de solicitação onde a configuração está armazenada. Para tal, tem de configurar a Configuration Manager Local (LCM) com as informações necessárias. Para configurar o LCM, crie um tipo especial de configuração, decorado com o atributo DSCLocalConfigurationManager . Para obter mais informações sobre como configurar o LCM, veja Configurar a Configuration Manager Local.

Servidor de Solicitação DSC HTTP

O script seguinte configura o LCM para solicitar configurações de um servidor com o nome "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

No script, o bloco ConfigurationRepositoryWeb define o servidor de solicitação. O ServerUrl especifica o URL da Solicitação do DSC

Partilha SMB

O script seguinte configura o LCM para solicitar configurações da Partilha \\SMBPullServer\PullSMB.

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

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

No script, o bloco ConfigurationRepositoryShare define o servidor de extração que, neste caso, é apenas uma partilha SMB.

Configurar um Cliente Pull para transferir Recursos

Se especificar apenas o bloco ConfigurationRepositoryWeb ou ConfigurationRepositoryShare na configuração do LCM (como nos exemplos anteriores), o cliente pull irá extrair recursos da mesma localização onde obtém as respetivas configurações. Também pode especificar localizações separadas para recursos. Para especificar uma localização de recurso como um servidor separado, utilize o bloco ResourceRepositoryWeb . Para especificar uma localização de recurso como uma partilha SMB, utilize o bloco ResourceRepositoryShare .

Nota

Pode combinar ConfigurationRepositoryWeb com ResourceRepositoryShare ou ConfigurationRepositoryShare com ResourceRepositoryWeb. Os exemplos não são apresentados abaixo.

Servidor de Solicitação DSC HTTP

A seguinte metaconfiguração configura um cliente pull para obter as respetivas configurações a partir da CONTOSO-PullSrv e dos respetivos recursos da 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

Partilha SMB

O exemplo seguinte mostra uma metaconfiguração que configura um cliente para solicitar configurações da partilha \\SMBPullServer\ConfigurationsSMB e recursos da partilha \\SMBPullServer\ResourcesSMB.

[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

Transferir recursos automaticamente no Modo Push

A partir do PowerShell 5.0, os seus clientes pull podem transferir módulos a partir de uma partilha SMB, mesmo quando estão configurados para o modo Push . Isto é especialmente útil em cenários em que não quer configurar um Servidor pull. O bloco ResourceRepositoryShare pode ser utilizado sem especificar uma ConfigurationRepositoryShare. O exemplo seguinte mostra uma metaconfiguração que configura um cliente para extrair recursos de uma Partilha \\SMBPullServer\ResourcesSMB. Quando o Nó é PUSHED de uma configuração, irá transferir automaticamente todos os recursos necessários, a partir da partilha especificada.

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

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

Configurar um Cliente Pull para comunicar o estado

Por predefinição, os Nós não enviarão relatórios para um Servidor pull configurado. Pode utilizar um único servidor de extração para configurações, recursos e relatórios, mas tem de criar um bloco ReportRepositoryWeb para configurar os relatórios.

Servidor de Solicitação DSC HTTP

O exemplo seguinte mostra uma metaconfiguração que configura um cliente para solicitar configurações e recursos e enviar dados de relatórios para um único servidor pull.

[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 um servidor de relatórios, utilize um bloco ReportRepositoryWeb . Um servidor de relatórios não pode ser um servidor SMB. A seguinte metaconfiguração configura um cliente pull para obter as configurações da CONTOSO-PullSrv e respetivos recursos da CONTOSO-ResourceSrv e para enviar relatórios de estado para 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

Partilha SMB

Um servidor de relatórios não pode ser uma partilha SMB.

Passos Seguintes

Depois de configurar o cliente pull, pode utilizar os seguintes guias para executar os passos seguintes:

Consulte também