PowerShell module for Invoking DSC from json
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
InvokeDSC
buildscripts
doc/readme
tests
LICENSE
README.md
appveyor.yml

README.md

Build status

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.

test run output

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

Credits

POSHOrigin by Brandon Olin

Ansible-win_dsc by Trond Hindenes

Steven Murawski

Jaigene Kang