New class: apt::dist_upgrade::initiator.

This implements the "update initiator" pattern suggested by
http://projects.puppetlabs.com/projects/puppet/wiki/Debian_Patterns.

This feature is useful when one does not want to setup a fully automated upgrade
process but still needs a way to manually trigger full upgrades of any number of
systems at scheduled times.
This commit is contained in:
intrigeri 2010-12-16 13:03:08 +01:00
parent 4765a02564
commit bbe2c8aee9
3 changed files with 49 additions and 1 deletions

26
README
View file

@ -213,7 +213,31 @@ dist-upgrade's the system.
This exec is set as refreshonly so including this class does not
trigger any action per-se: other resources may notify it, other
classes may inherit from this one and add to its subscription list
using the plusignment ('+>') operator.
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
----------------------------
This class automatically dist-upgrade's the system when an initiator
file's content changes. The initiator file is copied from the first
available source amongst the following ones, in decreasing priority
order:
- puppet:///site-apt/${fqdn}/upgrade_initiator
- puppet:///site-apt/upgrade_initiator
- puppet:///apt/upgrade_initiator
This is useful when one does not want to setup a fully automated
upgrade process but still needs a way to manually trigger full
upgrades of any number of systems at scheduled times.
Beware: a dist-upgrade is triggered the first time Puppet runs after
this class has been included. This is actually the single reason why
this class is not enabled by default.
When this class is included the APT indexes are updated on every
Puppet run due to the author's lack of Puppet wizardry.

1
files/upgrade_initiator Normal file
View file

@ -0,0 +1 @@

View file

@ -0,0 +1,23 @@
class apt::dist_upgrade::initiator inherits apt::dist_upgrade {
$initiator = 'upgrade_initiator'
$initiator_abs = "${apt::apt_base_dir}/${initiator}"
file { 'apt_upgrade_initiator':
mode => 0644,
owner => root,
group => 0,
path => "${initiator_abs}",
checksum => md5,
source => [
"puppet:///modules/site-apt/${fqdn}/${initiator}",
"puppet:///modules/site-apt/${initiator}",
"puppet:///modules/apt/${initiator}",
],
}
Exec['apt_dist-upgrade'] {
subscribe +> File['apt_upgrade_initiator'],
}
}