Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am attempting to use Chocolatey ( ) as a package provider for Puppet, but I continually get this error when running the Puppet agent on my Win 7 box.

info: Caching catalog for ldap-windows-vm.localdomain
err: Failed to apply catalog: Parameter provider failed: Invalid package provide
r 'chocolatey' at /etc/puppet/environments/beta/modules/stormaas/manifests/init.

I've placed this module,, in my modules/ directory on my Puppet master, I have pluginsync set to true on both the master and slave - and am already using a few imported types that are working with the same setup.

Calling the package with:

  package { 'stormaas':
    ensure   => installed,
    provider => 'chocolatey',

I've tried with both the provider set to 'chocolatey' and chocolatey in case it was a quotes issue, and restarted both the master and slave on every change and ran the agent multiple times to ensure it was refreshed.

All other aspects of the module that is being applied to the machine works - just not this.

Any thoughts?

share|improve this question
I was under the impression that the Chocolatey provider type project was unfinished. I'd definitely be interested to see if you get this working though. – czervik Oct 17 '12 at 5:41
This was solved - I'll post my answer below. – TJ Biddle Oct 17 '12 at 20:25
@TJBiddle - this should have a chocolatey tag on it. I don't think either of us have enough rep on server fault to add it though. – ferventcoder Sep 4 '13 at 11:18
@ferventcoder - I need 300 rep to create the 'chocolatey' tag =\. – TJ Biddle Sep 4 '13 at 15:26
@TJBiddle I know, that's why I said "[n]either of us" – ferventcoder Sep 9 '13 at 19:53
up vote 2 down vote accepted

This looks to be a Puppet bug actually - I'm using dynamic environments, so my module was originally placed under /etc/puppet/environments/beta/chocolatey/ but when I moved the module over to /etc/puppet/modules then it worked.

What's interesting is custom types worked fine while in the environment - but custom providers failed to sync up.

The module works great it seems - Might be a few quirks, if I run into any I'll patch it and submit a pull request.

share|improve this answer
I have some updates to this, I'll post in a new answer though as it is a completely different idea than what this originally stated. – ferventcoder Sep 10 '15 at 13:39

Once you get past the issues with modulepath, here is some more information related to other issues that could crop up and how to resolve them.

The Chocolatey provider (now located at chocolatey/chocolatey), requires Chocolatey itself to be installed. Since the release of v1.1.0, the provider will actually handle ensuring Chocolatey is installed. You just need to add the following somewhere in your manifests:

include chocolatey

If you want to get into more scenarios related to the chocolatey class, you can see the available parameters in the ReadMe. Example included:

class {'chocolatey':
  chocolatey_download_url => 'https://internalurl/to/chocolatey.nupkg',
  choco_install_location => 'D:\secured\choco',
  use_7zip => false,
  choco_install_timeout => 2700,
  enable_autouninstaller => true,
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.