#自定义fact的三种方法:
1、在ruby的facter目录下配置
Facter默认会搜索本地“/usr/lib/ruby/site_ruby/1.8/facter"目录下所有的rb文件,所以可以将自定义的rb文件放在此目录下。
2、定义环境变量FACTFERLIB
在本地随意创建目录my_facts,将自定义的rb文件放在此目录下。将my_facts目录设置为FACTFERLIB变量。Facter将会加载此目录下的文件。
具体如下:
#mkdir my_facts
#ls my_facts
example_fact.rb
#export FACTFERLIB="./my_facts"
#facter example_fact.rb
3、模块插件同步
plugin存放在<modulespath>/<module>/lib/puppet/type
providers存放在<modulespath>/<module>/lib/puppet/provider
functions存放在<modulespath>/<module>/lib/puppet/functions
Facter facts存放在<modulespath>/<module>/lib/facter
要使用自定义facter需要满足两个条件:
(1)配置所有客户端的配置文件puppet.conf,开启插件同步
[main]
pluginsync = true
(2)将自定义的插件放在模块的lib目录下
#ls /etc/puppet/modules/{module_name}/lib/facter
1、在ruby的facter目录下配置
Facter默认会搜索本地“/usr/lib/ruby/site_ruby/1.8/facter"目录下所有的rb文件,所以可以将自定义的rb文件放在此目录下。
2、定义环境变量FACTFERLIB
在本地随意创建目录my_facts,将自定义的rb文件放在此目录下。将my_facts目录设置为FACTFERLIB变量。Facter将会加载此目录下的文件。
具体如下:
#mkdir my_facts
#ls my_facts
example_fact.rb
#export FACTFERLIB="./my_facts"
#facter example_fact.rb
3、模块插件同步
plugin存放在<modulespath>/<module>/lib/puppet/type
providers存放在<modulespath>/<module>/lib/puppet/provider
functions存放在<modulespath>/<module>/lib/puppet/functions
Facter facts存放在<modulespath>/<module>/lib/facter
要使用自定义facter需要满足两个条件:
(1)配置所有客户端的配置文件puppet.conf,开启插件同步
[main]
pluginsync = true
(2)将自定义的插件放在模块的lib目录下
#ls /etc/puppet/modules/{module_name}/lib/facter
example_fact.rb
(3)导入FACTERLIB
export FACTERLIB="/var/lib/puppet/lib/facter"
(echo export FACTERLIB="/var/lib/puppet/lib/facter" > /root/.bash_profile)