Partial Configuration failure in Pull mode

Tagged: 

This topic contains 8 replies, has 4 voices, and was last updated by Profile photo of David Järnström David Järnström 1 year, 8 months ago.

  • Author
    Posts
  • #29307
    Profile photo of Jeff Pflum
    Jeff Pflum
    Participant

    I am experimenting with partial configurations and keep getting the following warning logged by the LCM:

    "Partial Configuration PartialTest not available on configuration server."

    The LCM configuration looks as follows:

    ==========
    [DSCLocalConfigurationManager()]
    Configuration PartialConfiguration_LCM
    {
    Node $AllNodes.NodeName
    {
    Settings
    {
    AllowModuleOverwrite = $true
    CertificateID = '49257b33973c7f3dd4285971d149116bc7506822'
    ConfigurationID = '6C55FA46-C383-40A6-B485-37A390FB43B6'
    ConfigurationMode = 'ApplyAndAutoCorrect'
    RefreshMode = 'Pull'
    }

    ConfigurationRepositoryWeb PullServer
    {
    ServerURL = $Node.DownloadManagerServerURL
    AllowUnsecureConnection = $true
    }

    PartialConfiguration PartialTest
    {
    Description = 'This is a partial configuration'
    ConfigurationSource = '[ConfigurationRepositoryWeb]PullServer'
    RefreshMode = 'Pull'
    }
    }
    }
    ==========

    The configuration files I placed on the Pull server are:

    PartialTest.6C55FA46-C383-40A6-B485-37A390FB43B6.mof
    PartialTest.6C55FA46-C383-40A6-B485-37A390FB43B6.mof.checksum

    I have been able to successfully pull regular configurations from the pull server so I know its working correctly.

    Any ideas how to troubleshoot?

    Thanks...

  • #29308
    Profile photo of Don Jones
    Don Jones
    Keymaster

    You don't mention what version you're using. Is this the production preview? Or Windows 10? What's the pull server version?

  • #29310
    Profile photo of Jeff Pflum
    Jeff Pflum
    Participant

    Sorry....

    The Pull Server is using WMF 5.0 Production Preview, and Windows Server 2012 R2. The client node trying to pull the partial configuration is using WMF 5.0 Production Preview, and is running Windows Server 2008 R2.

  • #29312
    Profile photo of Don Jones
    Don Jones
    Keymaster

    When using configuration names, you need to set up a shared authentication secret between the LCM and the pull server. You also need to ensure the partial configuration exists (obviously) and has a valid checksum. It does look like you're using configuration *ID* instead of name, but I want to verify rather than making assumptions – your filenames are confusing me, because you're using both name and GUID?

  • #29313
    Profile photo of Jeff Pflum
    Jeff Pflum
    Participant

    The partial configuration .mof file exists and is in the correct place. I regenerated the .mof.checksum file to be sure.

    I set up the shared authentication secret by placing a RegistrationKeys.txt file in the location pointed to in the Pull servers web.config file. The file contains a single GUID. The shared authentication secret (i.e. GUID) was added to the LCM configuration, which now looks as follows:

    ==========
    [DSCLocalConfigurationManager()]
    Configuration PartialConfiguration_LCM
    {
    Node $AllNodes.NodeName
    {
    Settings
    {
    AllowModuleOverwrite = $true
    CertificateID = '49257b33973c7f3dd4285971d149116bc7506822'
    ConfigurationID = '6C55FA46-C383-40A6-B485-37A390FB43B6'
    ConfigurationMode = 'ApplyAndAutoCorrect'
    RefreshMode = 'Pull'
    }

    ConfigurationRepositoryWeb PullServer
    {
    ServerURL = $Node.DownloadManagerServerURL
    RegistrationKey = '41D42E6A-BDD3-4963-8E8C-87DA32BCB53E'
    AllowUnsecureConnection = $true
    }

    PartialConfiguration PartialTest
    {
    Description = 'This is a partial configuration'
    ConfigurationSource = '[ConfigurationRepositoryWeb]PullServer'
    RefreshMode = 'Pull'
    }
    }
    }
    ==========

    I am getting the same error:

    "Partial Configuration PartialTest not available on configuration server."

    As far as the names of the .mof and .mof.checksum files containing both name and guid, this is based on information located here that states to do so:

    https://technet.microsoft.com/en-us/library/mt445484.aspx

    NOTE: The example shown in the TechNet documentation doesn't show a RegistrationKey entry in the ConfigurationRepositoryWeb section.

  • #29321
    Profile photo of Don Jones
    Don Jones
    Keymaster

    Yeah, and this stuff has changed so much through the various previews I'm not even sure what I tested last. And I hate the way they've jury-rigged the configuration names.

    I'm going to ping a couple of other folks, because this looks right to me. But I think you should open a product support incident, too – that's the whole point of this being a "production preview." It's supported, and we won't all have to guess at the problem.

  • #29329
    Profile photo of Dave Wyatt
    Dave Wyatt
    Moderator

    The latest bits I remember reading about partial configs (after they introduced ConfigurationName and AgentID) is here: http://blogs.msdn.com/b/powershell/archive/2015/05/29/how-to-register-a-node-with-a-dsc-pull-server.aspx . That blog post doesn't go into detail about what to name the MOF files, but I would try removing that ConfigurationId GUID from the name, and just go with PartialTest.mof and PartialTest.checksum.mof . (Notice that in the blog's screenshots, ConfigurationId is left blank in the LCM, and AgentId was automatically generated.)

    I'll set up some VMs with the latest production preview bits to try this out for myself as well, but I don't have one up and running right this minute.

  • #29551
    Profile photo of Jeff Pflum
    Jeff Pflum
    Participant

    I renamed the files as you suggested (removed the GUID portion from the name). I also tried commenting out "ConfigurationID = '6C55FA46-C383-40A6-B485-37A390FB43B6'" from the Settings section of the LCM configuration. I rebuilt the LCM configuration and then tried to apply it using Start-DscConfiguration, and received an error which said: "Failed to register Dsc Agent with AgentId GUID with the server".

    So I uncommented "ConfigurationID = '6C55FA46-C383-40A6-B485-37A390FB43B6'" and called Start-DscConfiguration again. This time the LCM configuration was successful, but when it applies the partial configuration, I am still getting the original error: "Partial Configuration PartialTest not available on configuration server."

    Did you have a chance to try this out?

    Thanks...

  • #29749
    Profile photo of David Järnström
    David Järnström
    Participant

    I had a similar problem that you have described and the error "Partial Configuration PartialTest not available on configuration server."

    DSC server
    Windows 2012 R2 with WMF 5.0 Production Preview

    The problem started when I installed WMF 5.0(It worked before with the april preview), the fix for me was rename the root folders for the DSC sites(PSDSCpullServer & PSDSCComplianceServer e.g C:\inetpub\wwwroot\PSDSCComplianceServer_old ) and then delete the IIS sites. After that I installed them once again.

    This is how my LCM looks like

    [DSCLocalConfigurationManager()]
    Configuration DSCLCM
    {
    
          Settings
          {
              RefreshMode = "Pull";
              ConfigurationID = "bc991249-3dda-4d37-9c3a-ede192b567b8";
              RebootNodeIfNeeded = $true;
              AllowModuleOverwrite  = $true;
              ConfigurationMode = "ApplyOnly";
              
          }
     
          ConfigurationRepositoryWeb PullSvc1
          {
              ServerURL = 'https://dscserver.something.com/PSDSCPullServer.svc'
              AllowUnSecureConnection = $false
              CertificateID = '*************************************'
              RegistrationKey = '*************************************'
    
     }
    
        PartialConfiguration BasePartial
          {
             Description = 'Configuration BasePartial'
             ConfigurationSource = '[ConfigurationRepositoryWeb]PullSvc1'
             RefreshMode = "Pull"
          }
    
           ConfigurationRepositoryWeb PullSvc2
          {
              ServerURL = 'https://dscserver.something.com/PSDSCPullServer.svc'
              AllowUnSecureConnection = $false
              CertificateID = '*************************************'
              RegistrationKey = '*************************************'  
    
     }
    
     
          PartialConfiguration SecondPartial
          {
             Description = 'Configuration SecondPartial'
             ConfigurationSource = '[ConfigurationRepositoryWeb]PullSvc2'
             RefreshMode = "Pull"
             DependsOn = '[PartialConfiguration]BasePartial'
          }
    
          }
    

    My MOF files have both the configurationID GUID and PartialConfiguration name
    Basepartial.bc991249-3dda-4d37-9c3a-ede192b567b8
    SecondPartial.bc991249-3dda-4d37-9c3a-ede192b567b8

    I hope it might help you or that you already solved your problem 😉

    /D

You must be logged in to reply to this topic.