2014-10-01 23 views
1

无法使用redisio食谱安装redis。安装sensu服务器,sensu :: redis cookbook试图安装redis,并在出现以下错误时失败。 这里什么都没有了在安装sensu服务器时安装使用主厨食谱配方[sensu :: redis]的redis时出错

Chef::Exceptions::ResourceNotFound 
---------------------------------- 
Cannot find a resource matching service[redis6379] (did you define it first?) 


Cookbook Trace: 
--------------- 
    /var/chef/cache/cookbooks/redisio/recipes/enable.rb:25:in `block in from_file' 
    /var/chef/cache/cookbooks/redisio/recipes/enable.rb:23:in `each' 
    /var/chef/cache/cookbooks/redisio/recipes/enable.rb:23:in `from_file' 
    /var/chef/cache/cookbooks/sensu/recipes/redis.rb:23:in `from_file' 


Relevant File Content: 
---------------------- 
/var/chef/cache/cookbooks/redisio/recipes/enable.rb: 

18: # limitations under the License. 
19: # 
20: 
21: redis = node['redisio'] 
22: 
23: redis['servers'].each do |current_server| 
24: server_name = current_server["name"] || current_server["port"] 
25>> resource = resources("service[redis#{server_name}]") 
26: resource.action Array(resource.action) 
27: resource.action << :start 
28: resource.action << :enable 
29: end 
30: 

回答

5

我遇到了同样的问题。我不确定这是否是同一原因,但我只是分享我的解决方案,并希望它会有所帮助。

我的问题是,当我升级redisio回购,但没有升级我的运行列表,在我的情况,redis.json

我的旧的运行列表的样子:

"recipe[redisio::install]", 
"recipe[redisio::enable]", 

我的新的运行列表看起来像

"recipe[redisio]", 
"recipe[redisio::enable]", 

从错误我们的问题似乎在enable.rb。看起来recipe[redisio]会为启用阶段正确设置缺失的资源。我希望只要修改你的运行列表就可以修复你的错误。

P.S.我还必须在我的运行列表中添加

"install_dir" : "/opt/redis/", 

。看来下载安装步骤会跳过空的install_dir

+0

Thanyou Liyan。我知道这本食谱的新版本遇到了这个问题。所以我把它改为1. 7. 1,它为我工作。看似sensu现在正在更新,并有相同的修复。 – Saurav 2014-10-07 21:51:29

+0

谢谢@Liyan。为我工作。没有必要添加install_dir寿。 – user1052313 2014-10-14 15:57:37

+0

将'recipe [redisio :: install]'变更为'recipe [redisio]'对我来说已经足够了,感谢您拯救我的理智@Liyan! – spume 2016-08-26 11:21:03