Issue #3537 has been updated by Alex Hewson.
I also am building a platform expected to scale to hundreds of nodes and would
dearly love a way to trigger an apt-get update before new packages are fetched.
Skipping the update entirely isn't an option: the mirror (EC2's) is very
aggressive about dropping outdated packages so odds are if you don't apt-get
update before installing the packages you want won't be there anymore.
Doing it the other way - an apt-get update happening whenever Puppet runs -
would hammer our local Ubuntu mirror and create unnecessary load on all our
hosts.
A 'requireonly' parameter would be the most generalised solution but I would be
happy if we could simply tell the package provider to refresh its database
before fetching a new package. We could do this with a 'refreshdb' parameter
in package...
package { 'bsd-mailx':
ensure => present,
refreshdb => true, # causes provider to run apt-get update or
equivalent before fetching pkg
}
----------------------------------------
Feature #3537: It should be possible to trigger (exec) resources with require
https://projects.puppetlabs.com/issues/3537#change-72323
Author: Kjetil Torgrim Homme
Status: Needs Decision
Priority: Normal
Assignee: eric sorenson
Category: metaparameters
Target version:
Affected Puppet version: 0.25.4
Keywords:
Branch:
When an Exec has conditions associated with it (unless, creates, onlyif), it
can be useful to be state prerequisites which are only run when the exec itself
is run.
Consider this simple example::
<pre>
exec { "prereq":
command => "/bin/echo prereq",
refreshonly => true
}
exec { "main":
command => "/bin/echo main",
onlyif => "/bin/grep foobar /etc/issue",
require => Exec["prereq"]
}
</pre>
Here, the refreshonly will cause "prereq" to never run, since a require isn't
enough to trigger it. Without refreshonly, it will run every time, but the
desired behaviour is that "prereq" is run iff the onlyif command succeeds.
Obviously the behaviour of "refreshonly => true" can't change, and I can't
think of a good name for a tri-state alternative -- "refreshonly =>
'requires-too'" ? "allevents" may be more workable.
My prefered solution would be a new parameter "requireonly". Perhaps slightly
misleading name, since "before" should trigger execution, too, but I think most
people will understand that require/before are inherently intertwined. This
could later be generalised into a metaparameter to work for more types, e.g.
you could have a parent File which is only checked/updated/created when some
other File requires it.
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://projects.puppetlabs.com/my/account
--
You received this message because you are subscribed to the Google Groups
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-bugs?hl=en.