Puppet 傀儡;给另一个人打电话

Puppet 傀儡;给另一个人打电话,puppet,nagios,nrpe,Puppet,Nagios,Nrpe,因此,我正在使用该模块尝试了解跨主机的NRPE自动化 可用的用法之一是 nrpe::command { 'check_users': ensure => present, command => 'check_users -w 5 -c 10'; } 是否需要将这些命令组成一个“组”,并在特定节点上调用它们 例如: 您有5个不同的nrpe:命令,每个命令定义一个不同的检查,然后调用这些特定的检查 我基本上是想弄清楚是否可以将某些检查/命令组合在一起,

因此,我正在使用该模块尝试了解跨主机的NRPE自动化

可用的用法之一是

nrpe::command {
    'check_users':
      ensure  => present,
      command => 'check_users -w 5 -c 10';
}
是否需要将这些命令组成一个“组”,并在特定节点上调用它们

例如:

您有5个不同的nrpe:命令,每个命令定义一个不同的检查,然后调用这些特定的检查

我基本上是想弄清楚是否可以将某些检查/命令组合在一起,而不是在main sites.pp文件中设置大量文本。这还允许跨多个节点定制模板/配置

谢谢

编辑: 这是一个命令,以及当使用“check_users”部分调用它时应该执行的操作。如果我可以有一个带有一组“nrpe:command”的类,并通过模块调用该类,那么它应该可以工作。不过,对不起。在puppet还是新的。再次感谢

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

}

你说的是什么版本?在puppet的最新版本中,不推荐使用继承,因此不应该使用它

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

假设您正在
puppet.conf
中使用清单目录(
manifest=$confdir/manifests
),只需使用以下内容创建一个
$confdir/manifests/minimal.pp
(或$confdir/manifests/nrpe\u config.pp)即可:

class minimal {
  nrpe::command { 'check_users':
    ensure  => present,
    command => 'check_users -w 5 -c 10',
  }
}
然后在节点定义中调用这个类(比如$confdir/manifests/my_node.pp):


puppet支持“(OO)继承”和“注入”。所以,是的,有一些方法可以对主机进行分组。知道将使用什么语法来调用注入吗?是的,尽管编写站点本地模块来保存这些类会更简洁。在
清单
目录中乱丢这样的定义是没有好处的。此处的
.pp
文件应仅包含
节点
块和全局变量以及应应用于所有节点但不属于某个类的资源。(与其使用全局资源,不如在site local或Forge模块中为类提供
include
语句,使这些语句适用于所有节点。)这种方法很有效——它实际上并没有应用我安装的模块的“NRPE::COMMAND”部分。我觉得我必须在我安装的NRPE模块中创建这些特定的类,并从模块中调用它们,以便某些语法(如NRPE::command)实际按照模块的设计方式工作。
node 'my_node.foo.bar' {
  include minimal
}