[chef] how to debug errors


Chronological Thread 
  • From: Ran Tavory < >
  • To:
  • Subject: [chef] how to debug errors
  • Date: Mon, 13 Sep 2010 13:19:22 +0300
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type; b=F3RMLaVKGVtJcZ/ZB/nl71EgHcUJW/MTcVvKVtHTW42yxl9crnbfg0mJwO4k9TLtJ/ ATMp8minTyamMP7mI07tP+KAifzKPOfZy744RqsuORscyBy0lTYR9JgYSQ6sRwQszw8c Uxz8jLl6tNUAlOoQ3W9MZHAfQ5LXkNrX21Q1Y=

I'm only learning chef now and find it hard to develop and debug my recipe errors.
All I can see are verbose stack traces but it's usually quite hard to dig the real error from the traces. The example below does not, as far as I can tell hint any specific error in my code (and there are obviously errors...) so I'm left with g-old trial and error.
I was wondering what's the best approach to advance faster while leaning developing. I've made myself familiar with chef's basics and ran a few tutorials but when writing my own first recipe I'm having hard time bootstrapping.

The error below indicates some sort of bash error in a recipe although I'm not sure exactly what. I suppose the following code uses the wrong syntax but the real question isn't about the syntax it's about finding an effective way to write-compile-test.

 17 bash "install_app" do
 18   user "root"
 19   code <<-EOH
 20   mkdir -p #{node[:wars]}
 21   cp #{node[:war_src]} #{node[:war_dest]}
 22   EOH
 23 end


imageserver]# chef-solo -c ~/solo.rb -j ~/node.json 
[Mon, 13 Sep 2010 11:52:06 +0200] INFO: Setting the run_list to ["recipe[imageserver]"] from JSON
[Mon, 13 Sep 2010 11:52:06 +0200] INFO: Starting Chef Run (Version 0.9.8)
[Mon, 13 Sep 2010 11:52:06 +0200] ERROR: bash[install_app] (/tmp/chef-solo/cookbooks/imageserver/recipes/default.rb:17:in `from_file') had an error:
"bash" "/tmp/chef-script.17504.0" returned 1, expected 0
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/mixin/command.rb:184:in `handle_command_failures'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/mixin/command.rb:131:in `run_command'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/provider/execute.rb:49:in `action_run'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/provider/script.rb:33:in `action_run'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:51:in `send'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:51:in `run_action'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:109:in `converge'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:108:in `each'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:108:in `converge'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/resource_collection.rb:94:in `execute_each_resource'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/resource_collection.rb:92:in `execute_each_resource'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:82:in `converge'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/client.rb:304:in `converge'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/client.rb:87:in `run'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/application/solo.rb:191:in `run_application'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/application/solo.rb:181:in `loop'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/application/solo.rb:181:in `run_application'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/application.rb:62:in `run'
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/chef-solo:25
/usr/bin/chef-solo:19:in `load'
/usr/bin/chef-solo:19
[Mon, 13 Sep 2010 11:52:06 +0200] ERROR: Running exception handlers
[Mon, 13 Sep 2010 11:52:06 +0200] ERROR: Exception handlers complete
[Mon, 13 Sep 2010 11:52:06 +0200] ERROR: Re-raising exception: Chef::Exceptions::Exec - "bash" "/tmp/chef-script.17504.0" returned 1, expected 0
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/mixin/command.rb:184:in `handle_command_failures'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/mixin/command.rb:131:in `run_command'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/provider/execute.rb:49:in `action_run'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/provider/script.rb:33:in `action_run'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:51:in `send'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:51:in `run_action'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:109:in `converge'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:108:in `each'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:108:in `converge'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/resource_collection.rb:94:in `execute_each_resource'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/resource_collection.rb:92:in `execute_each_resource'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:82:in `converge'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/client.rb:304:in `converge'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/client.rb:87:in `run'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/application/solo.rb:191:in `run_application'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/application/solo.rb:181:in `loop'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/application/solo.rb:181:in `run_application'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/application.rb:62:in `run'
  /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/chef-solo:25
  /usr/bin/chef-solo:19:in `load'
  /usr/bin/chef-solo:19
/usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/mixin/command.rb:184:in `handle_command_failures': "bash" "/tmp/chef-script.17504.0" returned 1, expected 0 (Chef::Exceptions::Exec)
        from /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/mixin/command.rb:131:in `run_command'
        from /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/provider/execute.rb:49:in `action_run'
        from /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/provider/script.rb:33:in `action_run'
        from /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:51:in `send'
        from /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:51:in `run_action'
        from /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:109:in `converge'
        from /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:108:in `each'
        from /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/runner.rb:108:in `converge'
         ... 13 levels...
        from /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/../lib/chef/application.rb:62:in `run'
        from /usr/lib/ruby/gems/1.8/gems/chef-0.9.8/bin/chef-solo:25
        from /usr/bin/chef-solo:19:in `load'
        from /usr/bin/chef-solo:19


thanks
--
/Ran




Archive powered by MHonArc 2.6.16.

§