- From: Brad Knowles <
>
- To:
- Cc: Brad Knowles <
>
- Subject: [chef] Re: strategies to prevent chef-client bomb out due to yum error?
- Date: Thu, 22 Mar 2012 01:22:37 +0000
On Mar 21, 2012, at 9:35 PM,
wrote:
>
hi. this keeps happening to me lately. in various places in my cookbooks,
>
i'll yum install an rpm. sometimes the process bombs out because it gets
>
a 503 response from http://mirrors.fedoraproject.org/. contacting that
>
server only happens for the epel repo.
>
>
is this happening to anyone else? how do you solve it?
Yes, this happened to us all the time. I ultimately decided to ship the
entire epel-release-5-4.noarch.rpm file via cookbook_file so that I could
push it directly to my nodes and they could themselves keep track of which
mirrors are working well/fast, and wouldn't constantly trip themselves up by
trying to hit the whacked-up mirror rotator.
I believe I heard jtimberman also making some noises about this problem on
#chef.
>
one solution might be to mirror that repo locally, but i really don't
>
want to.
We tried to set up a mirror for that repo locally, but because of the way the
EPEL mirroring system works, that's actually kind of a pain. Either you
hard-code everything to your local URL that is the EPEL mirror and you live
with the problems of what happens when your local mirror is down, or you
officially register yourself as a mirror of EPEL so that you can get into the
mirrormanager system and therefore catch all the "local" IP addresses that
are looking for a mirror and get them redirected to you. But if you
officially register yourself as a mirror of EPEL, then you've got a huge mass
of additional traffic that you might have to deal with.
Blech and double blech.
>
maybe another solution would be to disable this line in epel.repo:
>
>
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=$basearch
>
>
and enable this line?
>
>
baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch/debug
Here's our solution:
cookbook_file
"#{Chef::Config[:file_cache_path]}/epel-release-#{epel}.noarch.rpm" do
Chef::Log.info("Providing epel-release-#{epel}.noarch.rpm via
cookbook_file")
source "epel-release-#{epel}.noarch.rpm"
not_if "rpm -qa | grep -qx 'epel-release-#{epel}'"
end
rpm_package "epel-release" do
source "#{Chef::Config[:file_cache_path]}/epel-release-#{epel}.noarch.rpm"
end
>
is it a good idea for the package or yum_package provider to help with
>
this? then again, maybe not because the point of cfg mgmt here is for
>
a node to be in a known and intended state. and if it can't get there,
>
then it's a "bad" node, and the chef-client run should fail.
Last I saw, there was still a bug in the yum provider that could cause it to
fail an entire chef run because yum was returning a non-zero error code, even
in cases where the output from yum indicates that this might be just a
temporary error and you should retry at a later time. I know some fixes have
been applied to the yum provider on this issue, but I don't think the bug has
been fully squashed.
Meanwhile, code your CentOS systems knowing that yum does crazy whacky stuff
when it hits mirror sites that are run in crazy whacky ways, and that this
combination frequently occurs when you mix yum and EPEL.
--
Brad Knowles
<
>
SAGE Level IV, Chef Level 0.0.1
Archive powered by MHonArc 2.6.16.