# 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 -%>
阅读(1139) | 评论(0) | 转发(0) |