Once again I''m experimenting with the Gentoo Linux distro and trying to get puppet to work with it. I''m starting to think it is a lost cause. In my puppet setup I have a list of packages that are built on any system that I support regardless of the systems final use. These include tmpwatch, snmpd, ntpd.. you get the idea. Using the templates I already had in place I run puppetd for the first time on the target host and got the following error: warning: Found multiple default providers for package: pip, gem; using pip I checked the on-line documentation and found there was a provider (or so the docs said) for portage, which was good news to me since I know that Gentoo is portage based. So I added to my site.pp file: if ( $operatingsystem == "gentoo" ) { Package { provider => "portage" } } Well in the words of my son, "Epic Fail." Now I get: err: Could not prefetch package provider ''portage'': Command update_eix is missing I''m running puppet 2.7.3 on both the puppet master and the client. Any thoughts? -- Peter L. Berghold Owner, Shark River Technical Solutions LLC -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Peter Berghold wrote:> Now I get: > err: Could not prefetch package provider ''portage'': Command update_eix > is missing > > I''m running puppet 2.7.3 on both the puppet master and the client. Any > thoughts?Caveat: I am not a Gentoo person. Is the binary update_eix present on the host? James -- James Turnbull Puppet Labs 1-503-734-8571 Join us for PuppetConf <http://www.bit.ly/puppetconfsig>, September 22nd and 23rd in Portland, Oregon, USA. -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Doing a google after I sent the email I found the following page: http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Gentoo after doing a "emerge eix" and re-running the puppet transaction things *look* to be going normally.... can''t tell for sure since it is still running and it is not generating any spew for me to look at. I''ll know in a while if it worked. On Tue, Sep 6, 2011 at 3:43 PM, James Turnbull <james@puppetlabs.com> wrote:> Peter Berghold wrote: > > Now I get: > > err: Could not prefetch package provider ''portage'': Command update_eix > > is missing > > > > I''m running puppet 2.7.3 on both the puppet master and the client. Any > > thoughts? > > Caveat: I am not a Gentoo person. > > Is the binary update_eix present on the host? > > James > > -- > James Turnbull > Puppet Labs > 1-503-734-8571 > > Join us for PuppetConf <http://www.bit.ly/puppetconfsig>, September 22nd > and 23rd in Portland, Oregon, USA. > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To post to this group, send email to puppet-users@googlegroups.com. > To unsubscribe from this group, send email to > puppet-users+unsubscribe@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. > >-- Peter L. Berghold Owner, Shark River Technical Solutions LLC -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Peter, Puppet works great on gentoo with the following caveats: - Puppet conceptually uses a binary package paradigm, and one needs to work around that. It would be nice if we could extend puppet for gentoo to make it more "source based distribution aware" and especially allow it to manage portage configuration files and limit compile times/etc. - Do to the differences between binary and source, one frequently will setup puppet to run only once/day on server nodes during off peak hours so that any compiling/package dependencies will not occur during critical periods - and if possible, all compiling will occur on the build server prior to puppet agent calls on other nodes. - Gentoo supports more cron systems than puppet supports (last I checked, puppet did not support fcron) - Gentoo admins are slightly behind redhat/fedora admins in writing public modules, this is an area where there is a significant amount of activity and I hope we can eventually catch up on. - The handling of dependencies and libraries is not clear cut, and one usually has to create a separate script to run after puppet to ensure linking is correct and that python/perl/etc modules are happy. There are additional issues, but all of them to date can be reasonably overcome/managed. I''ve been in contact with many admins w/ larger sized clusters and improving the puppet experience on gentoo is a frequent topic of conversation. I wouldn''t be discouraged by any initial issues you find. Matt On Tue, Sep 6, 2011 at 12:46 PM, Peter Berghold <salty.cowdawg@gmail.com> wrote:> Doing a google after I sent the email I found the following page: > > http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Gentoo > > after doing a "emerge eix" and re-running the puppet transaction things > *look* to be going normally.... can''t tell for sure since it is still > running and it is not generating any spew for me to look at. > > I''ll know in a while if it worked. > > > > On Tue, Sep 6, 2011 at 3:43 PM, James Turnbull <james@puppetlabs.com> wrote: >> >> Peter Berghold wrote: >> > Now I get: >> > err: Could not prefetch package provider ''portage'': Command update_eix >> > is missing >> > >> > I''m running puppet 2.7.3 on both the puppet master and the client. Any >> > thoughts? >> >> Caveat: I am not a Gentoo person. >> >> Is the binary update_eix present on the host? >> >> James >> >> -- >> James Turnbull >> Puppet Labs >> 1-503-734-8571 >> >> Join us for PuppetConf <http://www.bit.ly/puppetconfsig>, September 22nd >> and 23rd in Portland, Oregon, USA. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Puppet Users" group. >> To post to this group, send email to puppet-users@googlegroups.com. >> To unsubscribe from this group, send email to >> puppet-users+unsubscribe@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/puppet-users?hl=en. >> > > > > -- > Peter L. Berghold > Owner, Shark River Technical Solutions LLC > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To post to this group, send email to puppet-users@googlegroups.com. > To unsubscribe from this group, send email to > puppet-users+unsubscribe@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. >-- Matthew Marlowe matt@professionalsysadmin.com Senior Internet Infrastructure Consultant DevOps/VMware/SysAdmin https://www.twitter.com/deploylinux Gentoo Linux Dev "Courage is not simply one of the virtues, but the form of every virtue at the testing point." -- C.S. Lewis -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
On Tue, Sep 6, 2011 at 13:26, Matthew Marlowe <matt@professionalsysadmin.com> wrote:> Puppet works great on gentoo with the following caveats: > - Puppet conceptually uses a binary package paradigm, and one needs to > work around that. It would be nice if we could extend puppet for > gentoo to make it more "source based distribution aware" and > especially allow it to manage portage configuration files and limit > compile times/etc.Er, that isn''t really true. The closest you could come was that our timeouts might not suit, for example, hours of compilation to install a package, but it fundamentally shouldn''t fail. If it does, file a bug. (Note, for example, that our gem package provider absolutely does support native compiled code on install.) This comes down to the package provider depending on eix, which is presumably some sort of interface to portage that isn''t standard; fixing the provider should fix the problem there. That pretty much depends on someone who cares sending an appropriate patch. (hint ;)> - Do to the differences between binary and source, one frequently will > setup puppet to run only once/day on server nodes during off peak > hours so that any compiling/package dependencies will not occur during > critical periods - and if possible, all compiling will occur on the > build server prior to puppet agent calls on other nodes. > - Gentoo supports more cron systems than puppet supports (last I > checked, puppet did not support fcron)Only vixie cron.> - The handling of dependencies and libraries is not clear cut, and one > usually has to create a separate script to run after puppet to ensure > linking is correct and that python/perl/etc modules are happy.You *should* be able to tie that together with an appropriate exec to at least automate it. Daniel -- ⎋ Puppet Labs Developer – http://puppetlabs.com ♲ Made with 100 percent post-consumer electrons -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
> This comes down to the package provider depending on eix, which is > presumably some sort of interface to portage that isn''t standard; > fixing the provider should fix the problem there. That pretty much > depends on someone who cares sending an appropriate patch. (hint ;) >That''s probably most of it. Can you provide a link to the file(s) on github within the puppet source specific to the gentoo packaging provider? I''ll see if I can find to review it and consider extending or updating it to understand more of the gentoo build specific procedures. I''m not sure if this might require adding new keywords or resources, or if we''re just talking about setting and creating class variables that the provider would interpret and implement.> >> - The handling of dependencies and libraries is not clear cut, and one >> usually has to create a separate script to run after puppet to ensure >> linking is correct and that python/perl/etc modules are happy. > > You *should* be able to tie that together with an appropriate exec to > at least automate it. >Yes and no -- it''s not a clear cut process. Most of the time there are just a few calls after a package is installed, but frequently you''ll want to limit those calls until all other package operations are complete, and/or run the calls over and over to slowly resolve dependencies if there is a failure. Some of the calls can also be quite expensive so they are only run when certain packages are modified - so there might be a bit of intelligence that has to be stored in code to get a fully optimized robust solution. Differing versions of portage can also have an impact/etc.> Daniel > -- > ⎋ Puppet Labs Developer – http://puppetlabs.com > ♲ Made with 100 percent post-consumer electrons > > -- > You received this message because you are subscribed to the Google Groups "Puppet Users" group. > To post to this group, send email to puppet-users@googlegroups.com. > To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. > For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en. > >-- Matthew Marlowe matt@professionalsysadmin.com Senior Internet Infrastructure Consultant DevOps/VMware/SysAdmin https://www.twitter.com/deploylinux Gentoo Linux Dev "Courage is not simply one of the virtues, but the form of every virtue at the testing point." -- C.S. Lewis -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
On Tue, Sep 6, 2011 at 20:00, Matthew Marlowe <matt@professionalsysadmin.com> wrote:>> This comes down to the package provider depending on eix, which is >> presumably some sort of interface to portage that isn''t standard; >> fixing the provider should fix the problem there. That pretty much >> depends on someone who cares sending an appropriate patch. (hint ;) > > That''s probably most of it. Can you provide a link to the file(s) on > github within the puppet source specific to the gentoo packaging > provider?You want lib/puppet/provider/package/portage.rb> I''ll see if I can find to review it and consider extending > or updating it to understand more of the gentoo build specific > procedures. I''m not sure if this might require adding new keywords or > resources, or if we''re just talking about setting and creating class > variables that the provider would interpret and implement.So, that would wrap the generic "package" type and provide a concrete implementation of checking, and actioning, the instructions from Puppet. Presumably it uses the eix tool, presently, and should be reworked not to require that to achieve the same aims to fix this bug. (...but I am not certain - I don''t know gentoo well. :) Daniel -- ⎋ Puppet Labs Developer – http://puppetlabs.com ♲ Made with 100 percent post-consumer electrons -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.