Matthias, I had a similar problem recently with libvirt Ruby bindings being required for a provider. Due to a few other requirements I opted for creating a "second pass" approach by using a custom fact to describe whether my provider was "ready to be used" on a node and wrap my resources in a conditional based on this fact. The fact tests certain files exist which are installed by packages managed in other Puppet modules. It's pretty hacky but I didn't have time to invest in a nicer solution such as handling the error inside the provider.
-Luke On Oct 5, 3:25 pm, Matthias Pigulla <[email protected]> wrote: > Hi all, > > I have repeatedly encountered the problem that I would like Puppet to install > a particular piece of software, for example git, and then use a provider > likehttps://github.com/puppetlabs/puppet-vcsrepoto check out a repository. > > This fails with a message like "Could not run Puppet configuration client: > Could not find a default provider for ..." unless the tool (git, to stick > with my example) is already installed. This chicken and egg problem applies > to some other install-stuff-and-do-more-stuff-with-it situations as well. > > I understand that it would be way too complicated for puppet to be able to > handle all this in a single run. But isn't failing due to the lack of a > particular (default) provider too hard? > > If Puppet would carry on and just fail on the vcsrepo {} (or whatever type of > resource), things would probably sort out after two or three agent runs. > > In IRC they pointed me to either using environments, which I think is too > complicated (having to maintain "bootstrap" and "production" manifests). > > Another tip was to have a look at the way the pip package provider > (https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/...) > works, see lazy_pip at the end. But to me it seems as if that would be out of > line with the rest of providers and working against the API provided by > Puppet. > > Suggestions? > > -mp. -- 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.
