Puppet
如何木偶化特定於木偶紅寶石的gem安裝?
Puppet Azure 模組需要安裝特定的 gem。方向https://github.com/puppetlabs/puppetlabs-azure顯示以下範例:
/opt/puppetlabs/puppet/bin/gem install azure azure_mgmt_compute azure_mgmt_storage azure_mgmt_resources azure_mgmt_network hocon retries --no-ri --no-rdoc
特定的 gem 二進製文件
/opt/puppetlabs/puppet/bin/gem
用於確保將 gem 安裝到 puppet 安裝目錄並使用 puppet 捆綁的 ruby 版本。Puppet 的包資源有一個 gem 提供程序,但它將使用系統 ruby 安裝。
如何將特定於 puppet 的 gem 安裝木偶化?我不喜歡使用
exec
資源。是否有 puppet-agent 安裝 gems 的資源?
我在https://docs.puppetlabs.com/references/4.0.0/type.html#package-provider-puppet_gem上找到了答案
Puppet v4 的新功能是包資源的 puppet_gem 提供程序。
package { 'azure' : provider => 'puppet_gem', ensure => installed, }
看看提供者,它確實付出了代價,
gem
而不是在 ruby 中做事(這可能根本不可能)。這是不可配置的。您可以嘗試使用Puppet 的 Ruby/gem 而非其他副本來讓 puppet
agent
(或apply
)執行。PATH
這可能會做到(但可能會破壞其他事情)。當然,您失去了在同一個 Puppet 事務中安裝“系統”gem 的選項。