[Puppet Users] Could not find a default provider for ... should not fail the agent run?

2011-10-05 Thread Matthias Pigulla
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 like 
https://github.com/puppetlabs/puppet-vcsrepo to 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/package/pip.rb)
 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.



Re: [Puppet Users] Could not find a default provider for ... should not fail the agent run?

2011-10-05 Thread Craig White

On Oct 5, 2011, at 7:25 AM, Matthias Pigulla 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 like 
 https://github.com/puppetlabs/puppet-vcsrepo to 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/package/pip.rb)
  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?

I suspect that I must be missing something here but it seems rather obvious to 
me that in this specific example...

require = Package[git] 

would mean that git is installed first and then it should just work.

As for 'fail' and continue on, that's clearly not the puppet way and any 
tolerance of failures seems inappropriate on just about any level.

Craig

-- 
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.



Re: [Puppet Users] Could not find a default provider for ... should not fail the agent run?

2011-10-05 Thread Nan Liu
On Wed, Oct 5, 2011 at 8:40 AM, Craig White craig.wh...@ttiltd.com wrote:

 On Oct 5, 2011, at 7:25 AM, Matthias Pigulla 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 like https://github.com/puppetlabs/puppet-vcsrepo to 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/package/pip.rb)
  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?
 
 I suspect that I must be missing something here but it seems rather obvious 
 to me that in this specific example...

 require = Package[git]

 would mean that git is installed first and then it should just work.

You can't use a provider if it depends on a package that has yet to be
installed. At least not in a single puppet run. Here's the issue:

http://projects.puppetlabs.com/issues/6907

Thanks,

Nan

-- 
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.