最适合自定义 Puppet 事实的地方 - RHEL

最适合自定义 Puppet 事实的地方 - RHEL

我不太懂 Ruby,但找到了如何列出 Ruby 加载路径的方法。它对我来说是这样的

$ 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 的位置,例如/etc/puppet/事实或类似的东西。

我应该采用现有的加载路径位置之一还是为了 Puppet 的目的创建一个新的加载路径位置?

答案1

最佳做法是将所有事实和其他插件放在 Puppet 服务器上的模块内。然后在客户端上使用 pluginsync 功能。这允许 Puppet 客户端将内容放在适当的位置。

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,也可以用任何语言编写。

相关内容