# hardware_platform.rb
Facter.add('hardware_platform') do
setcode do
Facter::Core::Execution.exec('/bin/uname --hardware-platform')
end
end
私はそれを実行したいと思いfacter --puppet
ます。この情報はファクト ログには記録されません。事実から情報を得る方法を教えてください
# hardware_platform.rb
Facter.add('hardware_platform') do
setcode do
Facter::Core::Execution.exec('/bin/uname --hardware-platform')
end
end
私はそれを実行したいと思いfacter --puppet
ます。この情報はファクト ログには記録されません。事実から情報を得る方法を教えてください
Facter には、ファクトをロードする複数の方法が用意されています。
- $LOAD_PATH、または Ruby ライブラリのロード パス
- --custom-dir コマンド ライン オプション
- 環境変数「FACTERLIB」</li>
これらの方法を使用して、ファイルを配布する前にローカルでテストしたり、特定のマシンで特定のファクト セットを利用できるように手配したりできます。
Ruby ロード パスの使用
Facter は、Ruby$LOAD_PATH
変数内のすべてのディレクトリを検索して、facter という名前のサブディレクトリを探し、それらのディレクトリ内のすべての Ruby ファイルを読み込みます。like にディレクトリがある場合は、次の$LOAD_PATH
よう~/lib/ruby
に設定します。
#~/lib/ruby
└── facter
├── rackspace.rb
├── system_load.rb
└── users.rb
因子負荷facter/system\_load.rb
、facter/users.rb
、およびfacter/rackspace.rb
。
--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 は環境変数FACTERLIB
で区切られた (Windows の場合はセミコロン、その他すべてのプラットフォームの場合はコロン) で区切られた一連のディレクトリをチェックし、それらのディレクトリ内のすべての 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