Puppet
在 Vagrant 中將包提供程序添加到 Puppet
我正在使用 Puppet 來配置 Vagrant 框,並希望包含一個 3rd 方包提供程序(https://github.com/torrancew/puppet-cpanm)
該 repo 中的 README.md 顯示瞭如何在清單中使用提供程序,但它假設(我相信)一個擁有或知道該提供程序的 puppet master。使用我的 Vagrant 設置,我實際上並沒有一個 puppet master(或者 Vagrant 充當一個?)所以我不確定如何實際使用包提供程序類(https://github.com/torrancew/puppet-cpanm /blob/master/lib/puppet/provider/package/cpanm.rb )
我需要在我的 Vagrantfile、我的 Puppet 清單或來賓/主機系統配置的其他地方做些什麼來允許我使用這個包提供程序?
tl;博士:
- 確保已安裝 puppet 提供程序模組並位於模組路徑上。
- 確保還安裝了底層的 3rd 方工具。這可以由模組本身通過添加
include cpanm
到您的清單來處理。細節
您必須安裝提供程序模組並在
modulepath
Puppet 上才能看到它。使用提供者總是經過適用性檢查,您可以在提供者的命令/限制中看到:
confine :exists => ['/usr/bin/cpanm', '/usr/bin/perldoc'] commands :cpanm => '/usr/bin/cpanm'
適用性意味著提供者聲明上述項目需要存在才能使提供者處於活動狀態。有一條消息告訴您何時提供者不合適,當您使用 執行 Puppet 時會顯示該消息,
--debug --verbose
在Vagrantfile中完成,如下所示:config.vm.provision :puppet, :options => ["--debug --trace --verbose"] do |puppet| #other settings here end
工作範例
有關使用第三方包提供程序 (Chocolatey) 的完整工作範例,請參閱
- 安裝第 3 方 PM 工具 - https://github.com/ferventcoder/vagrant-windows-puppet/blob/ca98c48807f4f8f60df0938b0ee52078f5668842/boxes/win10x64-vagrant/Vagrantfile#L29
- 確保安裝了提供程序本身 - https://github.com/ferventcoder/vagrant-windows-puppet/tree/ca98c48807f4f8f60df0938b0ee52078f5668842/boxes/win10x64-vagrant/puppet
然而,既然 Chocolatey 提供者可以自己處理安裝,它變得像確保提供者已安裝然後將以下內容添加到清單中一樣簡單:
include chocolatey
將其帶回完整週期,看來 cpanm 也可以自行安裝:
include cpanm