- From: Brian Akins <
>
- To: chef <
>
- Subject: [chef] Data bag implementation for chef-solo
- Date: Tue, 1 Feb 2011 10:42:05 -0500
We often use chef-solo for quick testing, etc. This is our extremely simple implementation of data bags for chef-solo. Add "data_bag_path /some/dir/data_bags" to your solo.rb and add this into your libraries:
if Chef::Config[:solo]
class Chef
module Mixin
module Language
def data_bag(bag)
@solo_data_bags = {} if @solo_data_bags.nil?
unless @solo_data_bags[bag]
@solo_data_bags[bag] = {}
Dir.glob(File.join(Chef::Config[:data_bag_path], bag,
"*.json")).each do |f|
item = JSON.parse(IO.read(f))
@solo_data_bags[bag][item['id']] = item
end
end
@solo_data_bags[bag].keys
end
def data_bag_item(bag, item)
data_bag(bag) unless (
&& @solo_data_bags[bag])
@solo_data_bags[bag][item]
end
end
end
end
end
I'm an old school C guy and I blame most of the code on a co-worker ;) Use at your own risk, will probably eat your hard drive, etc.
--Brian
- [chef] Data bag implementation for chef-solo, Brian Akins, 02/01/2011
Archive powered by MHonArc 2.6.16.