diff options
Diffstat (limited to 'manifests/init.pp')
-rw-r--r-- | manifests/init.pp | 102 |
1 files changed, 85 insertions, 17 deletions
diff --git a/manifests/init.pp b/manifests/init.pp index 8588932..54b4fe4 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -5,20 +5,77 @@ class apt { + $use_volatile = $apt_volatile_enabled ? { + '' => false, + default => $apt_volatile_enabled, + } + + $include_src = $apt_include_src ? { + '' => false, + default => $apt_include_src, + } + + $use_next_release = $apt_use_next_release ? { + '' => false, + default => $apt_use_next_release, + } + + $debian_url = $apt_debian_url ? { + '' => 'http://ftp.debian.org/debian/', + default => "${apt_debian_url}", + } + $security_url = $apt_security_url ? { + '' => 'http://security.debian.org/', + default => "${apt_security_url}", + } + $backports_url = $apt_backports_url ? { + '' => 'http://backports.debian.org/debian-backports/', + default => "${apt_backports_url}", + } + $volatile_url = $apt_volatile_url ? { + '' => 'http://volatile.debian.org/debian-volatile/', + default => "${apt_volatile_url}", + } + $ubuntu_url = $apt_ubuntu_url ? { + '' => 'http://archive.ubuntu.com/ubuntu', + default => "${apt_ubuntu_url}", + } + case $operatingsystem { + 'debian': { + $repos = $apt_repos ? { + '' => 'main contrib non-free', + default => "${apt_repos}", + } + } + 'ubuntu': { + $repos = $apt_repos ? { + '' => 'main restricted universe multiverse', + default => "${apt_repos}", + } + } + } + package { apt: ensure => installed, require => undef, } - $real_main_apt_source = $main_apt_source ? { - '' => $operatingsystem ? { - "Ubuntu" => "http://de.archive.ubuntu.com/ubuntu/", - default => "http://ftp.debian.org/debian/", - }, - default => $main_apt_source, + include lsb + + # init $release, $next_release, $codename, $next_codename + case $lsbdistcodename { + '': { + $codename = $lsbdistcodename + $release = $lsbdistrelease + } + default: { + $codename = $lsbdistcodename + $release = debian_release($codename) + } } + $next_codename = debian_nextcodename($codename) + $next_release = debian_nextrelease($release) - include lsb config_file { # include main, security and backports # additional sources should be included via the apt::sources_list define @@ -30,7 +87,6 @@ class apt { require => Package['lsb']; } - # 01autoremove already present by default apt_conf { "02show_upgraded": source => ["puppet:///modules/site-apt/${fqdn}/02show_upgraded", "puppet:///modules/site-apt/02show_upgraded", @@ -52,6 +108,17 @@ class apt { } } + # backward compatibility: upgrade from previous versions of this module. + file { + ["/etc/apt/apt.conf.d/from_puppet", + "/etc/apt/apt.conf.d/99from_puppet" + ]: + ensure => 'absent', + require => [ Apt_conf_snippet['02show_upgraded'], + Apt_conf_snippet['03clean'], + ], + } + if $apt_unattended_upgrades { include apt::unattended_upgrades } @@ -64,16 +131,17 @@ class apt { 'refresh_apt': command => '/usr/bin/apt-get update && sleep 1', refreshonly => true, - subscribe => File['/etc/apt/sources.list', - '/etc/apt/apt.conf.d', - '/etc/apt/preferences']; - 'update_apt': - command => '/usr/bin/apt-get update && /usr/bin/apt-get autoclean', - require => File['/etc/apt/sources.list', + subscribe => [ File['/etc/apt/apt.conf.d'], + Config_file['/etc/apt/sources.list'] ]; + 'update_apt': + command => '/usr/bin/apt-get update && /usr/bin/apt-get autoclean', + refreshonly => true, + require => [ File['/etc/apt/apt.conf.d', '/etc/apt/preferences'], - loglevel => info, - # Another Semaphor for all packages to reference - alias => "apt_updated"; + Config_file['/etc/apt/sources.list'] ], + loglevel => info, + # Another Semaphor for all packages to reference + alias => "apt_updated"; } ## This package should really always be current |