[chef] Re: how to interchange data between different recipes on open source chef


Chronological Thread 
  • From: Daniel DeLeo < >
  • To:
  • Subject: [chef] Re: how to interchange data between different recipes on open source chef
  • Date: Tue, 10 Sep 2013 07:58:59 -0700


On Monday, September 9, 2013 at 8:12 PM, Sam Su wrote:

Hi,

I have two recipes my open source chef server and need to interchange some data between them. I wondering how to do that. If someone give a hint, it will much appreciated.

PS: I tried to write the data into a databag, but failed as below. It looks like recipes save data into a databag is allowed.

Net::HTTPServerException
------------------------
405 "Method Not Allowed"


Cookbook Trace:
---------------
  /var/chef/cache/cookbooks/mysql/recipes/server.rb:34:in `from_file'


Relevant File Content:
----------------------
/var/chef/cache/cookbooks/mysql/recipes/server.rb:

 30: 
 31:  #if Chef::DataBag.list.key?('unique_name')
 32:    new_databag = Chef::DataBag.new
 33:    new_databag.name('unique_name')
 34>>   new_databag.save
 35:  #end
 36: 

Data bags can be a little awkward. A data bag is just a container into which you can put data bag items. Since the data bag part doesn't have any data, there's nothing to update, which is what you're trying to do here. For what you're trying to do, data bag items would work.

That said, for passing in-memory data between recipes within a chef run, you're better off setting node attributes or using the node.run_state hash.

 


Thanks,
Sam


HTH,

-- 
Daniel DeLeo




Archive powered by MHonArc 2.6.16.

§