InvokeDSC is a JSON based DSL for creating and managing infrastructure with DSC resources.
Allows you to declaratively define your infrastructure within JSON configuration documents. InvokeDSC converts those json documents to PSCustomObjects that Invoke-DSCResource can consume. By doing this it removes the need for PowerShell configuration documents and the .mof documents it generates. Which results in more flexibility and removes the need of a single .mof document that declares the end state of your infrastructure.
{
"Modules":{
"xPSDesiredStateConfiguration":"8.0.0.0"
},
"DSCResourcesToExecute":{
"DevOpsGroup":{
"dscResourceName":"xGroup",
"GroupName":"DevOps",
"ensure":"Present"
}
}
}
- ConvertTo-Dsc
- Invoke-Dsc
- Invoke-DscConfiguration
Invoke-DscConfiguration -Path 'c:\config.json'
$config = @"
{
"Modules":{
"xPSDesiredStateConfiguration":"8.0.0.0"
},
"DSCResourcesToExecute":{
"DevOpsGroup":{
"dscResourceName":"xGroup",
"GroupName":"DevOps",
"ensure":"Present"
}
}
}
"@
Invoke-DscConfiguration -InputObject $config
ConvertTo-Dsc -Path 'c:\json\example.json'
$config = @"
{
"Modules":{
"xPSDesiredStateConfiguration":"8.0.0.0"
},
"DSCResourcesToExecute":{
"DevOpsGroup":{
"dscResourceName":"xGroup",
"GroupName":"DevOps",
"ensure":"Present"
}
}
}
"@
ConvertTo-Dsc -InputObject $config
$r = ConvertTo-Dsc -Path 'c:\config.json'
Invoke-Dsc -Resource $r