InvokeDSC
InvokeDSC copied to clipboard
PowerShell module for Invoking DSC from json
InvokeDSC
InvokeDSC is a JSON based DSL for creating and managing infrastructure with DSC resources.
Overview
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.
JSON Configuration File
{
"Modules":{
"xPSDesiredStateConfiguration":"8.0.0.0"
},
"DSCResourcesToExecute":{
"DevOpsGroup":{
"dscResourceName":"xGroup",
"GroupName":"DevOps",
"ensure":"Present"
}
}
}
Commands
- ConvertTo-Dsc
- Invoke-Dsc
- Invoke-DscConfiguration
Examples
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
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
Invoke-Dsc
$r = ConvertTo-Dsc -Path 'c:\config.json'
Invoke-Dsc -Resource $r