Without waving my ignorance around too much... does Matthias' issue fit run 
stages? This sounds like exactly what they were designed to solve: ensure 
certain things definitely happen before certain other things.

On Wed, Oct 05, 2011 at 07:33:29AM -0700, Luke Bigum wrote:
> 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 <m...@webfactory.de> 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 puppet-users@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.
> 
> 

-- 
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+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to