我想执行我在其中制作的自定义事实

时间:2017-07-19 11:25:03

标签: puppet puppet-enterprise facter

<input [(ngModel)]="model.email"  [email]="model.email!==''">

我想执行它,当我给# hardware_platform.rb Facter.add('hardware_platform') do setcode do Facter::Core::Execution.exec('/bin/uname --hardware-platform') end end 时。此信息不会出现在日志中。告诉我如何从事实中获取信息

1 个答案:

答案 0 :(得分:0)

  

Facter提供了多种加载事实的方法:

     
      
  1. $ LOAD_PATH,或Ruby库加载路径
  2.   
  3. --custom-dir命令行选项
  4.   
  5. 环境变量'FACTERLIB'
  6.         

    您可以使用这些方法在分发之前在本地测试文件,或者您可以安排在某些计算机上提供一组特定的事实。

使用Ruby加载路径

Facter在Ruby $LOAD_PATH变量中的所有目录中搜索名为facter的子目录,并加载这些目录中的所有Ruby文件。如果您的$LOAD_PATH中有一个目录,如~/lib/ruby,则设置如下:

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

Facter加载facter/system\_load.rbfacter/users.rbfacter/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