1

我正在使用 chef-solo 和 librarian-chef 来管理我的服务器。这是我在本地的结构:

Cheffile Cheffile.lock cookbooks data_bags Gemfile Gemfile.lock .git .gitignore nodes README.md roles tmp

目录中的每个节点nodes/都定义了一个角色,并且我在角色中添加了大部分通用属性。

我已将nrpe 食谱包含在其中一个角色中,它适用于通用部分:

```

"apache" => {

    "timeout" => 5,
    "keep_alive" => 'On',
    "max_keep_alive_requests" => 100,
    "keep_alive_timeout" => 5,

    "prefork" => {
        "start_servers" => 5,
        "min_spare_servers" => 5,
        "max_spare_servers" => 10,
        "max_clients" => 100,
        "max_requests_per_child" => 1000
    }
},
"nrpe" => {
    "server_port" => 5666,
    "connection_timeout" => 300,
    "dont_blame_nrpe" => 1,
    "command_timeout" => 60,
    "allowed_hosts" => ["10.1.1.10,10.11.1.11"],

 }

} 覆盖属性(属性)

```

我现在正在尝试使用食谱提供的 LWRP在厨师创建的 nrpe.cfg 中设置检查

我能想到的任何语法似乎都不起作用。要么以语法错误退出,knife solo bootstrap nodename要么完成,但没有在节点上添加任何内容。有关如何添加此内容的任何见解:

nagios_nrpecheck 'check_load' do command "#{node['nagios']['plugin_dir']}/check_load" warning_condition '6' critical_condition '10' action :add end

nrpe上面的角色文件中的块将不胜感激。

谢谢!

4

1 回答 1

2

您不能将 LWRP 添加到角色的运行列表中。您必须将 LWRP 声明包装在一个配方中,然后将该配方添加到角色的运行列表或节点运行列表中。

my_wrapper_cookbook/recipes/nrpecheck.rb

nagios_nrpecheck 'check_load' do
  command "#{node['nagios']['plugin_dir']}/check_load"
  warning_condition '6'
  critical_condition '10'
  action :add
end

role

....
  run_list: {
    "recipe[my_wrapper_cookbook::nrpecheck]"
  }
....
于 2014-10-23T16:36:40.630 回答