Puppet

如何木偶化特定於木偶紅寶石的gem安裝?

  • February 10, 2016

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 的選項。

引用自:https://serverfault.com/questions/749136