aboutsummaryrefslogtreecommitdiff
path: root/manifests/subsystem/apt.pp
blob: 387a4e8ea2e7b98c070f0ae4ce843f3a1d6edefe (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
class nodo::subsystem::apt(
  $ensure       = present,
  $auto_upgrade = present,
  $hour         = 2,
  $minute       = 0,
) {
  file { '/etc/apt/sources.list':
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => '0644',
    notify  => Exec['nodo-apt-auto-update'],
    content => $ensure ? {
      'present' => template("nodo/apt/${::operatingsystem}.sources.list.erb"),
       default  => undef,
    },
  }

  # We have /var/log/dpkg.log, so we do not need to rotate /var/log/upgrade.log
  $log     = ">> /var/log/upgrade.log 2>&1"
  $apt     = '/usr/bin/apt-get'
  $command = "${apt} update ${log} && ${apt} dist-upgrade -y ${log} && ${apt} autoremove -y ${log} && ${apt} clean ${log}"

  exec { 'nodo-apt-auto-update':
    command     => "${apt} update ${log}",
    user        => "root",
    refreshonly => true,
  }

  cron { 'nodo-apt-auto-upgrade':
    ensure      => $auto_upgrade,
    command     => $command,
    environment => 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
    user        => 'root',
    hour        => $hour,
    minute      => $minute,
  }

  package { 'apt-transport-https':
    ensure => installed,
  }
}