Well as a starter --
This is a provider called rpm_plus.rb -- I found most of it floating
around on the web and I seem to recall tweaking some small part of it,
although I don't recall now what it was... in any event this works and
is in use in our environment. Provider looks like:
Puppet::Type.type(:package).provide :rpm_plus, :parent => :rpm, :source =>
:rpm do
has_feature :versionable
desc "Support via ``rpm``."
commands :rpm_plus => "rpm"
def rpm(*args)
rpm_plus(*args + @resource[:vendor].split(" "))
end
end
You'd throw this in a file called rpm_plus.rb and stash it in
<module>/lib/puppet/provider/package/. What this basically does is
wrap the existing RPM provider with another one that lets you pass
arguments in a "vendor" attribute.
You would then install your RPM package in your manifest the following way:
package{ 'My_package':
ensure => 'version_number',
provider => rpm_plus,
source = "<my_package_location>",
vendor => "--prefix=/home/ads",
}
The key bits are the provider => rpm_plus attribute, which tells
Puppet to override its default yum provider, and the vendor attribute,
into which you pass your additional arguments.
-Eric
On Thu, Sep 9, 2010 at 4:27 AM, SiD <[email protected]> wrote:
> Thanks for your quick answer.
> I've already analysed the code, but it does not really help me. Do I
> need to write a new provider in Ruby, or can I override the original
> one ?
>
> Thanks again !
>
> On Sep 8, 10:45 am, mohit chawla <[email protected]>
> wrote:
>> You can probably start by looking at the code for the various
>> types/providers under puppet's code directory. On Debian, for eg., the code
>> for rpm package provider is under
>> /usr/lib/ruby/1.8/puppet/provider/package/rpm.rb .
>>
>> On Wed, Sep 8, 2010 at 1:40 PM, SiD <[email protected]> wrote:
>> > Hello,
>>
>> > I would like to go in depth with Puppet, but I haven't found any good
>> > documentation about my issue (I've just ordered the official Puppet
>> > book, hope it helps).
>> > I need to install RPM packages with specified install-options, like --
>> > prefix. But the package type does not support this kind of option.
>> > Does anyone have an idea how to redefine a type ?
>>
>> > Thanks !
>>
>> > --
>> > 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]<puppet-users%[email protected]>
>> > .
>> > For more options, visit this group at
>> >http://groups.google.com/group/puppet-users?hl=en.
>
> --
> 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.
>
>
--
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.