我不是一个Ruby的家伙,但发现如何列出的Ruby负载path。 这是我看起来的样子
$ ruby -e 'puts $:' /usr/lib/ruby/site_ruby/1.8 /usr/lib64/ruby/site_ruby/1.8 /usr/lib64/ruby/site_ruby/1.8/x86_64-linux /usr/lib/ruby/site_ruby /usr/lib64/ruby/site_ruby /usr/lib64/site_ruby/1.8 /usr/lib64/site_ruby/1.8/x86_64-linux /usr/lib64/site_ruby /usr/lib/ruby/1.8 /usr/lib64/ruby/1.8 /usr/lib64/ruby/1.8/x86_64-linux
其中一些目录甚至不存在,坦率地说,我认为自定义的.rb文件最好放在Puppet-ish位置,比如/ etc / puppet / facts或类似文件。
我应该使用现有的加载path位置之一还是为了Puppet创build一个新的加载path位置?
最好的做法是将任何事实和其他插件放在puppet服务器的模块中。 然后使用客户端上的pluginsyncfunction。 这让傀儡客户把东西放在适当的位置。
http://docs.puppetlabs.com/guides/plugins_in_modules.html
{modulepath} └── {module} └── lib |── augeas │ └── lenses ├── facter └── puppet ├── parser │ └── functions ├── provider | ├── exec | ├── package | └── etc... (any resource type) └── type
所以一个新的事实可能会进入modules/examplemod/lib/facter/myfact.rb 。
因为facter-1.7还有可能具有外部事实 ,可以在/etc/facter/facts.d部署,并且可以用任何语言编写。