Issue #1238 has been updated by Gerard Bernabeu.
After some failed attempts to workaround this using stages I found a (dirty)
workaround playing with failing dependencies. The first run will always fail,
but later on it will work:
$reporpm='XXX'
package { "$reporpm": ensure => latest; } #On updates it will not be
an issue because the same prefetching will prevent puppet to see that it needs
to change 'enabled' anyway.
exec{"/usr/bin/yum -y install $reporpm; /bin/false": #We have to do
this due to bug http://projects.puppetlabs.com/issues/1238. This is a
workaround that will make the requirements fail if reporpm is about to be
installed in that run. This way we do not suffer from the prefetching bug,
because the repo will be 'tuned' on the next run, not in this.
before => Package["$reporpm"],
unless => "/bin/rpm -q $reporpm",
}
yumrepo {
'XXX':
enabled => "1", #We want to ensure that we get updates
require => [Package["$reporpm"],Exec["/usr/bin/yum -y install
$reporpm; /bin/false"]],
}
Hope you find it useful.
----------------------------------------
Bug #1238: strange yumrepo/package interaction
https://projects.puppetlabs.com/issues/1238#change-82605
Author: BMDan -
Status: Accepted
Priority: Normal
Assignee: David Lutterkort
Category: yumrepo
Target version:
Affected Puppet version:
Keywords:
Branch:
Yumrepo appears to be checking file existence before allowing the package
command to complete, meaning that it creates a file containing only "[remi]"
and "enabled=1", overwriting the file that the RPM installed.
Manifests, additional debug output, etc., available upon request. Just tell me
what you need to know. Workarounds especially welcomed. Puppet v. 0.24.4,
running with --debug --test, on Ruby 1.8.6.114-1, compiled from source with
default options.
<pre>
debug: //Node[default]/remi_enabled/Yumrepo[remi]/require: requires
Package[remi-release-5-4.el5.remi]
</pre>
...
<pre>
debug: Puppet::Type::Package::ProviderRpm: Not suitable: false value
debug: Puppet::Type::Package::ProviderRpm: Executing '/bin/rpm -q
remi-release-5-4.el5.remi --nosignature --nodigest --qf %{NAME}
%|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}'
debug: /Package[remi-release-5-4.el5.remi]: Changing ensure
debug: /Package[remi-release-5-4.el5.remi]: 1 change(s)
debug: Puppet::Type::Package::ProviderRpm: Executing '/bin/rpm -i --oldpackage
http://rpms.famillecollet.com/el5.x86_64/remi-release-5-4.el5.remi.noarch.rpm'
notice: /Package[remi-release-5-4.el5.remi]/ensure: created
info: create new repo remi in file /etc/yum.repos.d/remi.repo
debug: //Node[default]/remi_enabled/Yumrepo[remi]: Changing enabled
debug: //Node[default]/remi_enabled/Yumrepo[remi]: 1 change(s)
notice: //Node[default]/remi_enabled/Yumrepo[remi]/enabled: defined 'enabled'
as '1'
info: Filebucket[/var/lib/puppet/clientbucket]: Adding
/etc/yum.repos.d/remi.repo(18f7009978e772c9c646b9410fa3a8b6)
</pre>
--
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 unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.