2017-07-19 8 views
0
# hardware_platform.rb 

Facter.add('hardware_platform') do 
    setcode do 
    Facter::Core::Execution.exec('/bin/uname --hardware-platform') 
    end 
end 

facter --puppetを実行したいと思います。この情報はファクターログには入っていません。事実から情報を取得する方法を教えてください私が実際に作った私のカスタムファクトを実行したい

+1

あなたはすでに試したものの正確な詳細を提供するにいくつかの努力をする必要があります、ドキュメントが既に読んなどこれは、あなたがこのような何かを行うことができます。 –

+0

これは人形モジュールの一部ですか? – ptierno

答えて

0

Facterはロード事実の複数の方法を提供しています:

  1. $ LOAD_PATH、またはRubyのライブラリ・ロード・パス
  2. --custom-dirのコマンドラインオプションあなたはdistributin前にローカルでテストファイルのようなものを行うには、これらのメソッドを使用することができます
  3. 環境変数「FACTERLIB」

特定のマシンで特定のファクトを利用できるように手配することができます。

Rubyのロードパスを使用して

Facterはfacterという名前のサブディレクトリのためのRuby $LOAD_PATH変数にすべてのディレクトリを検索し、それらのディレクトリ内のすべてのRubyファイルをロードします。

#~/lib/ruby 
    └── facter 
     ├── rackspace.rb 
     ├── system_load.rb 
     └── users.rb 

Facter負荷facter/system\_load.rbfacter/users.rb、およびfacter/rackspace.rb:あなたは~/lib/rubyようなあなたの$LOAD_PATHディレクトリを持っていた場合は、次のように設定します。

--custom-dirコマンドラインオプションを使用して

Facterは、カスタムの事実を検索するための単一のディレクトリを指定し、コマンドラインで複数の--custom-dirオプションを取ることができます。 Facterは指定されたディレクトリにすべてのRubyファイルをロードしようとします。

$ ls my_facts 
system_load.rb 
$ ls my_other_facts 
users.rb 
$ facter --custom-dir=./my_facts --custom-dir=./my_other_facts system_load users 
system_load => 0.25 
users => thomas,pat 

FACTERLIB環境変数 Facterも区切り(他のすべてのプラットフォーム用のWindowsのためのセミコロンとコロン)のための環境変数FACTERLIBをチェック

セットの使用:これは、あなたがこのような何かを行うことができますこれらのディレクトリにあるすべてのRubyファイルをロードしようとします。

$ ls my_facts 
system_load.rb 
$ ls my_other_facts 
users.rb 
$ export FACTERLIB="./my_facts:./my_other_facts" 
$ facter system_load users 
system_load => 0.25 
users => thomas,pat 

出典:https://docs.puppet.com/facter/3.6/custom_facts.html#loading-custom-facts

関連する問題