wsusserver
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, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >= 4.7.1 < 8.0.0
This module has been deprecated by its author since Nov 4th 2022.
The author has suggested dsc-updateservicesdsc as its replacement.
Start using this module
Documentation
DEPRECATED - no longer actively maintained
This module was created a long time ago before there was a good option available in puppet for automating the installation and configuration of a WSUS Server. Since puppet now has support for leveraging Powershell DSC Resources, this module no longer makes sense. Therefore, This project has been deprecated and should no longer be used. Please work on migrating to the solution provided by puppet https://forge.puppet.com/modules/dsc/updateservicesdsc .
NServiceBus.NewRelic.Anal
WSUSServer
Table of Contents
- Description
- Setup - The basics of getting started with wsusserver
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Development - Guide for contributing to the module
Description
The wsusserver module installs, configures, and manages Windows Server Update Services (WSUS) on Windows systems.
Windows Server Update Services (WSUS) allows for administrators to manage the deployment of updates for products (SQL Server, Window Server 2016..etc) released by Microsoft.
Setup
Setup Requirements
The wsusserver module requires the following:
- Puppet Agent 4.7.1 or later.
- Windows Server 2016.
Note - The module also works on Windows Server 2012 & 2012 R2 with WMF(PowerShell) 5.1 installed, but only limited testing has been performed.
Beginning with wsusserver
To get started with the wsusserver module simply include the following in your manifest:
class { 'wsusserver':
package_ensure => 'present',
update_languages => ['en'],
products => [
'Active Directory Rights Management Services Client 2.0',
'ASP.NET Web Frameworks',
'Microsoft SQL Server 2012',
'SQL Server Feature Pack',
'SQL Server 2012 Product Updates for Setup',
'Windows Server 2016',
],
update_classifications => [
'Critical Updates',
'Security Updates',
'Updates',
],
}
This example installs, configures, and manages the wsusserver service. After running this you should be able to access the WSUS Console to begin you enterprise management of updates.
A more advanced configuration including most attributes available for the base/main class:
class { 'wsusserver':
package_ensure => 'present',
include_management_console => true,
service_manage => true,
service_ensure => 'running',
service_enable => true,
wsus_directory => 'C:\\WSUS',
join_improvement_program => false,
sync_from_microsoft_update => true,
update_languages => ['en'],
products => [
'Active Directory Rights Management Services Client 2.0',
'ASP.NET Web Frameworks',
'Microsoft SQL Server 2012',
'SQL Server Feature Pack',
'SQL Server 2012 Product Updates for Setup',
'Windows Server 2016',
],
product_families => [
'SQL Server',
'System Center',
],
update_classifications => [
'Critical Updates',
'Security Updates',
'Updates',
],
targeting_mode => 'Client',
host_binaries_on_microsoft_update => false,
synchronize_automatically => true,
synchronize_time_of_day => '03:00:00', # 3AM ( UTC ) 24H Clock
number_of_synchronizations_per_day => 1,
}
The above is just an example of the flexibility you have with this module. You will generally never need to specify every or even so many parameters as shown.
Usage
Host binaries at microsoft
Updates can be downloaded locally on the wsusserver and machines can pull approved and appropriate updates for installation straight from the wsusserver. Since updates from microsoft are very large in size this requires a good amount of disk space to be available. One option is to use the wsus server for approval and checking of updates and inform the clients they should pull updates directly from microsoft's updates servers relieving your server of the load and disk space. This can be configured like so.
class { 'wsusserver':
package_ensure => 'present',
host_binaries_on_microsoft_update => true,
}
NOTE: In order to use this option each machine needs someway to get out to the public internet to pull their updates directly from microsoft.
Configuring Server-Side Targeting
Updates can be targeted in 2 ways. Client-side or Server-side. Server-side targeting indicates some administrator must move computers in the appropriate computer groups in order for them to get their desired updates. By default all computers that need to be manually classified will be found in the UnAssigned Computers group. Server-side target is rarely used since it requires manual intervention. While not recommended this can be done like so:
class { 'wsusserver':
package_ensure => 'present',
targeting_mode => 'Server',
}
Configuring Client-Side Targeting
Typically Client-Side targeting is used which is why it's ths default in this module if not specified. Below is an example of setting client-side targeting explicitly.
class { 'wsusserver':
package_ensure => 'present',
targeting_mode => 'Client',
}
This is typically done through 1 of 2 ways.
- Group-Policy
- Registry
It's recommended to avoid group policy all together and simply utilize the puppetlabs/wsus_client module ( which is a supported module by puppetlabs ) which handles configuring clients for client-side targeting.
Customizing the Synchronization Schedule
The process of wsus server checking for new categories, products, and updates is called synchronization. While this can be done manually, it's typically done automatically on a configured scheduled. Below is an example of how to configure automatic synchronization every day at around 3:00AM UTC ( which is the default configured by this module ).
class { 'wsusserver':
package_ensure => 'present',
synchronize_automatically => true,
synchronize_time_of_day => '03:00:00', # 3AM ( UTC ) 24H Clock
number_of_synchronizations_per_day => 1,
}
If you want four synchronizations a day starting at 3:00AM UTC your schedule would look like below and be configured as such.
Number | Time To Sync |
---|---|
1 | 3:00AM UTC |
2 | 9:00AM UTC |
3 | 3:00PM UTC |
4 | 9:00PM UTC |
class { 'wsusserver':
package_ensure => 'present',
synchronize_automatically => true,
synchronize_time_of_day => '03:00:00', # 3AM ( UTC ) 24H Clock
number_of_synchronizations_per_day => 4,
}
NOTE: The synchronization time of day has a random offset up to 30 minutes from the what you specify. This is done automatically by microsoft in order to prevent a stampeeding herd on their servers.
Customizing Languages and Products
You typically don't want WSUS to manage updates in all languages or even for all products, there is just too many and this would require a huge server just to pull this load. Therefore, you typically specify a subset of the full list of languages and products you would like wsus server to manage updates for. Below is an example of this.
class { 'wsusserver':
package_ensure => 'present',
update_languages => ['en'],
products => [
'Active Directory Rights Management Services Client 2.0',
'ASP.NET Web Frameworks',
'Microsoft SQL Server 2012',
'SQL Server Feature Pack',
'SQL Server 2012 Product Updates for Setup',
'Windows Server 2016',
],
product_families => [
'SQL Server',
'System Center',
],
update_classifications => [
'Critical Updates',
'Security Updates',
'Updates',
],
}
NOTE: The list of products, classifications, and languages for microsoft is constantly changing and currently i'm unable to find an updated list of where these can be found. The best solution at the moment is to open wsusserver, Go to Options => Products and Classifications and picking a name of the product based on the tree view shown.
Configuring email notifications
To configure sync and/or status report email notifications the smtp_hostname
and smtp_sender_emailaddress
must be configured
class { 'wsusserver':
....
# Update synchronized email notification settings
send_sync_notification => true,
sync_notification_recipients => ['notifications@mydomain.com', 'another@mydomain.com'],
#Status report email notification settings
send_status_notification => true,
status_notification_recipients => ['notifications@mydomain.com'],
notification_frequency => 'Weekly', # 'Weekly' or 'Daily'
notification_time_of_day => '03:00:00', # 3AM ( UTC ) 24H Clock
#SMTP Server Settings
smtp_hostname => 'smtp.mydomain.com',
smtp_sender_displayname => 'WSUS Server Notifications',
smtp_sender_emailaddress => 'wsusserver@mydomain.com',
##Optional settings
smtp_port => 25,
##Not yet implemented settings
smtp_requires_authentication => false,
smtp_username => '',
smtp_password => '',
}
Creating computer target groups
Typically you group servers into groups so that you can role out changes in a controlled fashion or in a certain way. Below shows how to create computer target groups in order to do this.
wsusserver_computer_target_group { ['Development', 'Staging', 'Production']:
ensure => 'present',
}
Removing computer target groups
Removing is just as simple as creating is.
wsusserver_computer_target_group { ['Development', 'Staging', 'Production']:
ensure => 'absent',
}
NOTE: By Default, wsuserver has 2 built-in computer groups created. They are named 'All Computers' and 'Unassigned Computers'. The wsusserver base/main class declares these for you and therefore you don't need to create these in order to have these resources show up in your puppet reports as being present. Also because these built-in groups cannot be deleted, since wsusserver will not allow it, if you plan on doing any sort of purging of unmanaged computer target groups just make sure the main class is in the catalog so the purging will not fail trying to delete the above 2 built-in computer target groups.
Removing automatic approval rules
When you initially install wsus ( and possibly in the future ) you might want to remove certain approval rules. Below shows how to remove the built in approval rule.
wsusserver::approvalrule { 'Default Automatic Approval Rule':
ensure => 'absent'
}
Creating automatic approval rules
Approving updates that you will always want/need can be a waste of time. Automatic approval rules can be created in order to help remove this burden. Below we automatically approval all Windows Server 2016 Security and Critical updates that apply to our servers in our production environment.
wsusserver::approvalrule { 'Automatic Approval for Security and Critical Updates Rule':
ensure => 'present',
enabled => true,
classifications => ['Security Updates', 'Critical Updates'],
products => ['Windows Server 2016'],
computer_groups => ['Production'],
}
Removing automatic approval rules
When you initially install wsus ( and possibly in the future ) you might want to remove certain approval rules. Below shows how to remove the built in approval rule.
wsusserver::approvalrule { 'Default Automatic Approval Rule':
ensure => 'absent'
}
Reference
Classes
Parameters are optional unless otherwise noted.
wsusserver
Installs Windows Server Update Services (WSUS) and manages the configuration, service, and management tools.
package_ensure
Specifies whether the Windows Server Update Services (WSUS) role should be present. Valid options: 'present' and 'absent'.
Default: 'present'.
include_management_console
Specified if the management console should be installed. This is the GUI used to manage wsus.
Default: true.
service_manage
Specifies whether or not to manage the desired state of the WSUS windows service.
Default: true.
service_ensure
Specifies whether the WSUS windows service should be running or stopped. Valid options: 'stopped' and 'running'.
Default: 'running'.
service_enable
Whether or not the WSUS windows service should be enabled at boot, disabled, or must be manually started. Valid options: true, false, and 'manual'
Default: true.
wsus_directory
Specifies the absolute path on the target system to store downloaded updates.
Default: 'C:\WSUS'.
join_improvement_program
Allows microsoft to collect statistics about your system configuration, events, and configuration of wsus to help microsoft improve the quality, reliability and performance of the product. Valid options: true, false
Default: true.
sync_from_microsoft_update
Specifices that this server should perform synchronizations against microsoft upate servers. This assumes this wsus server is an upstream wsus server in your environment. Valid options: true, false
Default: true.
upstream_wsus_server_name
The name of the upstream wsus server in your environment in which to synchronize this wsus server against.
Default: undef.
upstream_wsus_server_port
The port of the upstream wsus server in your environment in which to synchronize this wsus server against.
Default: 80.
upstream_wsus_server_use_ssl
Specifies if the upstream wsus server in your environment in which to synchronize this wsus server against is using SSL. Valid options: true, false
Default: false.
update_languages
Required.
The languages in which you want updates for.
NOTE: This is required because this is specific to your organization's requirements.
products
Must supply either products or product_families
The specific products (e.g. Windows Server 2008 R2, Windows Server 2016), that you want WSUS to sync updates for.
Product families contain one or many products and are shown as groups in the product selection dialgue of the WSUS UI. Products are the individual products in these lists.
Specify '*'
(i.e. a single string, rather than an array of strings) to synchronize all products in the WSUS inventory.
One way to get a complete list of products and product families is to run the following PowerShell command on a WSUS server:
(Get-WsusServer).GetUpdateCategories() | Sort-Object -Property Title, Type | Format-Table -Property Title, Type
Both products and product_families may be supplied, as long as products does not equal '*' (all products).
NOTE: products or product_families are required because this is specific to your organization's requirements.
product_families
Must supply either products or product_families
The specific products families (e.g. Windows, SQL Server), that you want WSUS to sync updates for.
Product families contain one or many products and are shown as groups in the product selection dialgue of the WSUS UI. Products are the individual products in these lists.
You cannot provide this parameter if products is set to '*'
(all products).
One way to get a complete list of products and product families is to run the following PowerShell command on a WSUS server:
(Get-WsusServer).GetUpdateCategories() | Sort-Object -Property Title, Type | Format-Table -Property Title, Type
Both products and product_families may be supplied, as long as products does not equal '*' (all products).
NOTE: products or product_families are required because this is specific to your organization's requirements.
update_classifications
Required.
The classifications in which you want updates for.
NOTE: This is required because this is specific to your organization's requirements.
targeting_mode
Specifies wether or not server-side or client-side targeting is to be utilized. Valid options: 'Server' and 'Client'.
Default: 'Client'.
host_binaries_on_microsoft_update
Whether or not computers should download updates directly from Microsoft. Valid options: true, false
Default: true.
synchronize_automatically
Whether or not to perform synchronizations automatically. Valid options: true, false
Default: true.
synchronize_time_of_day
At what time synchronizations should happen in UTC time.
Default: 03:00:00. (Midnight UTC)
number_of_synchronizations_per_day
The number of times to perform synchronizations spreadout throughout the day starting at the synchronize_time_of_day parameter.
Default: 1.
trigger_full_synchronization_post_install
Specifies that an intial synchronization of wsus should happen immediately after installation. Valid options: true, false
Default: true.
NOTE: Be aware that this step could take hours to finish! This will not cause any issues with puppet but it might look like it's stalled. It's not so just wait patiently! If you are testing this module out for the first time you probably want to set this value to false.
NOTE: The time it takes to finish the initial synchronization depends on the languages, products, and update classifications that were selected. It also depends on your internete connection as well.
NOTE: When you perform post-installation configuration tasks in the wsus wizard, this is the part at the end that has a check box asking if you want to begin initial synchronization.
send_sync_notification
Specifies that notifications should be sent when new updates are synchronized. Valid options: true, false
Default: false
NOTE: if set to true
you must also specify sync_notification_recipient(s) and smtp server details
sync_notification_recipients
Specifies the recipients of sync notification emails. Accepts an arrays of addresses, e.g. ['notifications@mydomain.com', 'another@mydomain.com']
Default: ['']
send_status_notification
Specifies that status reports. should be sent. Valid options: true, false
Default: false
NOTE: if set to true
you must also specify status_notification_recipient(s) and smtp server details
status_notification_recipients
Specifies the recipients of status notification (reports) emails. Accepts an arrays of addresses, e.g. ['notifications@mydomain.com', 'another@mydomain.com']
Default: ['']
notification_frequency
Specifies frequency of status report notifications. Valid options: Weekly, Daily (note case)
Default: Weekly
notification_time_of_day
Specifies time of day of status report notifications. In UTC time.
Default: '03:00:00', # 3AM ( UTC ) 24H Clock
smtp_hostname
Specifies the hostname of the smtp server. Example: 'smtp.mydomain.com'
Default: '' Required if notifications enabled
smtp_sender_displayname
Specifies the display name of the sender of the notification email. Valid options: text string
Default: ''
smtp_sender_emailaddress
Specifies the email address of the sender of the notification email. Valid options: Email Address. Example: 'wsusserver@mydomain.com' Required if notifications enabled
smtp_port
Specifies the port the smtp server accepts SMTP messages on. Valid options: integer number
Default: 25
smtp_requires_authentication
Functionality not yet implemented
Specifies that the SMTP server requires anthenticiation to send messages. Valid options: true, false
Default: false
smtp_username
Functionality not yet implemented
Specifies username to use for SMTP server authentication
Default: ''
Required if smtp_requires_authentication
is true
smtp_password
Functionality not yet implemented
Specifies password to use for SMTP server authentication
Default: ''
Required if smtp_requires_authentication
is true
Types
Parameters are optional unless otherwise noted.
wsusserver_computer_target_group
Installs, configures, and manages WSUS computer target groups.
name
Specifies a computer target group to manage. Valid options: a string containing the name of your computer target group.
Default: the title of your declared resource.
ensure
Specifies whether the computer target group should be present. Valid options: 'present' and 'absent'.
Default: 'present'.
Defined Types
Parameters are optional unless otherwise noted.
wsusserver::approvalrule
Installs, configures, and manages WSUS Approval Rules.
rule_name
Specifies a approval rule to manage. Valid options: a string containing the name of your approval rule.
Default: the title of your declared resource.
ensure
Specifies whether the approval rule should be present. Valid options: 'present' and 'absent'.
Default: 'present'.
enabled
Specifies whether the approval rule should be enabled. Valid options: true and false.
Default: true.
computer_groups
Required.
Specifies which computer groups this approval rule should apply to.
products
Required.
Specifies which products this approval rule should apply to.
classifications
Required.
Specifies which classifications this approval rule should apply to.
Development
Contributing
- Fork it ( https://github.com/tragiccode/tragiccode-wsusserver/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Reference
Table of Contents
Classes
wsusserver
wsusserver::built_in_computer_target_groups
wsusserver::config
: Class: wsusserver::configwsusserver::install
: Class: wsusserver::installwsusserver::params
: Class: wsusserver::paramswsusserver::service
: Class: wsusserver::service
Defined types
wsusserver::approvalrule
: Define: wsusserver::approvalrule Parameters:
Resource types
wsusserver_computer_target_group
: Creates computer target groups for wsusserver.
Classes
wsusserver
The wsusserver class.
Parameters
The following parameters are available in the wsusserver
class:
update_languages
update_classifications
package_ensure
include_management_console
trigger_full_synchronization_post_install
service_manage
service_ensure
service_enable
wsus_directory
join_improvement_program
sync_from_microsoft_update
upstream_wsus_server_name
upstream_wsus_server_port
upstream_wsus_server_use_ssl
targeting_mode
host_binaries_on_microsoft_update
synchronize_automatically
synchronize_time_of_day
number_of_synchronizations_per_day
send_sync_notification
sync_notification_recipients
send_status_notification
status_notification_recipients
notification_frequency
notification_time_of_day
smtp_hostname
smtp_port
smtp_requires_authentication
smtp_username
smtp_password
smtp_sender_displayname
smtp_sender_emailaddress
email_language
products
product_families
update_languages
Data type: Array[String, 1]
update_classifications
Data type: Array[String, 1]
package_ensure
Data type: Enum['present', 'absent']
Default value: $wsusserver::params::package_ensure
include_management_console
Data type: Boolean
Default value: $wsusserver::params::include_management_console
trigger_full_synchronization_post_install
Data type: Boolean
Default value: $wsusserver::params::trigger_full_synchronization_post_install
service_manage
Data type: Boolean
Default value: $wsusserver::params::service_manage
service_ensure
Data type: Enum['running', 'stopped']
Default value: $wsusserver::params::service_ensure
service_enable
Data type: Variant[ Boolean, Enum['manual'] ]
Default value: $wsusserver::params::service_enable
wsus_directory
Data type: Stdlib::Absolutepath
Default value: $wsusserver::params::wsus_directory
join_improvement_program
Data type: Boolean
Default value: $wsusserver::params::join_improvement_program
sync_from_microsoft_update
Data type: Boolean
Default value: $wsusserver::params::sync_from_microsoft_update
upstream_wsus_server_name
Data type: Optional[String]
Default value: $wsusserver::params::upstream_wsus_server_name
upstream_wsus_server_port
Data type: Integer
Default value: $wsusserver::params::upstream_wsus_server_port
upstream_wsus_server_use_ssl
Data type: Boolean
Default value: $wsusserver::params::upstream_wsus_server_use_ssl
targeting_mode
Data type: Enum['Server', 'Client']
Default value: $wsusserver::params::targeting_mode
host_binaries_on_microsoft_update
Data type: Boolean
Default value: $wsusserver::params::host_binaries_on_microsoft_update
synchronize_automatically
Data type: Boolean
Default value: $wsusserver::params::synchronize_automatically
synchronize_time_of_day
Data type: String
Default value: $wsusserver::params::synchronize_time_of_day
number_of_synchronizations_per_day
Data type: Integer
Default value: $wsusserver::params::number_of_synchronizations_per_day
send_sync_notification
Data type: Boolean
Default value: $wsusserver::params::send_sync_notification
sync_notification_recipients
Data type: Array[String, 1]
Default value: $wsusserver::params::sync_notification_recipients
send_status_notification
Data type: Boolean
Default value: $wsusserver::params::send_status_notification
status_notification_recipients
Data type: Array[String, 1]
Default value: $wsusserver::params::status_notification_recipients
notification_frequency
Data type: Enum['Weekly', 'Daily']
Default value: $wsusserver::params::notification_frequency
notification_time_of_day
Data type: String
Default value: $wsusserver::params::notification_time_of_day
smtp_hostname
Data type: String
Default value: $wsusserver::params::smtp_hostname
smtp_port
Data type: Integer
Default value: $wsusserver::params::smtp_port
smtp_requires_authentication
Data type: Boolean
Default value: $wsusserver::params::smtp_requires_authentication
smtp_username
Data type: String
Default value: $wsusserver::params::smtp_username
smtp_password
Data type: String
Default value: $wsusserver::params::smtp_password
smtp_sender_displayname
Data type: String
Default value: $wsusserver::params::smtp_sender_displayname
smtp_sender_emailaddress
Data type: String
Default value: $wsusserver::params::smtp_sender_emailaddress
email_language
Data type: String
Default value: $wsusserver::params::email_language
products
Data type: Variant[ Enum['*'], Array[String] ]
Default value: []
product_families
Data type: Array[String]
Default value: []
wsusserver::built_in_computer_target_groups
The wsusserver::built_in_computer_target_groups class.
wsusserver::config
Class: wsusserver::config
Parameters
The following parameters are available in the wsusserver::config
class:
update_languages
products
product_families
update_classifications
join_improvement_program
sync_from_microsoft_update
upstream_wsus_server_name
upstream_wsus_server_port
upstream_wsus_server_use_ssl
targeting_mode
host_binaries_on_microsoft_update
synchronize_automatically
synchronize_time_of_day
number_of_synchronizations_per_day
trigger_full_synchronization_post_install
send_sync_notification
sync_notification_recipients
send_status_notification
status_notification_recipients
notification_frequency
notification_time_of_day
smtp_hostname
smtp_port
smtp_requires_authentication
smtp_username
smtp_password
smtp_sender_displayname
smtp_sender_emailaddress
email_language
update_languages
Data type: Array[String, 1]
products
Data type: Array[String, 0]
product_families
Data type: Optional[Array[String]]
update_classifications
Data type: Array[String, 1]
join_improvement_program
Data type: Boolean
Default value: $wsusserver::params::join_improvement_program
sync_from_microsoft_update
Data type: Boolean
Default value: $wsusserver::params::sync_from_microsoft_update
upstream_wsus_server_name
Data type: Optional[String]
Default value: $wsusserver::params::upstream_wsus_server_name
upstream_wsus_server_port
Data type: Integer
Default value: $wsusserver::params::upstream_wsus_server_port
upstream_wsus_server_use_ssl
Data type: Boolean
Default value: $wsusserver::params::upstream_wsus_server_use_ssl
targeting_mode
Data type: Enum['Server', 'Client']
Default value: $wsusserver::params::targeting_mode
host_binaries_on_microsoft_update
Data type: Boolean
Default value: $wsusserver::params::host_binaries_on_microsoft_update
synchronize_automatically
Data type: Boolean
Default value: $wsusserver::params::synchronize_automatically
synchronize_time_of_day
Data type: String
Default value: $wsusserver::params::synchronize_time_of_day
number_of_synchronizations_per_day
Data type: Integer
Default value: $wsusserver::params::number_of_synchronizations_per_day
trigger_full_synchronization_post_install
Data type: Boolean
Default value: $wsusserver::params::trigger_full_synchronization_post_install
send_sync_notification
Data type: Boolean
Default value: $wsusserver::params::send_sync_notification
sync_notification_recipients
Data type: Array[String, 1]
Default value: $wsusserver::params::sync_notification_recipients
send_status_notification
Data type: Boolean
Default value: $wsusserver::params::send_status_notification
status_notification_recipients
Data type: Array[String, 1]
Default value: $wsusserver::params::status_notification_recipients
notification_frequency
Data type: Enum['Weekly', 'Daily']
Default value: $wsusserver::params::notification_frequency
notification_time_of_day
Data type: String
Default value: $wsusserver::params::notification_time_of_day
smtp_hostname
Data type: String
Default value: $wsusserver::params::smtp_hostname
smtp_port
Data type: Integer
Default value: $wsusserver::params::smtp_port
smtp_requires_authentication
Data type: Boolean
Default value: $wsusserver::params::smtp_requires_authentication
smtp_username
Data type: String
Default value: $wsusserver::params::smtp_username
smtp_password
Data type: String
Default value: $wsusserver::params::smtp_password
smtp_sender_displayname
Data type: String
Default value: $wsusserver::params::smtp_sender_displayname
smtp_sender_emailaddress
Data type: String
Default value: $wsusserver::params::smtp_sender_emailaddress
email_language
Data type: String
Default value: $wsusserver::params::email_language
wsusserver::install
Class: wsusserver::install
Parameters
The following parameters are available in the wsusserver::install
class:
package_ensure
Data type: Enum['present', 'absent']
Default value: $wsusserver::params::package_ensure
include_management_console
Data type: Boolean
Default value: $wsusserver::params::include_management_console
wsus_directory
Data type: Stdlib::Absolutepath
Default value: $wsusserver::params::wsus_directory
join_improvement_program
Data type: Boolean
Default value: $wsusserver::params::join_improvement_program
wsusserver::params
Class: wsusserver::params
wsusserver::service
Class: wsusserver::service
Parameters
The following parameters are available in the wsusserver::service
class:
service_manage
Data type: Boolean
Default value: $wsusserver::params::service_manage
service_ensure
Data type: Enum['running', 'stopped']
Default value: $wsusserver::params::service_ensure
service_enable
Data type: Variant[ Boolean, Enum['manual'] ]
Default value: $wsusserver::params::service_enable
Defined types
wsusserver::approvalrule
Define: wsusserver::approvalrule Parameters:
Parameters
The following parameters are available in the wsusserver::approvalrule
defined type:
classifications
Data type: Array[String]
products
Data type: Array[String]
computer_groups
Data type: Array[String]
rule_name
Data type: String
Default value: $title
ensure
Data type: Enum['present', 'absent']
Default value: 'present'
enabled
Data type: Boolean
Default value: true
Resource types
wsusserver_computer_target_group
Creates computer target groups for wsusserver.
Properties
The following properties are available in the wsusserver_computer_target_group
type.
ensure
Valid values: present
, absent
Specifies whether the computer target group should be present or absent.
Default value: present
id
The auto-generated id of the computer target group. This property is read-only.
Parameters
The following parameters are available in the wsusserver_computer_target_group
type.
name
namevar
The name of the computer target group.
provider
The specific backend to use for this wsusserver_computer_target_group
resource. You will seldom need to specify this
--- Puppet will usually discover the appropriate provider for your platform.
Change log
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
v1.4.0 (2022-08-24)
Added
- Add deprecation notice #69 (TraGicCode)
v1.3.0 (2022-02-03)
Added
- (GH-59) Update all direct dependencies #60 (TraGicCode)
v1.2.0 (2021-05-26)
Added
v1.1.4 (2021-03-20)
Fixed
v1.1.3 (2020-07-14)
Fixed
v1.1.2 (2019-09-19)
Added
- wsusserver: support product families #28 (nathangiuliani)
Fixed
- improve robustness for approvalrule.pp #29 (kreeuwijk)
- wsusserver: fix comma separator in product or category name, update readme #27 (nathangiuliani)
v1.1.1 (2018-09-18)
Fixed
- (bug) Uncomment WSUS initial synchronization exec #22 (TraGicCode)
v1.1.0 (2018-03-18)
Added
v1.0.0 (2018-01-08)
Added
- Convert wsusserver computer target group to custom type. #4 (TraGicCode)
v0.1.0 (2017-12-07)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/stdlib (>= 4.0.0 < 9.0.0)
- puppetlabs/powershell (>= 2.0.0 < 6.0.0)
- puppet/windowsfeature (4.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.