Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1069503
  • 博文数量: 186
  • 博客积分: 4939
  • 博客等级: 上校
  • 技术积分: 2075
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-08 17:15
文章分类

全部博文(186)

文章存档

2018年(1)

2017年(3)

2016年(11)

2015年(42)

2014年(21)

2013年(9)

2012年(18)

2011年(46)

2010年(35)

分类: 系统运维

2015-09-14 21:33:50

# module snmp

一般来说目录下应该有manifests /files  /templates  /providers/  facters  /functions等,但除了mainfests,其他都是optional。下边的例子虽然简单,但很有代表性。

# snmp/manifests/init.pp

class (arg1,arg2){

package {'SNMP Packages':
        name => 'net-snmp',
#        ......

        }

->   #资源依赖关系,the equivalent of require/notify。

file  {'snmpd.conf':
        path     => '/etc/snmp/snmpd.conf',
        content  => template("snmp/snmpd.conf.erb") ,
        notify   => Service['snmpd'],   # S必须大写,因为是资源关系。
        }

service  {'snmpd':
 ......

        }

}


# snmp/templates/snmpd.conf.erb, Ruby ERB template, 调用ruby。

com2sec your default banet
......

<%- if(@hostname =~ /^aws-/) -%>   # 调用hostname这个fact, 用regexp来匹配, 包含了if/elsif逻辑。

extend .1.3.6.1.4.1.2021.5000 check_up  /usr/local/scripts/check_alive.sh
<%- elsif (@hostname == "mon01") -%>
extend .1.3.6.1.4.1.2021.5000 check_puppet_update /root/check_report_update.py
<%- end -%>

阅读(1087) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~