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/default_sources_list.pp | 3 | ||||
| -rw-r--r-- | manifests/dselect.pp | 3 | ||||
| -rw-r--r-- | manifests/init.pp | 117 | ||||
| -rw-r--r-- | manifests/preferences.pp | 13 | ||||
| -rw-r--r-- | manifests/preseeded_package.pp | 4 | 
8 files changed, 153 insertions, 34 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/default_sources_list.pp b/manifests/default_sources_list.pp index cf7d523..91955d7 100644 --- a/manifests/default_sources_list.pp +++ b/manifests/default_sources_list.pp @@ -1,10 +1,9 @@  class apt::default_sources_list { -  include lsb    config_file {      # include main, security and backports      # additional sources could be included via an array      "/etc/apt/sources.list": -      content => template( "apt/$operatingsystem/sources.list.erb"), +      content => template("apt/${operatingsystem}/sources.list.erb"),        require => Package['lsb'];    }  } 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 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 } -}      +} diff --git a/manifests/preferences.pp b/manifests/preferences.pp index 772b426..4acfdaf 100644 --- a/manifests/preferences.pp +++ b/manifests/preferences.pp @@ -5,15 +5,10 @@ class apt::preferences {    module_dir{'apt/preferences': }    file{"${apt_preferences_dir}_header":      content => $custom_preferences ? { -      '' => 'Package: * -Pin: release a=unstable -Pin-Priority: 1 - -Package: * -Pin: release a=testing -Pin-Priority: 2 - -', +      '' => $operatingsystem ? { +        'debian' => template("apt/${operatingsystem}/preferences_${codename}.erb"), +        'ubuntu' => '', +      },        default => $custom_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:  | 
