! Upgrade Notice !
+ * The `disable_update` parameter has been removed. The main apt class
+ defaults to *not* run an `apt-get update` on every run anyway so this
+ parameter seems useless.
+ You can include the `apt::update` class if you want it to be run every time.
+
+ * The `apt::upgrade_package` now doesn't automatically call an Exec['apt_updated']
+ anymore, so you would need to include `apt::update` now by hand.
+
* The apt::codename parameter has been removed. In its place, the
debian_codename fact may be overridden via an environment variable. This
will affect all other debian_* facts, and achieve the same result.
If this variable is set the default repositories list ("main contrib non-free")
is overriden.
-* disable_update
-
- Disable "apt-get update" which is normally triggered by apt::upgrade_package
- and apt::dist_upgrade.
-
- Note that nodes can be updated once a day by using
- APT::Periodic::Update-Package-Lists "1";
- in i.e. /etc/apt/apt.conf.d/80_apt_update_daily.
-
* custom_preferences
For historical reasons (Debian Lenny's version of APT did not support the use
using the plusignment ('+>') operator. A real-world example can be
seen in the apt::dist_upgrade::initiator source.
-When this class is included the APT indexes are updated on every
-Puppet run due to the author's lack of Puppet wizardry.
-
apt::dist_upgrade::initiator
----------------------------
-------------------
After this point the APT indexes are up-to-date.
+This resource is set to `refreshonly => true` so it is not run on
+every puppetrun. To run this every time, you can include the `apt::update`
+class.
This resource is usually used like this to ensure current packages are
installed by Package resources:
- include apt::update
- Package { require => Exec['apt_updated'] }
+ include apt::update
+ Package { require => Exec['apt_updated'] }
+
+Note that nodes can be updated once a day by using
+
+ APT::Periodic::Update-Package-Lists "1";
+
+in i.e. /etc/apt/apt.conf.d/80_apt_update_daily.
-Please note that the apt::upgrade_package define automatically uses
-this resource so you don't have to manage this yourself if you need to
-make sure APT indexes are up-to-date before a package upgrade is
-attempted, but don't want "apt-get update" to happen on every Puppet
-run.
Tests
=====
if $refresh_apt {
File["/etc/apt/apt.conf.d/${name}"] {
- notify => Exec['refresh_apt'],
+ notify => Exec['apt_updated'],
}
}
class apt::dist_upgrade {
- if $apt::disable_update == false {
- include apt::update
- }
-
- $req = $apt::disable_update ? {
- true => undef,
- default => Exec['apt_updated'],
- }
-
exec { 'apt_dist-upgrade':
command => '/usr/bin/apt-get -q -y -o \'DPkg::Options::=--force-confold\' dist-upgrade',
refreshonly => true,
- require => $req
+ before => Exec['apt_updated']
}
}
'/etc/apt/apt.conf.d':
ensure => directory,
checksum => mtime,
- notify => Exec['refresh_apt'];
+ notify => Exec['apt_updated'];
'/etc/apt/sources.list.d':
ensure => directory,
checksum => mtime,
- notify => Exec['refresh_apt'];
- }
-
- exec {
- # "&& sleep 1" is workaround for older(?) clients
- 'refresh_apt':
- command => '/usr/bin/apt-get update && sleep 1',
- refreshonly => true,
+ notify => Exec['apt_updated'];
}
}
# additional sources should be included via the apt::sources_list define
'/etc/apt/sources.list':
content => $sources_content,
- notify => Exec['refresh_apt'],
+ notify => Exec['apt_updated'],
owner => root,
group => 0,
mode => '0644';
# workaround for preseeded_package component
file { [ '/var/cache', '/var/cache/local', '/var/cache/local/preseeding' ]: ensure => directory }
+
+ exec { 'update_apt':
+ command => '/usr/bin/apt-get update && /usr/bin/apt-get autoclean',
+ require => [
+ File['/etc/apt/apt.conf.d', '/etc/apt/preferences' ],
+ File['/etc/apt/sources.list'] ],
+ loglevel => 'info',
+ refreshonly => true,
+ # Another Semaphor for all packages to reference
+ alias => [ 'apt_updated', 'refresh_apt']
+ }
+
}
"/etc/apt/trusted.gpg.d/${name}":
ensure => $ensure,
source => $source,
- notify => Exec['refresh_apt'],
+ notify => Exec['apt_updated'],
}
}
exec { "apt-key add '${apt::apt_base_dir}/keys/${name}'":
subscribe => File["${apt::apt_base_dir}/keys/${name}"],
refreshonly => true,
- notify => Exec['refresh_apt'],
+ notify => Exec['apt_updated'],
}
}
file { "/etc/apt/preferences.d/${name}":
ensure => $ensure,
owner => root, group => 0, mode => '0644',
- before => Exec['refresh_apt'];
+ before => Exec['apt_updated'];
}
case $source {
file { "/etc/apt/sources.list.d/${realname}.list":
ensure => $ensure,
owner => root, group => 0, mode => '0644',
- notify => Exec['refresh_apt'],
+ notify => Exec['apt_updated'],
}
if $source {
-class apt::update {
+class apt::update inherits ::apt {
- exec { 'update_apt':
- command => '/usr/bin/apt-get update && /usr/bin/apt-get autoclean',
- require => [
- File['/etc/apt/apt.conf.d', '/etc/apt/preferences' ],
- File['/etc/apt/sources.list'] ],
- loglevel => info,
- # Another Semaphor for all packages to reference
- alias => 'apt_updated'
+ Exec['update_apt'] {
+ refreshonly => false
}
}