使用 Chocolatey 作为 Puppet 的包提供程序

使用 Chocolatey 作为 Puppet 的包提供程序

我正在尝试使用 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,
}

相关内容