0

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

一种可用的用法是

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

有没有办法将这些命令组成一个“组”并在特定节点上调用它们?

例如:

你有 5 个不同的 nrpe:command 每个定义一个不同的检查,然后调用这些特定的检查?

我基本上是想弄清楚是否可以将某些检查/命令组合在一起,而不是在主站点.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],
  }

}
4

1 回答 1

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
}
于 2014-12-02T00:06:22.857 回答