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.
I have not done it myself, but I did think editing databags from a recipe
was possible, and is documented here:
If you don't need the data to persist across chef runs (IE you just need to
exchange it during the course of a single run) I have used the node. run_state variable.
so something like:
recipe1.rb:
node.run_state[:my_data] = "Hello"
recipe2.rb:
puts node.run_state[:my_data]
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.
On Monday, September 9, 2013 at 8:37 PM, David Petzel wrote:
I have not done it myself, but I did think editing databags from a recipe was possible, and is documented here: About Data Bags
If you don't need the data to persist across chef runs (IE you just need to exchange it during the course of a single run) I have used the node.run_state variable.
so something like:
recipe1.rb:
node.run_state[:my_data] = "Hello"
recipe2.rb:
puts node.run_state[:my_data]
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.
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.
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.
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.