Hey Eric Wow, it's exactly what I wanted to do. I did not know how to call the provider and modify the command without writing a new provider. Simple, clear and powerful. Thanks a lot for sharing ! Did you use "vendor" parameter because it is not possible to create new parameters ? I have tired, but it does not work.
On Sep 9, 5:40 pm, Eric Shamow <eric.sha...@gmail.com> wrote: > 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 <self...@gmail.com> 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 <mohit.chawla.bin...@gmail.com> > > 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 <self...@gmail.com> 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 puppet-us...@googlegroups.com. > >> > To unsubscribe from this group, send email to > >> > puppet-users+unsubscr...@googlegroups.com<puppet-users%2bunsubscr...@googlegroups.com> > >> > . > >> > 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 puppet-us...@googlegroups.com. > > To unsubscribe from this group, send email to > > puppet-users+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://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 puppet-us...@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.