You should check out spiceweasel which can automate uploading sets of chef infrastructure.
Warren Bain
http://ninefold.com
Australia’s cloud
direct: +61 2 8221 7729
mobile: +61 414 867 559
follow: http://twitter.com/thoughtcroft
Brian Akins brian@akins.org wrote:
FWIW, I wrote a simple thor job to do this. Th guts of it look something like this:
Chef::Config.from_file( < path to knife.rb >)
Dir.glob(’./data_bags/*’).select{|d| File.directory? d}.each do |data_bag_dir|
bag = File.basename data_bag_dir
begin
Chef::DataBag.load(bag)
rescue Net::HTTPServerException => e
raise e unless e.response.code == "404"
dbag = Chef::DataBag.new
dbag.namehttp://dbag.name(bag)
dbag.save
end
from_file = Chef::DataBagFromFile.new
from_file.name_args = [ bag, data_bag_dir]
from_file.run
end
On Thu, Mar 28, 2013 at 8:44 PM, Christopher Kampmeier <cpkampmeier@gmail.commailto:cpkampmeier@gmail.com> wrote:
Yes, using *.json works. Thanks for the tip.
I suppose I’ll need to dig into the --all support in the source to get a better feel for whether it is supposed to work before filing a bug.
Chris
On 3/27/13 8:52 AM, Matt Ray wrote:
Doesn’t “knife data bag from file [bag_name] *.json” work?
Thanks,
Matt Ray
Senior Technical Evangelist :: Opscode
512.731.2218tel:512.731.2218 :: matt@opscode.commailto:matt@opscode.com
mattray :: GitHub :: IRC :: Twitter
From: cpkampmeier@gmail.commailto:cpkampmeier@gmail.com [cpkampmeier@gmail.commailto:cpkampmeier@gmail.com]
Sent: Tuesday, March 26, 2013 9:46 PM
To: chef@lists.opscode.commailto:chef@lists.opscode.com
Subject: [chef] knife data bag from file with --all
I am trying to get the --all option to work:
knife data bag from file [bag_name] --all # all data bag items assuming that
data bags are in the ./data_bags/
Although I successfully used create to first define a data bag on the server
and I can use from file with a data bag and an item .json file to upload a
single item, I cannot figure out how to use the --all option to upload all
items for a specified data bag. When I run it, a blank line is returned and
nothing is uploaded.
Does anyone have a working example of the --all option?
On a related topic, what is the difference inusing knife upload to upload data
bags or other content as compared to using the knife from file options?