分类: 云计算
2011-10-25 11:29:43
两种方式同步自定义的fact,
方法1:
当做文件,同步到所有的服务器。
创建一个module,user_define_fact。
- class user_define_fact{
- file {"$rubysitedir/facter/idcinfo.rb":
- ensure => file,
- mode => 644,
- source => "puppet:///modules/user_define_fact/idcinfo.rb";
- }
- }
其中$rubysitedir是facter自带的fact,指向facter所存放的路径。
方法2:
使用puppet的pulgin module
步骤1、建立目录
/etc/puppet/modules/custom/lib/facter/
将rb文件放到该目录。
步骤2、
在master和client上同时打开pluginsync
[main]
pluginsync = true
idcinfo.rb内容为:
- Facter.add("idcinfo") do
- setcode do
- ip = Facter.value('ipaddress')
- idc = case ip
- when /22\.19\.15/ : "ShangHai_IDC"
- when /115\.151\.214/ : "HeNan_IDC"
- when /19\.197\.47/ : "ShenZhen_IDC"
- when /14\.42\.29/ : "BeiJing_IDC"
- else "idc info error"
- end
- idc
- end
- end
其中:
You can write a fact which uses other facts by accessing Facter.value(“somefact”) or simply Facter.somefact. The former will return nil for unknown facts, the latter will raise an exception.
查看
facter idcinfo
注:需要将rb文件放到$rubysitedir。
当前时间
- Facter.add(:current_time) do
- setcode do
- %x{/bin/date +%Y%m%d%H%M%S}.chomp
- end
- end