summaryrefslogtreecommitdiff
path: root/code/environments/production/modules/unattended_upgrades/manifests/init.pp
blob: 35915a6223cc12c9ba3e7e20147a91c39c1e5664 (plain)
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
class unattended_upgrades (
  Unattended_upgrades::Age                  $age                  = {},
  Unattended_upgrades::Auto                 $auto                 = { 'fix_interrupted_dpkg' => true, 'remove' => false, 'reboot' => true, 'reboot_time' => '02:00', },
  Unattended_upgrades::Backup               $backup               = {},
  Array                                     $blacklist            = [],
  Optional[Integer[0]]                      $dl_limit             = undef,
  Integer[0, 1]                             $enable               = 1,
  Boolean                                   $install_on_shutdown  = false,
  Boolean                                   $legacy_origin        = $::unattended_upgrades::params::legacy_origin,
  Unattended_upgrades::Mail                 $mail                 = {},
  Boolean                                   $minimal_steps        = true,
  Array                                     $origins              = $::unattended_upgrades::params::origins,
  String                                    $package_ensure       = installed,
  Optional[Integer[0]]                      $random_sleep         = undef,
  Optional[String]                          $sender               = undef,
  Integer[0]                                $size                 = 0,
  Integer[0]                                $update               = 1,
  Integer[0]                                $upgrade              = 1,
  Unattended_upgrades::Upgradeable_packages $upgradeable_packages = {},
  Integer[0]                                $verbose              = 0,
  Boolean                                   $notify_update        = false,
  Unattended_upgrades::Options              $options              = {},
) inherits ::unattended_upgrades::params {

  # apt::conf settings require the apt class to work
  include apt

  $_age = merge($::unattended_upgrades::default_age, $age)
  assert_type(Unattended_upgrades::Age, $_age)

  $_auto = merge($::unattended_upgrades::default_auto, $auto)
  assert_type(Unattended_upgrades::Auto, $_auto)

  $_backup = merge($::unattended_upgrades::default_backup, $backup)
  assert_type(Unattended_upgrades::Backup, $_backup)

  $_mail = merge($::unattended_upgrades::default_mail, $mail)
  assert_type(Unattended_upgrades::Mail, $_mail)

  $_upgradeable_packages = merge($::unattended_upgrades::default_upgradeable_packages, $upgradeable_packages)
  assert_type(Unattended_upgrades::Upgradeable_packages, $_upgradeable_packages)

  $_options = merge($unattended_upgrades::default_options, $options)
  assert_type(Unattended_upgrades::Options, $_options)

  package { 'unattended-upgrades':
    ensure => $package_ensure,
  }

  apt::conf { 'unattended-upgrades':
    priority      => 50,
    content       => template("${module_name}/unattended-upgrades.erb"),
    require       => Package['unattended-upgrades'],
    notify_update => $notify_update,
  }

  apt::conf { 'periodic':
    priority      => 10,
    content       => template("${module_name}/periodic.erb"),
    require       => Package['unattended-upgrades'],
    notify_update => $notify_update,
  }

  apt::conf { 'auto-upgrades':
    ensure	  => absent,
    priority      => 20,
    require       => Package['unattended-upgrades'],
    notify_update => $notify_update,
  }
  apt::conf { 'options':
    priority      => 10,
    content       => template("${module_name}/options.erb"),
    require       => Package['unattended-upgrades'],
    notify_update => $notify_update,
  }

}