使用lwrp与chef-solo

时间:2014-10-23 15:54:34

标签: chef nrpe lwrp

我正在使用厨师独奏与图书管理员厨师来管理我的服务器。这是我在当地的结构:

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

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

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

```

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

 }

} override_attributes(ATTRS)

```

我现在正尝试使用LWRP provided by the cookbook设置厨师创建的支票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块中将非常感激。

谢谢!

1 个答案:

答案 0 :(得分: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]"
  }
....