IT咨询服务Linux自动化运维

查看其它 2 个回答galaxy1975的回答

galaxy1975galaxy1975系统架构师自动化运维专家

系统默认了将近100个fact变量,实际上我们也可以自己扩展自己需要的fact变量,扩展fact有4种方法:

1. 直接在/usr/lib/ruby/site_ruby/1.8/facter/目录中自己写一个fact脚本,看看其他的怎么写的,比划着写就行了

2. 自己随便找个目录,把你自己的ruby脚本放到哪个目录中,然后定义变量:export FACTERLIB=/mypuppet/myfact/,脚本写法同上

3. fact支持外部fact,这个定义写在了/usr/lib/ruby/site_ruby/1.8/facter/util/config.rb文件中:

@external_facts_dirs = ["/opt/puppetlabs/facter/facts.d",

                                "/etc/facter/facts.d",

                                "/etc/puppetlabs/facter/facts.d"]

吧你的fact定义放到那些目录中(可能需要自己创建),fact定义支持txt、yaml、json、sh四种方式,我比较喜欢用sh:

[root@fm-server ~]# mkdir -p /etc/facter/facts.d

[root@fm-server ~]# cd /etc/facter/facts.d/

[root@fm-server facts.d]# vi test.sh

#!/bin/bash

echo "testfact=Test"

[root@fm-server facts.d]# chmod 755 test.sh

[root@fm-server facts.d]# facter |grep test

testfact => Test

4. 用pluginsync发布,这个方法我用的很少,因为太麻烦了,我是极简主义者

对于自定义facter,大家可以参考

https://docs.puppetlabs.com/facter/3.1/fact_overview.html

IT咨询服务 · 2016-03-31
浏览2750

回答者

galaxy1975
系统架构师自动化运维专家

galaxy1975 最近回答过的问题

回答状态

  • 发布时间:2016-03-31
  • 关注会员:1 人
  • 回答浏览:2750
  • X社区推广