Skip to content

Instantly share code, notes, and snippets.

@Atalanta
Created February 11, 2011 21:54
Show Gist options
  • Select an option

  • Save Atalanta/823114 to your computer and use it in GitHub Desktop.

Select an option

Save Atalanta/823114 to your computer and use it in GitHub Desktop.
master ✗ % cat short_monsters
baku
bugbear
curst
dryad
floater
goblyn
hobgoblin
khargra
magen
murderoid
parasite
razorvine
shadowperson
squealer
tressym
wemic
master ✗ % cat monster.rb
File.foreach('short_monsters') do |monster|
item = {
"id" => monster,
"status" => "available"
}
databag_item = Chef::DataBagItem.new
databag_item.data_bag("hostnames")
databag_item.raw_data = item
databag_item.save
end
master ✗ % knife exec monster.rb 1 ↵
master ✗ % knife data bag show hostnames
[
"baku",
"bugbear",
"curst",
"dryad",
"floater",
"goblyn",
"hobgoblin",
"khargra",
"magen",
"monsters",
"murderoid",
"parasite",
"razorvine",
"shadowperson",
"squealer",
"tressym",
"wemic"
]
master ✗ % knife data bag show hostnames baku
{
"id": "baku",
"status": "available"
}
% knife exec -E "puts search(:hostnames, 'NOT status:TAKEN').map { |a| a['id']}.choice"
murderoid
master ✗ % knife exec -E "puts search(:hostnames, 'NOT status:TAKEN').map { |a| a['id']}.choice"
goblyn
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment