木偶;打电话给另一个.pp

时间:2014-12-01 21:04:25

标签: puppet nagios nrpe

所以我使用https://forge.puppetlabs.com/pdxcat/nrpe模块试图找出跨主机的NRPE自动化。

其中一个可用的用法是

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],
  }

}

1 个答案:

答案 0 :(得分:1)

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

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

假设您使用了manifest = $confdir/manifests内的清单目录(puppet.conf),只需创建一个$confdir/manifests/minimal.pp(或$ confdir / manifests / nrpe_config.pp或您想要的任何类名称)使用),内容如下:

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

然后在你的节点定义中调用这个类(让我们在$ confdir / manifests / my_node.pp中说):

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