Jeremy Pruitt wrote:
> In response to your first comment, it certainly should be idempotent.
> Puppet should be able to determine that the rpm is already installed,
> and I believe that is just a local "rpm -q" or something. So, I don't
> think it should hit the URL unless it doesn't think it's installed.
> This can happen, though, when the name of the resource doesn't match
> the name that "rpm -qa" returns. Perhaps you can provide the output of
> one of the non-idempotent puppet runs with the --debug and --trace
> options.
>
> I also occasionally use something like this for packages that have a
> different name when you install vs when you query. FreeBSD is full of
> this:
>   http://pastie.org/397847
>
> What's not clear to me is how to tell rpm to do an "-U" update instead
> of an "-i" install. I believe I have used execs to get around this in
> the past.
>
> As far as building from source, I just create a puppet definition like
> so:
>   http://pastie.org/397821
>
> And I use it like this:
>   http://pastie.org/397827
>
> If there is a better way out there, I'm all ears! :)
>
> Anyways, I hope that helped in some way.
>
>  - Jeremy
>
>
> On Feb 23, 7:40 am, "Michael L. Artz" <[email protected]> wrote:
>   
>> Sorry for the topic confluence, but I was wondering if there were
>> common puppet "idioms" for either:
>>
>>   - distributing an RPM to a series of clients (namely RabbitMQ) and
>> installing the package?  I realize that I can do it naively by pulling
>> the file from the puppetmaster and then using the package resource to
>> install it via RPM, but I was wondering if there was a better way to
>> do this.  I would love to be able to install via RPM with a URL (i.e.
>> rpm -Uvh http://....), but the command that actually gets executed
>> with puppet (something like 'rpm -i --oldpackage http://....) doesn't
>> seem to be idempotent, i.e. it fails after the package is already
>> installed.  Also, I would rather not have all of my puppets calling
>> out to the rpm url every 2 minutes.
>>
>>   - distributing and compiling a tarball?  Its a pretty standard
>> autoconf/automake tarball (i.e. './configure --prefix=/usr; make; make
>> install') ... is there a "standard" way to do this with puppet.  I'm
>> also using a source-built Ruby and RubyGems, which would be nice to
>> manage with puppet.
>>
>> I've looked through a bunch of existing modules, but I haven't seen
>> this sort of thing.
>>
>> Thanks for any help,
>> -Mike
>>     
> >
>   
I wrote a definition when I first started to use puppet for a 
source_package that puts it under /usr/src then subsequently builds it 
based on a string of cfg_opts and make_opts, and uses onlyif to serve 
out and execute the build based on a test or two... it's a little hairy 
and usually best to distribute things through the distro's PM, but I 
wanted to do it as an academic exercise more than anything. I can try to 
unearth it if you express interest.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Users" 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-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to