使用 Chocolatey 作為 Puppet 的套件提供程序

使用 Chocolatey 作為 Puppet 的套件提供程序

我正在嘗試使用巧克力(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 master 上的 module/ 目錄中,我在主站和從站上將 pluginsync 設為 true - 並且已經使用了一些使用相同設定的導入類型。

使用以下命令調用套件:

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

我嘗試將提供者設定為“chocolatey”和“chocolatey”,以防出現報價問題,並在每次更改時重新啟動主伺服器和從伺服器,並多次運行代理以確保其刷新。

應用於機器的模組的所有其他方面都可以工作 - 只是不是這個。

有什麼想法嗎?

答案1

這看起來實際上是一個Puppet bug - 我正在使用動態環境,所以我的模組最初放置在/etc/puppet/environments/beta/chocolatey/ 下,但是當我將模組移至/etc/puppet/modules 時,它就出現了工作了。

有趣的是自訂類型在環境中運作良好 - 但自訂提供者無法同步。

這個模組看起來運作得很好 - 可能有一些怪癖,如果我遇到任何怪癖,我會修補它並提交拉取請求。

答案2

一旦解決了 modulepath 的問題,這裡有一些與可能出現的其他問題以及如何解決這些問題相關的更多資訊。

巧克力供應商(現在位於巧克力味/巧克力味),需要安裝 Chocolatey 本身。自發布以來v1.1.0,提供者將實際處理確保安裝 Chocolatey。您只需在清單中的某個位置新增以下內容:

include 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,
}

相關內容