私は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ファイルは/ etc/puppet /のようなPuppet風の場所に配置するのが最適だと思います。事実または同様のもの。
Puppetの目的で、既存のロードパスの場所の1つを使用するか、新しい場所を作成する必要がありますか?
ベストプラクティスは、パペットサーバーのモジュール内にファクトやその他のプラグインを配置することです。次に、クライアントでpluginsync機能を使用します。これにより、パペットクライアントは適切な場所に物を置くことができます。
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
で展開でき、任意の言語で記述できます。