2014-12-01 40 views
0

因此,我使用https://forge.puppetlabs.com/pdxcat/nrpe模块试图找出跨主机的NRPE自动化。木偶;请拨打另一个.pp

一个可用的用法是

nrpe::command { 
    'check_users': 
     ensure => present, 
     command => 'check_users -w 5 -c 10'; 
} 

反正有做这些命令的“组”,并叫他们的特定节点上?

例如:

你有5种不同的NRPE:命令每个限定了不同的检查,然后调用这些特定检查?

我基本上试图找出是否可以将某些检查/命令组合在一起,而不是在主sites.pp文件中设置大量文本。这也将允许在众多节点上定制模板/配置。

谢谢!

编辑: 这是命令,它用'check_users'部分调用时应该做什么。如果我可以用一组“nrpe:command”来创建一个类,然后通过该模块调用该类,它应该可以工作。不过,对不起。在傀儡仍然是新的。再次感谢。

define nrpe::command (
    $command, 
    $ensure  = present, 
    $include_dir = $nrpe::params::nrpe_include_dir, 
    $libdir  = $nrpe::params::libdir, 
    $package_name = $nrpe::params::nrpe_packages, 
    $service_name = $nrpe::params::nrpe_service, 
    $file_group = $nrpe::params::nrpe_files_group, 
) { 

    file { "${include_dir}/${title}.cfg": 
    ensure => $ensure, 
    content => template('nrpe/command.cfg.erb'), 
    owner => root, 
    group => $file_group, 
    mode => '0644', 
    require => Package[$package_name], 
    notify => Service[$service_name], 
    } 

} 
+0

木偶支持 “(OO)继承” 和 “注射”。所以是的,有办法将主机分组。 – 2014-12-01 21:17:32

+0

任何想法将用什么语法来调用注射? – firas 2014-12-01 23:01:12

回答

1

你说什么版本?在傀儡最新版本中,继承是不推荐的,那么你不应该使用它。

最简单的方法是使用“基线”。

假设你正在使用的清单目录(manifest = $confdir/manifestspuppet.conf内),只需创建与下面的内容$confdir/manifests/minimal.pp(您想使用或$ confdir /舱单/ nrpe_config.pp或任何类名):

class minimal { 
    nrpe::command { 'check_users': 
    ensure => present, 
    command => 'check_users -w 5 -c 10', 
    } 
} 

然后就打电话给你的节点定义里面这个类(让我们在$ confdir /舱单/ my_node.pp说):

node 'my_node.foo.bar' { 
    include minimal 
} 
+0

是的,尽管编写站点本地模块来容纳这样的类会更清洁。用这样的定义乱扔你的'manifests'目录没有任何好处。这里的'.pp'文件应该只包含应该应用于所有节点的节点块和全局变量以及资源,但不属于类。 (而不是全局资源,应该在站点本地或Forge模块中使用'include'语句,这些语句适用于所有节点。) – 2014-12-02 10:14:32

+0

这种工作 - 它实际上并没有应用“NRPE :: COMMAND”部分我已安装的模块。我觉得我必须在我已经安装的NRPE模块中创建这些特定的类,并从模块内部调用它们,以便某些语法(如NRPE :: command)实际上以模块设计的方式工作。 – firas 2014-12-02 15:29:39