Version information
This version is compatible with:
- Puppet Enterprise 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x
- Puppet >= 6.0.0 < 8.0.0
Start using this module
Add this module to your Puppetfile:
mod 'dsc-xazure', '0.2.0-0-1'
Learn more about managing modules with a PuppetfileDocumentation
Table of Contents
Description
This is an auto-generated module, using the Puppet DSC Builder to vendor and expose the PowerShell module's DSC resources as Puppet resources. The functionality of this module comes entirely from the vendored PowerShell resources, which are pinned at v0.2.0.0. The PowerShell module describes itself like this:
Module with DSC Resources for Azure Resources
For information on troubleshooting to determine whether any encountered problems are with the Puppet wrapper or the DSC resource, see the troubleshooting section below.
Requirements
This module, like all auto-generated Puppetized DSC modules, relies on two important technologies in the Puppet stack: the Puppet Resource API and the puppetlabs/pwshlib Puppet module.
The Resource API provides a simplified option for writing types and providers and is responsible for how this module is structured. The Resource API ships inside of Puppet starting with version 6. While it is technically possible to add the Resource API functionality to Puppet 5.5.x, the DSC functionality has not been tested in this setup. For more information on the Resource API, review the documentation.
The module also depends on the pwshlib module. This Puppet module includes two important things: the ruby-pwsh library for running PowerShell code from ruby and the base provider for DSC resources, which this module leverages.
All of the actual work being done to call the DSC resources vendored with this module is in this file from the pwshlib module. This is important for troubleshooting and bug reporting, but doesn't impact your use of the module except that the end result will be that nothing works, as the dependency is not installed alongside this module!
Usage
You can specify any of the DSC resources from this module like a normal Puppet resource in your manifests. The examples below use DSC resources from from the PowerShellGet repository, regardless of what module you're looking at here; the syntax, not the specifics, is what's important.
For reference documentation about the DSC resources exposed in this module, see the Reference Forge tab, or the REFERENCE.md file.
# Include a meaningful title for your resource declaration
dsc_psrepository { 'Add team module repo':
dsc_name => 'foo',
dsc_ensure => present,
# This location is nonsense, can be any valid folder on your
# machine or in a share, any location the SourceLocation param
# for the DSC resource will accept.
dsc_sourcelocation => 'C:\Program Files',
# You must always pass an enum fully lower-cased;
# Puppet is case sensitive even when PowerShell isn't
dsc_installationpolicy => untrusted,
}
dsc_psrepository { 'Trust public gallery':
dsc_name => 'PSGallery',
dsc_ensure => present,
dsc_installationpolicy => trusted,
}
dsc_psmodule { 'Make Ruby manageable via uru':
dsc_name => 'RubyInstaller',
dsc_ensure => present,
}
For more information about using a built module, check out our narrative documentation.
Properties
Note that the only properties specified in a resource declaration which are passed to Invoke-Dsc are all prepended with dsc.
If a property does _not start with dsc_ it is used to control how Puppet interacts with DSC/other Puppet resources - for example,
specifying a unique name for the resource for Puppet to distinguish between declarations or Puppet metaparameters (notifies,
before, etc).
Troubleshooting
In general, there are three broad categories of problems:
- Problems with the way the underlying DSC resource works.
- Problems with the type definition, where you can't specify a valid set of properties for the DSC resource
- Problems with calling the underlying DSC resource - the parameters aren't being passed correctly or the resource can't be found
Unfortunately, problems with the way the underlying DSC resource works are something we can't help directly with. You'll need to file an issue with the upstream maintainers for the PowerShell module.
Problems with the type definition are when a value that should be valid according to the DSC resource's documentation and code is not accepted by the Puppet wrapper. If and when you run across one of these, please file an issue with the Puppet DSC Builder; this is where the conversion happens and once we know of a problem we can fix it and regenerate the Puppet modules. To help us identify the issue, please specify the DSC module, version, resource, property and values that are giving you issues. Once a fix is available we will regenerate and release updated versions of this Puppet wrapper.
Problems with calling the underlying DSC resource become apparent by comparing <value passed in in puppet>
with <value received by DSC>
.
In this case, please file an issue with the puppetlabs/pwshlib module, which is where the DSC base provider actually lives.
We'll investigate and prioritize a fix and update the puppetlabs/pwshlib module.
Updating to the pwshlib version with the fix will immediately take advantage of the improved functionality without waiting for this module to be reconverted and published.
For specific information on troubleshooting a generated module, check the troubleshooting guide for the puppet.dsc module.
Known Limitations
Currently, because of the way Puppet caches files on agents, use of the legacy puppetlabs-dsc
module is not compatible with this or any auto-generated DSC module.
Inclusion of both will lead to pluginsync conflicts.
Reference
Table of Contents
Resource types
dsc_xazureaffinitygroup
: The DSC xAzureAffinityGroup resource type. Automatically generated from version 0.2.0.0dsc_xazurequickvm
: The DSC xAzureQuickVM resource type. Automatically generated from version 0.2.0.0dsc_xazureservice
: The DSC xAzureService resource type. Automatically generated from version 0.2.0.0dsc_xazuresqldatabase
: The DSC xAzureSqlDatabase resource type. Automatically generated from version 0.2.0.0dsc_xazuresqldatabaseserverfirewallrule
: The DSC xAzureSqlDatabaseServerFirewallRule resource type. Automatically generated from version 0.2.0.0dsc_xazurestorageaccount
: The DSC xAzureStorageAccount resource type. Automatically generated from version 0.2.0.0dsc_xazuresubscription
: The DSC xAzureSubscription resource type. Automatically generated from version 0.2.0.0dsc_xazurevm
: The DSC xAzureVM resource type. Automatically generated from version 0.2.0.0dsc_xazurevmdscconfiguration
: The DSC xAzureVMDscConfiguration resource type. Automatically generated from version 0.2.0.0dsc_xazurevmdscextension
: The DSC xAzureVMDscExtension resource type. Automatically generated from version 0.2.0.0
Resource types
dsc_xazureaffinitygroup
The DSC xAzureAffinityGroup resource type. Automatically generated from version 0.2.0.0
Properties
The following properties are available in the dsc_xazureaffinitygroup
type.
dsc_description
Data type: Optional[String]
Specifies a description for the affinity group. The description may be up to 1024 characters in length.
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Specifies whether the Azure Affinity Group should be present or absent.
dsc_label
Data type: Optional[String]
Specifies a label for the affinity group. The label may be up to 100 characters in length.
dsc_location
Data type: String
Specifies the geographical location of the data center where the affinity group will be created. This must match a value from the Name property of objects returned by Get-AzureLocation.
Parameters
The following parameters are available in the dsc_xazureaffinitygroup
type.
dsc_name
namevar
Data type: String
Specifies a name for the new affinity group that is unique to the subscription.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
dsc_xazurequickvm
The DSC xAzureQuickVM resource type. Automatically generated from version 0.2.0.0
Properties
The following properties are available in the dsc_xazurequickvm
type.
dsc_adminusername
Data type: Optional[String]
Specifies the name for the administrative account to create.
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Specifies whether the Azure VM should be present or absent.
dsc_imagename
Data type: Optional[String]
Specifies the name of the operating system image to use to create the operating system disk.
dsc_instancesize
Data type: Optional[String]
Specifies the size of the instance. For a list of virtual machine sizes, see http://msdn.microsoft.com/library/azure/dn197896.aspx
dsc_linux
Data type: Optional[Boolean]
Creates a Linux virtual machine.
dsc_linuxuser
Data type: Optional[String]
Specifies the Linux administrative account name to create.
dsc_password
Data type: Optional[String]
Specifies the password for the administrative account.
dsc_servicename
Data type: String
Specifies the new or existing service name.
dsc_windows
Data type: Optional[Boolean]
Creates a Windows virtual machine.
Parameters
The following parameters are available in the dsc_xazurequickvm
type.
dsc_name
namevar
Data type: String
Specifies the name of the virtual machine.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
dsc_xazureservice
The DSC xAzureService resource type. Automatically generated from version 0.2.0.0
Properties
The following properties are available in the dsc_xazureservice
type.
dsc_affinitygroup
Data type: String
Specifies a description for the service.
dsc_description
Data type: Optional[String]
Specifies the Azure Affinity Group for the service.
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Specifies whether the service should be present or absent.
dsc_label
Data type: Optional[String]
Specifies a label for the service.
Parameters
The following parameters are available in the dsc_xazureservice
type.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
dsc_servicename
namevar
Data type: String
Specifies a name for the new cloud service that is unique to the subscription.
name
namevar
Data type: String
Description of the purpose for this resource declaration.
dsc_xazuresqldatabase
The DSC xAzureSqlDatabase resource type. Automatically generated from version 0.2.0.0
Properties
The following properties are available in the dsc_xazuresqldatabase
type.
dsc_azurepublishsettingsfile
Data type: Optional[String]
Specifies the location of the Publish Settings file for the Azure Subscription
dsc_azuresubscriptionname
Data type: Optional[String]
Specifies the name of the Azure subscription that should be set to Current
dsc_collation
Data type: Optional[String]
Collation of the database
dsc_edition
Data type: Optional[String]
Edition of the database
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Ensure that database is present or absent
dsc_maximumsizeingb
Data type: Optional[Integer[0, 4294967295]]
Maximum size of the database in GB
dsc_servername
Data type: String
Name of the database server
Parameters
The following parameters are available in the dsc_xazuresqldatabase
type.
dsc_name
namevar
Data type: String
Name of the database
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
dsc_servercredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
Credential to the database server
name
namevar
Data type: String
Description of the purpose for this resource declaration.
dsc_xazuresqldatabaseserverfirewallrule
The DSC xAzureSqlDatabaseServerFirewallRule resource type. Automatically generated from version 0.2.0.0
Properties
The following properties are available in the dsc_xazuresqldatabaseserverfirewallrule
type.
dsc_azurepublishsettingsfile
Data type: Optional[String]
Specifies the location of the Publish Settings file for the Azure Subscription
dsc_azuresubscriptionname
Data type: Optional[String]
Specifies the name of the Azure subscription that should be set to Current
dsc_endipaddress
Data type: String
End IP address of the firewall rule
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Ensure that firewall rule is present or absent
dsc_startipaddress
Data type: String
Start IP address of the firewall rule
Parameters
The following parameters are available in the dsc_xazuresqldatabaseserverfirewallrule
type.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
dsc_rulename
namevar
Data type: String
Name of the firewall rule
dsc_servername
namevar
Data type: String
Name of the database server for which firewall rule should be created
name
namevar
Data type: String
Description of the purpose for this resource declaration.
dsc_xazurestorageaccount
The DSC xAzureStorageAccount resource type. Automatically generated from version 0.2.0.0
Properties
The following properties are available in the dsc_xazurestorageaccount
type.
dsc_affinitygroup
Data type: String
Specifies the name of an existing affinity group in the current subscription. You can specify either a Location or an AffinityGroup parameter, but not both.
dsc_container
Data type: Optional[String]
Specifies a name for the Container that should be created in the Azure Storage Account.
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Specifies whether the Azure Storage Account should be present or absent.
dsc_folder
Data type: Optional[String]
Specifies a local folder. All files in the root of the folder will be uploaded to the new container.
dsc_label
Data type: Optional[String]
Specifies a label for the storage account. The label may be up to 100 characters in length.
Parameters
The following parameters are available in the dsc_xazurestorageaccount
type.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
dsc_storageaccountname
namevar
Data type: String
Specifies a name for the storage account. The storage account name must be unique to Windows Azure and must be between 3 and 24 characters in length and use lowercase letters and numbers only.
name
namevar
Data type: String
Description of the purpose for this resource declaration.
dsc_xazuresubscription
The DSC xAzureSubscription resource type. Automatically generated from version 0.2.0.0
Properties
The following properties are available in the dsc_xazuresubscription
type.
dsc_azurepublishsettingsfile
Data type: Optional[String]
Specifies the location of the Publish Settings file for the Azure Subscription.
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Specifies whether the subscription should be present or absent.
Parameters
The following parameters are available in the dsc_xazuresubscription
type.
dsc_azuresubscriptionname
namevar
Data type: String
Specifies the name of the Azure subscription that should be set to Current.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
dsc_xazurevm
The DSC xAzureVM resource type. Automatically generated from version 0.2.0.0
Properties
The following properties are available in the dsc_xazurevm
type.
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Specifies whether the Azure VM should be present or absent.
dsc_extensioncontainername
Data type: Optional[String]
The name of the Container in Azure Blob storage where the script files will reside. Case sensitive.
dsc_extensionfilelist
Data type: Optional[String]
List of files in Azure Blob container that should be copied in to the VM. Case sensitive.
dsc_extensionscriptname
Data type: Optional[String]
Name of one of the files in the container that will be exectued at startup. Case sensitive.
dsc_imagename
Data type: String
Specifies the name of the operating system image to use to create the operating system disk.
dsc_instancesize
Data type: Optional[String]
Specifies the size of the instance. For a list of virtual machine sizes, see http://msdn.microsoft.com/library/azure/dn197896.aspx
dsc_linux
Data type: Optional[Boolean]
Creates a Linux virtual machine.
dsc_servicename
Data type: String
Specifies the new or existing service name.
dsc_storageaccountname
Data type: String
Specifies the name of the storage account for the VM.
dsc_windows
Data type: Optional[Boolean]
Creates a Windows virtual machine.
Parameters
The following parameters are available in the dsc_xazurevm
type.
dsc_credential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
dsc_name
namevar
Data type: String
Specifies the name of the virtual machine.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
name
namevar
Data type: String
Description of the purpose for this resource declaration.
dsc_xazurevmdscconfiguration
The DSC xAzureVMDscConfiguration resource type. Automatically generated from version 0.2.0.0
Properties
The following properties are available in the dsc_xazurevmdscconfiguration
type.
dsc_azurepublishsettingspath
Data type: Optional[String]
Specifies the location of the Publish Settings file for the Azure Subscription.
dsc_azuresubscriptionname
Data type: Optional[String]
Specifies the name of the Azure subscription that should be set to Current.
dsc_bloburi
Data type: Optional[String]
Absolute Uri of the Blob
dsc_configurationpath
Data type: String
Specifies location of the Dsc Configuration document
dsc_containername
Data type: Optional[String]
Specifies the name of the Container in the Azure Storage Account.
dsc_ensure
Data type: Optional[Enum['Present', 'Absent']]
Specifies whether the supplied Configuration is Present or Absent in Azure Storage
Parameters
The following parameters are available in the dsc_xazurevmdscconfiguration
type.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
dsc_storageaccountname
namevar
Data type: String
Specifies name of the existing storage account.
name
namevar
Data type: String
Description of the purpose for this resource declaration.
dsc_xazurevmdscextension
The DSC xAzureVMDscExtension resource type. Automatically generated from version 0.2.0.0
Properties
The following properties are available in the dsc_xazurevmdscextension
type.
dsc_code
Data type: Optional[String]
Returns the message code for the latest oepration by the DSC Extension.
dsc_configuration
Data type: Optional[String]
Name of the configuration script or module that will be invoked by the DSC Extension.
dsc_configurationarchive
Data type: String
The name of the configuration package .zip file that was previously uploaded by Publish-AzureVMDscConfiguration. This parameter must specify only the name of the file, without any path.
dsc_configurationargument
Data type: Optional[Struct[{ key => Optional[String], value => Optional[String], }]]
A hashtable specifying the arguments to the configuration function. The keys correspond to the parameter names and the values to the parameter values.
dsc_configurationdatapath
Data type: Optional[String]
The path to a .psd1 file that specifies the data for the configuration function.
dsc_containername
Data type: Optional[String]
Name of the Azure Storage Container where the ConfigurationArchive is located.
dsc_message
Data type: Optional[String]
Returns the formatted message string for the latest operation by the DSC Extension.
dsc_referencename
Data type: Optional[String]
The Extension Reference Name
dsc_servicename
Data type: String
Specifies name of the Service where the VM is deployed.
dsc_status
Data type: Optional[String]
Returns the state of the DSC Extension from Azure.
dsc_storageaccountname
Data type: String
Specifies the name of the Storage Account used to create the Storage Context. The Azure Storage Context provides the security settings used to access the configuration script. This context should provide read access to the container specified by ContainerName.
dsc_storageendpointsuffix
Data type: Optional[String]
The DNS endpoint suffix for all storage services, e.g. core.windows.net
dsc_timestamp
Data type: Optional[String]
Returns the timestamp of the last DSC Extension execution.
dsc_version
Data type: Optional[String]
The specific version of the DSC Extension to use. If not given, it will default to 1.*
Parameters
The following parameters are available in the dsc_xazurevmdscextension
type.
dsc_force
Data type: Optional[Boolean]
By default Set-AzureVMDscExtension will not overwrite any existing blobs. Use -Force to overwrite them.
dsc_psdscrunascredential
Data type: Optional[Struct[{ user => String[1], password => Sensitive[String[1]] }]]
dsc_vmname
namevar
Data type: String
Specifies name of the VM. This is used together with ServiceName to construct a persistent vm object.
name
namevar
Data type: String
Description of the purpose for this resource declaration.
Dependencies
- puppetlabs/pwshlib (>= 0.7.0 < 2.0.0)