Hi,
I try to install a DSC HTTPS Pull server environment with Partial configuration. Using ConfigurationNames.
But when I call the Update-DscConfiguration I get this :
In the Pull server Events log : Server response for ConfigurationName = DSCClient01 with Status = UpdateMetaConfig (Information)
In the Client Events log : Message UpdateMetaConfig is not a valid value for GetActionResponse. (error)
I think it is related to this bug :
Here are my scripts :
Pull Server config :
Configuration PullServer
{
param(
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[string] $SSLCertThumbprint
)
Import-DscResource -ModuleName xPsDesiredStateConfiguration
node localhost
{
WindowsFeature DSCServiceFeature
{
Ensure = "Present"
Name = "DSC-Service"
}
xDscWebService PSDSCPullServer
{
Ensure = "Present"
EndpointName = "PSDSCService"
Port = 443
PhysicalPath = "c:\inetpub\PullServer"
CertificateThumbPrint = $SSLCertThumbprint
State = "Started"
AcceptSelfSignedCertificates = $true
DependsOn = "[WindowsFeature]DSCServiceFeature"
ModulePath = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Modules"
ConfigurationPath = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration"
RegistrationKeyPath = "$env:PROGRAMFILES\WindowsPowerShell\DscService"
}
File RegistrationKeyFile
{
Ensure = 'Present'
Type = 'File'
DestinationPath = "$env:ProgramFiles\WindowsPowerShell\DscService\RegistrationKeys.txt"
Contents = '67c4388b-6440-4afa-b787-910dad5610f0'
}
}
}
$SSLThumbprint = Get-ChildItem -Path Cert:\LocalMachine\My | where {$_.Subject -like '*dscqua01.*'} | select -ExpandProperty Thumbprint
PullServer -SSLCertThumbprint $SSLThumbprint -OutputPath C:\PullConfiguration
Start-DscConfiguration -Path 'C:\PullConfiguration' -Wait -Verbose
DSC Client LCM Config :
[DscLocalConfigurationManager()]
Configuration DscNodePartialConfig
{
param(
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[string] $DscNodeName
)
Node $DscNodeName {
Settings
{
RefreshMode = 'Pull'
ConfigurationMode = 'ApplyAndAutoCorrect'
ActionAfterReboot = 'ContinueConfiguration'
RebootNodeIfNeeded = $false
DebugMode = 'ForceModuleImport'
}
ConfigurationRepositoryWeb V2PullServer
{
ServerURL = 'https://dscqua01.central.XXX.int/PSDSCPullServer.svc/'
ConfigurationNames = @('InitialConfig','DSCClient01')
RegistrationKey = '67c4388b-6440-4afa-b787-910dad5610f0'
}
ResourceRepositoryWeb V2PullServer
{
ServerURL = 'https://dscqua01.central.XXX.int/PSDSCPullServer.svc/'
RegistrationKey = '67c4388b-6440-4afa-b787-910dad5610f0'
}
ReportServerWeb V2PullServer
{
ServerURL = 'https://dscqua01.central.XXX.int/PSDSCPullServer.svc/'
RegistrationKey = '67c4388b-6440-4afa-b787-910dad5610f0'
}
PartialConfiguration 'InitialConfig'
{
Description = 'Configuration for the Base OS'
ConfigurationSource = '[ConfigurationRepositoryWeb]V2PullServer'
RefreshMode = 'Pull'
}
PartialConfiguration 'DSCClient01' {
Description = 'Configuration for application'
ConfigurationSource = '[ConfigurationRepositoryWeb]V2PullServer'
RefreshMode = 'Pull'
}
}
}
DscNodePartialConfig -OutputPath C:\PullConfiguration\LCM -DscNodeName DSCClient01
Set-DscLocalConfigurationManager -ComputerName DscClient01 -Path C:\PullConfiguration\LCM -verbose
One of the partial config I need to update :
Configuration DSCClient01 {
param(
[string]$Servername
)
Import-DscResource -Name xPackage
Import-DscResource –ModuleName 'PSDesiredStateConfiguration'
$config = gc -Path "C:\PullConfiguration\apps\GFM\ServerConfigs\$Servername.json" | Convertfrom-json
#$config = Invoke-RestMethod -Uri 'http://localhost/my.json' | convertfrom-json TODO: test with WebApi if needed / choosed
Node $config.NodeName {
#Generate config for Apps/Msi type
foreach ($app in $config.Apps) {
xPackage $app.AppName {
Name = $app.PackageName
Ensure = $app.Ensure
Path = $app.MsiPath
ProductID = $app.ProductID
Arguments = $app.Arguments
}
}
}
}
function UpdateServerConfig{
param(
[string]$ServerName
)
$MofPath = "C:\Program Files\WindowsPowerShell\DscService\Configuration\"
#Regenerate the MOF config
DSCClient01 -OutputPath $MofPath -Servername $ServerName
New-DscCheckSum -ConfigurationPath $MofPath
#Push the config to the server
Publish-DscConfiguration -Verbose -ComputerName $ServerName -Path $mofpath -force
Update-DscConfiguration -Verbose -ComputerName dscclient01 -wait
}
UpdateServerConfig -ServerName DSCCLIENT01
PS Version :
Name Value
PSVersion 5.0.10586.51
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
BuildVersion 10.0.10586.51
CLRVersion 4.0.30319.34209
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Is it a Bug in DSC or an error in my config ?
Thanks.