2013-04-06 3 views
0

어쩌면 누군가가 같은 상황에 직면 redissio 오류요리사와

우리는 요리사 기본 조리법을 넣어하려고 레디 스에 깨끗한 예는

include_recipe

"redisio이 :: 설치"를 가지고 있습니다

나는 다음과 같은 오류가 요리하다 때 환경 AWS ec2.micro 우분투 12.04 내가 오류

================================================================================ 
Recipe Compile Error in /tmp/chef-solo/cookbooks/main/recipes/default.rb 
================================================================================ 


NoMethodError 
------------- 
undefined method `[]' for nil:NilClass 


Cookbook Trace: 
--------------- 
    /tmp/chef-solo/cookbooks/ulimit/recipes/default.rb:13:in `block in from_file' 
    /tmp/chef-solo/cookbooks/ulimit/recipes/default.rb:12:in `from_file' 
    /tmp/chef-solo/cookbooks/redisio/recipes/install.rb:20:in `from_file' 
    /tmp/chef-solo/cookbooks/main/recipes/default.rb:11:in `from_file' 


Relevant File Content: 
---------------------- 
/tmp/chef-solo/cookbooks/ulimit/recipes/default.rb: 

    6: # All rights reserved - Do Not Redistribute 
    7: # 
    8: ulimit = node['ulimit'] 
    9: 
10: case node[:platform] 
11: when "debian", "ubuntu" 
12:  template "/etc/pam.d/su" do 
13>>  cookbook ulimit['pam_su_template_cookbook'] 
14:  end 
15: end 
16: 


[2013-04-06T14:09:50+00:00] ERROR: Running exception handlers 
[2013-04-06T14:09:50+00:00] ERROR: Exception handlers complete 
Chef Client failed. 0 resources updated 
[2013-04-06T14:09:50+00:00] FATAL: Stacktrace dumped to /tmp/chef-solo/chef-stacktrace.out 
[2013-04-06T14:09:50+00:00] FATAL: NoMethodError: undefined method `[]' for nil:NilClass 
ERROR: RuntimeError: chef-solo failed. See output above. 
0123을받을 요리를 실행

리소스 https://github.com/Piom/redis-chef.git

답변

1

이 문제도 발생했습니다. 나는 그것을 해결하는 한 가지 방법이 있지만 나는 또한 요리사를 들여다보기 시작했다.

문제는 redisio가 ulimit에 따라 달라지며 ulimit에 대한 속성이 정의되어 있지 않을 때 처리하지 못하는 것처럼 보입니다.

ulimit = node['ulimit'] 

속성의 해시를 얻으려고 시도하지만 무효화됩니다. 따라서 어떤 특성을 정의하면 효과가 있습니다.

레시피를 다운로드 한 이후 업데이트 된 버전이있을 수 있습니다. ulimit/attributes/default.rb이 아니라면 default['ulimit']['pam_su_template_cookbook'] = nil이 있는데 그것은 나를 위해 일했습니다.

ulimit 리소스를 제한 할 수 있습니다. 나는 그것이 redis 리소스를 제한하는 데 사용될 수 있다고 생각합니다. (다시 저는 새로운 것입니다.) 따라서 더 좋은 방법은 ulimit을 구성하고 무결성보다는 올바른 속성을 설정하는 방법을 나타내는 것입니다.

관련 문제