![使用 Chocolatey 作为 Puppet 的包提供程序](https://linux22.com/image/598671/%E4%BD%BF%E7%94%A8%20Chocolatey%20%E4%BD%9C%E4%B8%BA%20Puppet%20%E7%9A%84%E5%8C%85%E6%8F%90%E4%BE%9B%E7%A8%8B%E5%BA%8F.png)
我正在尝试使用 Chocolatey (http://chocolatey.org) 作为 Puppet 的包提供程序,但是在我的 Win 7 机器上运行 Puppet 代理时不断收到此错误。
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.
pp:9
我已经放置了这个模块,https://github.com/rismoney/puppet-chocolatey,在我的 Puppet 主服务器上的 modules/ 目录中,我已在主服务器和从服务器上将 pluginsync 设置为 true - 并且已经在使用一些使用相同设置的导入类型。
使用以下命令调用该包:
package { 'stormaas':
ensure => installed,
provider => 'chocolatey',
}
我尝试将提供程序设置为“chocolatey”和 chocolatey,以防万一是报价问题,并在每次更改时重新启动主服务器和从服务器,并多次运行代理以确保它被刷新。
应用于机器的模块的所有其他方面都可以正常工作 - 但这一点不行。
有什么想法吗?
答案1
这实际上看起来像是一个 Puppet 错误 - 我正在使用动态环境,所以我的模块最初放在 /etc/puppet/environments/beta/chocolatey/ 下,但是当我将模块移到 /etc/puppet/modules 时它就起作用了。
有趣的是,自定义类型在环境中运行良好 - 但自定义提供程序无法同步。
该模块似乎运行良好 - 可能有一些怪癖,如果我遇到任何问题,我会修补它并提交拉取请求。
答案2
一旦您解决了 modulepath 的问题,这里还有一些与可能出现的其他问题及其解决方法相关的信息。
Chocolatey 提供商(现位于巧克力味/巧克力味),需要安装 Chocolatey 本身。自发布以来v1.1.0,提供商实际上将负责确保 Chocolatey 已安装。您只需要在清单中的某处添加以下内容:
include chocolatey
如果你想了解更多与 chocolatey 类相关的场景,你可以请参阅自述文件中的可用参数.示例包括:
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,
}