Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am trying to install Redis with Chef. I would think, it's easy, since I only want to have the default configuration.

So, I add to a Berksfile:

site :opscode

cookbook 'apt'
cookbook 'node'
cookbook 'rvm', :git => "https://github.com/fnichol/chef-rvm"
cookbook 'runit'
cookbook 'redis'

Then, I run: vagrant provision

But I get this:

2013-12-11T21:18:23+00:00] DEBUG: chef_gem[rvm] is already installed - nothing to do
[2013-12-11T21:18:23+00:00] DEBUG: Loading Recipe rvm::vagrant via include_recipe
[2013-12-11T21:18:23+00:00] DEBUG: Found recipe vagrant in cookbook rvm
[2013-12-11T21:18:23+00:00] WARN: Cloning resource attributes for group[rvm] from prior resource (CHEF-3694)
[2013-12-11T21:18:23+00:00] WARN: Previous group[rvm]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/rvm/recipes/system.rb:33:in `from_file'
[2013-12-11T21:18:23+00:00] WARN: Current  group[rvm]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/rvm/recipes/vagrant.rb:34:in `from_file'
[2013-12-11T21:18:23+00:00] DEBUG: Loading Recipe redis via include_recipe
[2013-12-11T21:18:23+00:00] DEBUG: Found recipe default in cookbook redis
[2013-12-11T21:18:23+00:00] DEBUG: Loading Recipe metachef via include_recipe
[2013-12-11T21:18:23+00:00] DEBUG: Found recipe default in cookbook metachef
[2013-12-11T21:18:23+00:00] DEBUG: Loading Recipe redis::server via include_recipe
[2013-12-11T21:18:23+00:00] DEBUG: Found recipe server in cookbook redis
[2013-12-11T21:18:23+00:00] DEBUG: Loading Recipe runit via include_recipe
[2013-12-11T21:18:23+00:00] DEBUG: Found recipe default in cookbook runit
[2013-12-11T21:18:23+00:00] DEBUG: Loading Recipe metachef via include_recipe
[2013-12-11T21:18:23+00:00] DEBUG: I am not loading metachef, because I have already seen it.
[2013-12-11T21:18:23+00:00] DEBUG: Loading Recipe redis::default via include_recipe
[2013-12-11T21:18:23+00:00] DEBUG: I am not loading redis::default, because I have already seen it.
[2013-12-11T21:18:23+00:00] WARN: Cloning resource attributes for directory[/etc/redis] from prior resource (CHEF-3694)
[2013-12-11T21:18:23+00:00] WARN: Previous directory[/etc/redis]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/metachef/definitions/standard_dirs.rb:44:in `block (3 levels) in from_file'
[2013-12-11T21:18:23+00:00] WARN: Current  directory[/etc/redis]: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/metachef/definitions/standard_dirs.rb:44:in `block (3 levels) in from_file'
[2013-12-11T21:18:23+00:00] DEBUG: filtered backtrace of compile error: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/redis/recipes/server.rb:37:in `block in from_file',/tmp/vagrant-chef-1/chef-solo-1/cookbooks/redis/recipes/server.rb:36:in `from_file'
[2013-12-11T21:18:23+00:00] DEBUG: filtered backtrace of compile error: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/redis/recipes/server.rb:37:in `block in from_file',/tmp/vagrant-chef-1/chef-solo-1/cookbooks/redis/recipes/server.rb:36:in `from_file'
[2013-12-11T21:18:23+00:00] DEBUG: backtrace entry for compile error: '/tmp/vagrant-chef-1/chef-solo-1/cookbooks/redis/recipes/server.rb:37:in `block in from_file''
[2013-12-11T21:18:23+00:00] DEBUG: Line number of compile error: '37'
[2013-12-11T21:18:23+00:00] DEBUG: Re-raising exception: NoMethodError - undefined method `run_state' for Chef::Resource::RunitService
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/resource.rb:294:in `method_missing'
  /tmp/vagrant-chef-1/chef-solo-1/cookbooks/redis/recipes/server.rb:37:in `block in from_file'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/dsl/recipe.rb:71:in `instance_eval'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/dsl/recipe.rb:71:in `method_missing'
  /tmp/vagrant-chef-1/chef-solo-1/cookbooks/redis/recipes/server.rb:36:in `from_file'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/mixin/from_file.rb:30:in `instance_eval'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/mixin/from_file.rb:30:in `from_file'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/cookbook_version.rb:237:in `load_recipe'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/run_context.rb:151:in `load_recipe'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/run_context/cookbook_compiler.rb:139:in `block in compile_recipes'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/run_context/cookbook_compiler.rb:137:in `each'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/run_context/cookbook_compiler.rb:137:in `compile_recipes'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/run_context/cookbook_compiler.rb:74:in `compile'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/run_context.rb:86:in `load'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/client.rb:250:in `setup_run_context'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/client.rb:498:in `do_run'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/client.rb:199:in `block in run'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/client.rb:193:in `fork'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/client.rb:193:in `run'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/application.rb:208:in `run_chef_client'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/application/solo.rb:221:in `block in run_application'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/application/solo.rb:213:in `loop'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/application/solo.rb:213:in `run_application'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/application.rb:66:in `run'
  /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/bin/chef-solo:25:in `'
  /opt/chef/bin/chef-solo:23:in `load'
  /opt/chef/bin/chef-solo:23:in `'
[2013-12-11T21:18:23+00:00] ERROR: Running exception handlers
[2013-12-11T21:18:23+00:00] ERROR: Exception handlers complete
[2013-12-11T21:18:23+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2013-12-11T21:18:23+00:00] DEBUG: NoMethodError: undefined method `run_state' for Chef::Resource::RunitService
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/resource.rb:294:in `method_missing'
/tmp/vagrant-chef-1/chef-solo-1/cookbooks/redis/recipes/server.rb:37:in `block in from_file'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/dsl/recipe.rb:71:in `instance_eval'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/dsl/recipe.rb:71:in `method_missing'
/tmp/vagrant-chef-1/chef-solo-1/cookbooks/redis/recipes/server.rb:36:in `from_file'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/mixin/from_file.rb:30:in `instance_eval'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/mixin/from_file.rb:30:in `from_file'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/cookbook_version.rb:237:in `load_recipe'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/run_context.rb:151:in `load_recipe'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/run_context/cookbook_compiler.rb:139:in `block in compile_recipes'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/run_context/cookbook_compiler.rb:137:in `each'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/run_context/cookbook_compiler.rb:137:in `compile_recipes'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/run_context/cookbook_compiler.rb:74:in `compile'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/run_context.rb:86:in `load'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/client.rb:250:in `setup_run_context'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/client.rb:498:in `do_run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/client.rb:199:in `block in run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/client.rb:193:in `fork'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/client.rb:193:in `run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/application.rb:208:in `run_chef_client'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/application/solo.rb:221:in `block in run_application'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/application/solo.rb:213:in `loop'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/application/solo.rb:213:in `run_application'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/lib/chef/application.rb:66:in `run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.8.2/bin/chef-solo:25:in `'
/opt/chef/bin/chef-solo:23:in `load'
/opt/chef/bin/chef-solo:23:in `'
[2013-12-11T21:18:23+00:00] ERROR: undefined method `run_state' for Chef::Resource::RunitService

================================================================================
Recipe Compile Error in /tmp/vagrant-chef-1/chef-solo-1/cookbooks/redis/recipes/server.rb
================================================================================


NoMethodError
-------------
undefined method `run_state' for Chef::Resource::RunitService


Cookbook Trace:
---------------
  /tmp/vagrant-chef-1/chef-solo-1/cookbooks/redis/recipes/server.rb:37:in `block in from_file'
  /tmp/vagrant-chef-1/chef-solo-1/cookbooks/redis/recipes/server.rb:36:in `from_file'


Relevant File Content:
----------------------
/tmp/vagrant-chef-1/chef-solo-1/cookbooks/redis/recipes/server.rb:

 30:  standard_dirs('redis.server') do
 31:    directories   :conf_dir, :log_dir, :data_dir
 32:  end
 33:
 34:  kill_old_service('redis-server'){ only_if{ File.exists?("/etc/init.d/redis-server") } }
 35:
 36:  runit_service "redis_server" do
 37>>   run_state     node[:redis][:server][:run_state]
 38:    options       node[:redis]
 39:  end
 40:
 41:  announce(:redis, :server,
 42:    :port => node[:redis][:server][:port])
 43:


[2013-12-11T21:18:21+00:00] INFO: Forking chef instance to converge...
[2013-12-11T21:18:21+00:00] DEBUG: Fork successful. Waiting for new chef pid: 28235
[2013-12-11T21:18:23+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

EDIT -

This is the runlist:

  config.vm.provision :chef_solo do |chef|
    chef.cookbooks_path = "./cookbooks"
    #chef.roles_path = "../my-recipes/roles"
    #chef.data_bags_path = "../my-recipes/data_bags"
    chef.add_recipe "runit"
    chef.add_recipe "rvm::system"
    chef.add_recipe "rvm::vagrant"
    chef.add_recipe "redis::install_from_release"
    chef.add_recipe "redis::client"
    # chef.add_recipe "node"
    # chef.add_role "web"

    # You may also specify custom JSON attributes:
    chef.json = { 
      'rvm' => {
         'rubies' => ["2.0.0-p353"],
         'default_ruby' => "2.0.0-p353",
         :vagrant => { :system_chef_solo => "/opt/chef/bin/chef-solo" }
      }
    }

    chef.log_level = :debug 
  end


share|improve this question
1  
You might want to look at another cookbook, 'redisio' => github.com/brianbianco/redisio/tree/2.0.0_wip I think it's a bit simpler right now. –  Mike Fiedler Dec 21 '13 at 4:18

2 Answers 2

up vote 3 down vote accepted

Put "runit" cookbook on top of your runlist and try again.

share|improve this answer

Investigating the cookbook, I found:

recipe           "redis::default",                     "Base configuration for redis"
recipe           "redis::install_from_package",        "Install From Ubuntu Package -- easy but lags in version"
recipe           "redis::install_from_release",        "Install From Release"
recipe           "redis::server",                      "Redis server with runit service"
recipe           "redis::client",  

When using: redis::install_from_package I get something working

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.