Puppet Class: wsusserver

Inherits:
wsusserver::params
Defined in:
manifests/init.pp

Overview

Parameters:

  • update_languages (Array[String, 1])
  • update_classifications (Array[String, 1])
  • package_ensure (Enum['present', 'absent']) (defaults to: $wsusserver::params::package_ensure)
  • include_management_console (Boolean) (defaults to: $wsusserver::params::include_management_console)
  • trigger_full_synchronization_post_install (Boolean) (defaults to: $wsusserver::params::trigger_full_synchronization_post_install)
  • service_manage (Boolean) (defaults to: $wsusserver::params::service_manage)
  • service_ensure (Enum['running', 'stopped']) (defaults to: $wsusserver::params::service_ensure)
  • service_enable (Variant[ Boolean, Enum['manual'] ]) (defaults to: $wsusserver::params::service_enable)
  • wsus_directory (Stdlib::Absolutepath) (defaults to: $wsusserver::params::wsus_directory)
  • join_improvement_program (Boolean) (defaults to: $wsusserver::params::join_improvement_program)
  • sync_from_microsoft_update (Boolean) (defaults to: $wsusserver::params::sync_from_microsoft_update)
  • upstream_wsus_server_name (Optional[String]) (defaults to: $wsusserver::params::upstream_wsus_server_name)
  • upstream_wsus_server_port (Integer) (defaults to: $wsusserver::params::upstream_wsus_server_port)
  • upstream_wsus_server_use_ssl (Boolean) (defaults to: $wsusserver::params::upstream_wsus_server_use_ssl)
  • targeting_mode (Enum['Server', 'Client']) (defaults to: $wsusserver::params::targeting_mode)
  • host_binaries_on_microsoft_update (Boolean) (defaults to: $wsusserver::params::host_binaries_on_microsoft_update)
  • synchronize_automatically (Boolean) (defaults to: $wsusserver::params::synchronize_automatically)
  • synchronize_time_of_day (String) (defaults to: $wsusserver::params::synchronize_time_of_day)
  • number_of_synchronizations_per_day (Integer) (defaults to: $wsusserver::params::number_of_synchronizations_per_day)
  • send_sync_notification (Boolean) (defaults to: $wsusserver::params::send_sync_notification)
  • sync_notification_recipients (Array[String, 1]) (defaults to: $wsusserver::params::sync_notification_recipients)
  • send_status_notification (Boolean) (defaults to: $wsusserver::params::send_status_notification)
  • status_notification_recipients (Array[String, 1]) (defaults to: $wsusserver::params::status_notification_recipients)
  • notification_frequency (Enum['Weekly', 'Daily']) (defaults to: $wsusserver::params::notification_frequency)
  • notification_time_of_day (String) (defaults to: $wsusserver::params::notification_time_of_day)
  • smtp_hostname (String) (defaults to: $wsusserver::params::smtp_hostname)
  • smtp_port (Integer) (defaults to: $wsusserver::params::smtp_port)
  • smtp_requires_authentication (Boolean) (defaults to: $wsusserver::params::smtp_requires_authentication)
  • smtp_username (String) (defaults to: $wsusserver::params::smtp_username)
  • smtp_password (String) (defaults to: $wsusserver::params::smtp_password)
  • smtp_sender_displayname (String) (defaults to: $wsusserver::params::smtp_sender_displayname)
  • smtp_sender_emailaddress (String) (defaults to: $wsusserver::params::smtp_sender_emailaddress)
  • email_language (String) (defaults to: $wsusserver::params::email_language)
  • products (Variant[ Enum['*'], Array[String] ]) (defaults to: [])
  • product_families (Array[String]) (defaults to: [])


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'manifests/init.pp', line 1

class wsusserver(
  Array[String, 1] $update_languages,
  Array[String, 1] $update_classifications,
  Enum['present', 'absent'] $package_ensure          = $wsusserver::params::package_ensure,
  Boolean $include_management_console                = $wsusserver::params::include_management_console,
  Boolean $trigger_full_synchronization_post_install = $wsusserver::params::trigger_full_synchronization_post_install,
  Boolean $service_manage                            = $wsusserver::params::service_manage,
  Enum['running', 'stopped'] $service_ensure         = $wsusserver::params::service_ensure,
  Variant[ Boolean, Enum['manual'] ] $service_enable = $wsusserver::params::service_enable,
  Stdlib::Absolutepath $wsus_directory               = $wsusserver::params::wsus_directory,
  Boolean $join_improvement_program                  = $wsusserver::params::join_improvement_program,
  Boolean $sync_from_microsoft_update                = $wsusserver::params::sync_from_microsoft_update,
  Optional[String] $upstream_wsus_server_name        = $wsusserver::params::upstream_wsus_server_name,
  Integer $upstream_wsus_server_port                 = $wsusserver::params::upstream_wsus_server_port,
  Boolean $upstream_wsus_server_use_ssl              = $wsusserver::params::upstream_wsus_server_use_ssl,
  Enum['Server', 'Client'] $targeting_mode           = $wsusserver::params::targeting_mode,
  Boolean $host_binaries_on_microsoft_update         = $wsusserver::params::host_binaries_on_microsoft_update,
  Boolean $synchronize_automatically                 = $wsusserver::params::synchronize_automatically,
  String $synchronize_time_of_day                    = $wsusserver::params::synchronize_time_of_day,
  Integer $number_of_synchronizations_per_day        = $wsusserver::params::number_of_synchronizations_per_day,
  Boolean $send_sync_notification                    = $wsusserver::params::send_sync_notification,
  Array[String, 1] $sync_notification_recipients     = $wsusserver::params::sync_notification_recipients,
  Boolean $send_status_notification                  = $wsusserver::params::send_status_notification,
  Array[String, 1] $status_notification_recipients   = $wsusserver::params::status_notification_recipients,
  Enum['Weekly', 'Daily'] $notification_frequency    = $wsusserver::params::notification_frequency,
  String $notification_time_of_day                   = $wsusserver::params::notification_time_of_day,
  String $smtp_hostname                              = $wsusserver::params::smtp_hostname,
  Integer $smtp_port                                 = $wsusserver::params::smtp_port,
  Boolean $smtp_requires_authentication              = $wsusserver::params::smtp_requires_authentication,
  String $smtp_username                              = $wsusserver::params::smtp_username,
  String $smtp_password                              = $wsusserver::params::smtp_password,
  String $smtp_sender_displayname                    = $wsusserver::params::smtp_sender_displayname,
  String $smtp_sender_emailaddress                   = $wsusserver::params::smtp_sender_emailaddress,
  String $email_language                             = $wsusserver::params::email_language,
  Variant[ Enum['*'], Array[String] ] $products = [],
  Array[String] $product_families = [],
) inherits wsusserver::params {

  if $products == '*' and !(empty($product_families)) {
    fail('cannot provide a value for product_families when products is set to all (*).')
  }

  if empty($products) and empty($product_families) {
    fail('must provide a value for either products or product_families (or both).')
  }

  class { 'wsusserver::install':
    package_ensure             => $package_ensure,
    wsus_directory             => $wsus_directory,
    include_management_console => $include_management_console,
    join_improvement_program   => $join_improvement_program,
  }

  class { 'wsusserver::config':
    join_improvement_program                  => $join_improvement_program,
    sync_from_microsoft_update                => $sync_from_microsoft_update,
    upstream_wsus_server_name                 => $upstream_wsus_server_name,
    upstream_wsus_server_port                 => $upstream_wsus_server_port,
    upstream_wsus_server_use_ssl              => $upstream_wsus_server_use_ssl,
    update_languages                          => $update_languages,
    products                                  => $products,
    product_families                          => $product_families,
    update_classifications                    => $update_classifications,
    targeting_mode                            => $targeting_mode,
    host_binaries_on_microsoft_update         => $host_binaries_on_microsoft_update,
    synchronize_automatically                 => $synchronize_automatically,
    synchronize_time_of_day                   => $synchronize_time_of_day,
    number_of_synchronizations_per_day        => $number_of_synchronizations_per_day,
    trigger_full_synchronization_post_install => $trigger_full_synchronization_post_install,
    send_sync_notification                    => $send_sync_notification,
    sync_notification_recipients              => $sync_notification_recipients,
    send_status_notification                  => $send_status_notification,
    status_notification_recipients            => $status_notification_recipients,
    notification_frequency                    => $notification_frequency,
    notification_time_of_day                  => $notification_time_of_day,
    smtp_hostname                             => $smtp_hostname,
    smtp_port                                 => $smtp_port,
    smtp_requires_authentication              => $smtp_requires_authentication,
    smtp_username                             => $smtp_username,
    smtp_password                             => $smtp_password,
    smtp_sender_displayname                   => $smtp_sender_displayname,
    smtp_sender_emailaddress                  => $smtp_sender_emailaddress,
    email_language                            => $email_language,
  }

  class { 'wsusserver::service':
    service_manage => $service_manage,
    service_ensure => $service_ensure,
    service_enable => $service_enable,
  }

  include wsusserver::built_in_computer_target_groups

  Class['wsusserver::install']
  -> Class['wsusserver::config']
  -> Class['wsusserver::service']

  Class['wsusserver::install']
  -> Class['wsusserver::built_in_computer_target_groups']
}