web-dev-qa-db-ja.com

カスタムパペットファクトに最も適した場所-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ファイルは/ etc/puppet /のようなPuppet風の場所に配置するのが最適だと思います。事実または同様のもの。

Puppetの目的で、既存のロードパスの場所の1つを使用するか、新しい場所を作成する必要がありますか?

3
quickshiftin

ベストプラクティスは、パペットサーバーのモジュール内にファクトやその他のプラグインを配置することです。次に、クライアントで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で展開でき、任意の言語で記述できます。

7
Zoredache