Distributing arbitrary DSC resources
You can use the puppetlabs-dsc_lite
module to manage target nodes
with arbitrary DSC resources.
puppetlabs-dsc_lite
requires previous
experience with DSC and PowerShell. It is an
alternative approach to Puppet's other DSC
modules, providing more flexibility for advanced users.The puppetlabs-dsc_lite
module contains a lightweight
dsc
type — a streamlined and minimal representation of a DSC
Resource declaration in Puppet syntax. While it does not
contain any DSC resource, it knows how to invoke ones that already exists on the managed
node.
You can use a DSC Resource by supplying the same properties you would set in a
DSC configuration script — inside the properties
parameter. For most
use cases, the properties
parameter accepts the same structure as the
PowerShell syntax, with the substitution of Puppet syntax for arrays, hashes, and other data
structures.
PS> Get-DscResource WindowsFeature | Select-Object -ExpandProperty Properties
Using the puppetlabs-dsc_lite
module, you can specify a
version of the DSC Resource to use for each resource declaration. For example, you might
want to specify a version if your target node has multiple versions installed, or if you
need to use multiple versions in a single Puppet run.
dsc {'iis_server':
resource_name => 'WindowsFeature',
module => {
name => 'PSDesiredStateConfiguration',
version => '1.1'
},
properties => {
ensure => 'present',
name => 'Web-Server',
}
}
For more information, see the the puppetlabs-dsc_lite module's documentation.