diff options
Diffstat (limited to 'manifests')
| -rw-r--r-- | manifests/cron/base.pp | 3 | ||||
| -rw-r--r-- | manifests/cron/dist-upgrade.pp | 23 | ||||
| -rw-r--r-- | manifests/cron/download.pp | 21 | ||||
| -rw-r--r-- | manifests/dselect.pp | 3 | ||||
| -rw-r--r-- | manifests/init.pp | 96 | ||||
| -rw-r--r-- | manifests/preferences.pp | 10 | ||||
| -rw-r--r-- | manifests/preseeded_package.pp | 4 | 
7 files changed, 143 insertions, 17 deletions
| diff --git a/manifests/cron/base.pp b/manifests/cron/base.pp new file mode 100644 index 0000000..2cfbefb --- /dev/null +++ b/manifests/cron/base.pp @@ -0,0 +1,3 @@ +class apt::cron::base { +	package { cron-apt: ensure => installed } +} diff --git a/manifests/cron/dist-upgrade.pp b/manifests/cron/dist-upgrade.pp new file mode 100644 index 0000000..3d7cf16 --- /dev/null +++ b/manifests/cron/dist-upgrade.pp @@ -0,0 +1,23 @@ +class apt::cron::dist-upgrade inherits apt::cron::base { + +  $action = "autoclean -y +dist-upgrade -y -o APT::Get::Show-Upgraded=true +" + +  file { "/etc/cron-apt/action.d/3-download": +    ensure => absent, +  } + +  package { "apt-listbugs": ensure => absent } + +  config_file { "/etc/cron-apt/action.d/4-dist-upgrade": +    content => $action, +    require => Package[cron-apt] +  } + +  config_file { "/etc/cron-apt/config.d/MAILON": +    content => "MAILON=upgrade\n", +    require => Package[cron-apt] +  } + +} diff --git a/manifests/cron/download.pp b/manifests/cron/download.pp new file mode 100644 index 0000000..a27967d --- /dev/null +++ b/manifests/cron/download.pp @@ -0,0 +1,21 @@ +class apt::cron::download inherits apt::cron::base { + +  $action = "autoclean -y +dist-upgrade -d -y -o APT::Get::Show-Upgraded=true +" +   +  file { "/etc/cron-apt/action.d/4-dist-upgrade": +    ensure => absent, +  } + +  config_file { "/etc/cron-apt/action.d/3-download": +    content => $action, +    require => Package[cron-apt] +  } + +  config_file { "/etc/cron-apt/config.d/MAILON": +    content => "MAILON=changes\n", +    require => Package[cron-apt] +  } + +} diff --git a/manifests/dselect.pp b/manifests/dselect.pp index fb138da..52c66cb 100644 --- a/manifests/dselect.pp +++ b/manifests/dselect.pp @@ -1,9 +1,8 @@  class apt::dselect {    # suppress annoying help texts of dselect -  line { dselect_expert: +  append_if_no_such_line { dselect_expert:        file => "/etc/dpkg/dselect.cfg",        line => "expert", -      ensure => present,    }    package { dselect: ensure => installed } diff --git a/manifests/init.pp b/manifests/init.pp index 695c193..28fea99 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -11,12 +11,77 @@ 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,    }    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) +    config_file {      # include main, security and backports      # additional sources should be included via the apt::sources_list define @@ -28,7 +93,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", @@ -50,6 +114,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    } @@ -65,16 +140,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 diff --git a/manifests/preferences.pp b/manifests/preferences.pp index 5be3bd0..4acfdaf 100644 --- a/manifests/preferences.pp +++ b/manifests/preferences.pp @@ -4,9 +4,13 @@ class apt::preferences {    $apt_preferences_dir = "${common::moduledir::module_dir_path}/apt/preferences"    module_dir{'apt/preferences': }    file{"${apt_preferences_dir}_header": -    source => ["puppet:///modules/site-apt/${fqdn}/preferences", -               "puppet:///modules/site-apt/preferences", -               "puppet:///modules/apt/preferences"] +    content => $custom_preferences ? { +      '' => $operatingsystem ? { +        'debian' => template("apt/${operatingsystem}/preferences_${codename}.erb"), +        'ubuntu' => '', +      }, +      default => $custom_preferences +    },    }    concatenated_file{'/etc/apt/preferences': diff --git a/manifests/preseeded_package.pp b/manifests/preseeded_package.pp index 276c90f..76c432e 100644 --- a/manifests/preseeded_package.pp +++ b/manifests/preseeded_package.pp @@ -1,8 +1,8 @@  define apt::preseeded_package ($content = "", $ensure = "installed") {    $seedfile = "/var/cache/local/preseeding/$name.seeds"    $real_content = $content ? {  -    "" => template ( "$debian_version/$name.seeds" ), -    Default => $content +    ""      => template ( "$name.seeds", "$debian_version/$name.seeds" ), +    default => $content    }       file{ $seedfile: | 
