diff options
Diffstat (limited to 'manifests/init.pp')
-rw-r--r-- | manifests/init.pp | 117 |
1 files changed, 98 insertions, 19 deletions
diff --git a/manifests/init.pp b/manifests/init.pp index 1011e65..1247b45 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -13,31 +13,87 @@ class apt { default => $apt_clean, } + $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, } + # init $release, $next_release, $codename, $next_codename + case $lsbdistcodename { + '': { + include lsb + $codename = $lsbdistcodename + $release = $lsbdistrelease + } + default: { + $codename = $lsbdistcodename + $release = debian_release($codename) + } + } + $next_codename = debian_nextcodename($codename) + $next_release = debian_nextrelease($release) + case $custom_sources_list { '': { include apt::default_sources_list } default: { - include lsb config_file { "/etc/apt/sources.list": content => $custom_sources_list, - require => Package['lsb']; } } } - config_file { - # little default settings which keep the system sane - "/etc/apt/apt.conf.d/from_puppet": - content => "APT::Get::Show-Upgraded true;\nDSelect::Clean $real_apt_clean;\n", - before => Concatenated_file['/etc/apt/preferences']; - } - case $custom_preferences { false: { include apt::preferences::absent @@ -47,6 +103,29 @@ class apt { } } + config_file { '/etc/apt/apt.conf.d/99from_puppet': } + # little default settings which keep the system sane + append_if_no_such_line { 'apt-get-show-upgraded': + file => "/etc/apt/apt.conf.d/99from_puppet", + line => "APT::Get::Show-Upgraded true;", + before => Concatenated_file['/etc/apt/preferences'], + require => Config_file['/etc/apt/apt.conf.d/99from_puppet'], + } + append_if_no_such_line { 'dselect-clean': + file => "/etc/apt/apt.conf.d/99from_puppet", + line => "DSelect::Clean ${real_apt_clean};", + before => Concatenated_file['/etc/apt/preferences'], + require => Config_file['/etc/apt/apt.conf.d/99from_puppet'], + } + # backward compatibility: upgrade from previous versions of this module. + file { + "/etc/apt/apt.conf.d/from_puppet": + ensure => 'absent', + require => [ Append_if_no_such_line['apt-get-show-upgraded'], + Append_if_no_such_line['dselect-clean'] + ], + } + if $apt_unattended_upgrades { include apt::unattended_upgrades } @@ -62,16 +141,16 @@ 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', + 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 @@ -96,4 +175,4 @@ class apt { # workaround for preseeded_package component file { [ "/var/cache", "/var/cache/local", "/var/cache/local/preseeding" ]: ensure => directory } -} +} |