Sha256: e0668a19f8555cde207aae75a62de20e330ef32013bb166cd425b9e73c3fd623
Contents?: true
Size: 1.87 KB
Versions: 3
Compression:
Stored size: 1.87 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_directory 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", last_command_started.stdout) 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.8.0 | features/step_definitions/chef-repo.rb |
chef-vault-2.8.0.rc1 | features/step_definitions/chef-repo.rb |
chef-vault-2.7.1 | features/step_definitions/chef-repo.rb |