Sha256: fb07b6354061a7325b7d48f6e32e160e3512f914c6cfe792c87129a273b1085f
Contents?: true
Size: 1.86 KB
Versions: 3
Compression:
Stored size: 1.86 KB
Contents
Given(/^a local mode chef repo with nodes '(.+?)'(?: with admins '(.+?)')?$/) do |nodelist, adminlist| # create the repo directory hierarchy %w(cookbooks clients nodes data_bags).each do |dir| create_dir dir end # create a basic knife.rb write_file 'knife.rb', <<EOF local_mode true chef_repo_path '.' chef_zero.enabled true EOF # create the admin users and capture their private key we # always create an admin called 'admin' because otherwise subsequent # steps become annoying to determine who the admin is admins = %w(admin) admins.push(adminlist.split(/,/)) if adminlist admins.flatten.each do |admin| create_admin(admin) end # add the admin key to the knife configuration append_to_file 'knife.rb', <<EOF node_name 'admin' client_key 'admin.pem' EOF # create the requested nodes nodelist.split(/,/).each do |node| create_client(node) create_node(node) end end Given(/^I create an admin named '(.+)'$/) do |admin| create_admin(admin) end Given(/^I delete clients? '(.+)' from the Chef server$/) do |nodelist| nodelist.split(/,/).each do |node| delete_client(node) end end Given(/^I regenerate the client key for the node '(.+)'$/) do |node| delete_client(node) create_client(node) end Given(/^I delete nodes? '(.+)' from the Chef server$/) do |nodelist| nodelist.split(/,/).each { |node| delete_node(node) } end def create_node(name) run_simple "knife node create #{name} -z -d -c knife.rb" end def create_admin(admin) create_client(admin, '-a') end def create_client(name, args = nil) command = "knife client create #{name} -z -d -c knife.rb #{args} >#{name}.pem" run_simple command write_file("#{name}.pem", stdout_from(command)) end def delete_client(name) run_simple "knife client delete #{name} -y -z -c knife.rb" end def delete_node(name) run_simple "knife node delete #{name} -y -z -c knife.rb" end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
chef-vault-2.6.1 | features/step_definitions/chef-repo.rb |
chef-vault-2.6.0 | features/step_definitions/chef-repo.rb |
chef-vault-2.5.0 | features/step_definitions/chef-repo.rb |