Classes
=======
-This module contains only the apt class, which sets up all described
-functionality.
+apt
+---
+
+The apt class sets up all documented functionality but cron-apt.
+
+apt::cron::download
+-------------------
+
+This class sets up cron-apt so that it downloads upgradable packages,
+does not actually do any upgrade and email when the output changes.
+
+apt::cron::dist-upgrade
+-----------------------
+
+This class sets up cron-apt so that it dist-upgrades the system and
+email when upgrades are performed.
+ Defines
+ =======
+
+ apt::preferences_snippet
+ ------------------------
+
+ A way to add pinning information to /etc/apt/preferences
+
+ Example:
+
+ apt::preferences_snippet{
+ 'irssi-plugin-otr':
+ release => 'lenny-backports',
+ priority => 999;
+ }
+
Resources
=========
}
}
- 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 {
- '': {
- include apt::default_preferences
+ false: {
+ include apt::preferences::absent
}
default: {
- config_file { "/etc/apt/preferences":
- content => $custom_preferences,
- alias => "apt_config",
- require => Config_file["/etc/apt/sources.list"];
- }
+ include apt::preferences
}
}
- before => Config_file[apt_config],
+ 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 => Config_file[apt_config],
++ 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
}
'refresh_apt':
command => '/usr/bin/apt-get update && sleep 1',
refreshonly => true,
- subscribe => [ File["/etc/apt/apt.conf.d"],
- Config_file["/etc/apt/sources.list"] ];
- 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"],
- Config_file["/etc/apt/sources.list"] ],
++ 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
--- /dev/null
- '' => 'Package: *
-Pin: release a=unstable
-Pin-Priority: 1
-
-Package: *
-Pin: release a=testing
-Pin-Priority: 2
-
-',
+ class apt::preferences {
+
+ include common::moduledir
+ $apt_preferences_dir = "${common::moduledir::module_dir_path}/apt/preferences"
+ module_dir{'apt/preferences': }
+ file{"${apt_preferences_dir}_header":
+ content => $custom_preferences ? {
++ '' => $operatingsystem ? {
++ 'debian' => template("apt/${operatingsystem}/preferences_${codename}.erb"),
++ 'ubuntu' => '',
++ },
+ default => $custom_preferences
+ },
+ }
+
+ concatenated_file{'/etc/apt/preferences':
+ dir => $apt_preferences_dir,
+ header => "${apt_preferences_dir}_header",
+ # use Concatenated_file[apt_config] to reference a completed configuration
+ # See "The Puppet Semaphor" 2007-06-25 on the puppet-users ML
+ alias => apt_config,
+ # only update together
+ require => File["/etc/apt/sources.list"];
+ }
+
+ }