Skip to content

Latest commit

 

History

History
110 lines (78 loc) · 2.33 KB

README.md

File metadata and controls

110 lines (78 loc) · 2.33 KB

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