module SousChef::NodeTaskHelpers
Public Instance Methods
batch_tasks(name, tasks)
click to toggle source
# File lib/helpers/node_task_helpers.rb, line 45 def batch_tasks(name, tasks) task_names = tasks.map(&:name) desc "Run knife solo prepare for all #{name} nodes" multitask :prepare => filter_tasks(task_names, 'prepare') desc "Run knife solo cook for all #{name} nodes" multitask :cook => filter_tasks(task_names, 'cook') desc "Run knife solo bootstrap for all #{name} nodes" multitask :bootstrap => filter_tasks(task_names, 'bootstrap') desc "Run knife solo clean for all #{name} nodes" multitask :clean => filter_tasks(task_names, 'clean') end
bootstrap_task(node)
click to toggle source
# File lib/helpers/node_task_helpers.rb, line 31 def bootstrap_task(node) desc "Run knife solo bootstrap for #{node.name}" task :bootstrap do run_knife 'bootstrap', node end end
build_node_task(node)
click to toggle source
# File lib/helpers/node_task_helpers.rb, line 8 def build_node_task(node) namespace node.name do prepare_task(node) cook_task(node) bootstrap_task(node) clean_task(node) end end
clean_task(node)
click to toggle source
# File lib/helpers/node_task_helpers.rb, line 17 def clean_task(node) desc "Run knife solo clean for #{node.name}" task :clean do run_knife 'clean', node end end
cook_task(node)
click to toggle source
# File lib/helpers/node_task_helpers.rb, line 24 def cook_task(node) desc "Run knife solo cook for #{node.name}" task :cook do run_knife 'cook', node end end
filter_tasks(tasks_names, desired_task)
click to toggle source
# File lib/helpers/node_task_helpers.rb, line 61 def filter_tasks(tasks_names, desired_task) tasks_names.clone.keep_if { |task_name| task_name.include? desired_task } end
prepare_task(node)
click to toggle source
# File lib/helpers/node_task_helpers.rb, line 38 def prepare_task(node) desc "Run knife solo prepare for #{node.name}" task :prepare do run_knife 'prepare', node end end
run(command)
click to toggle source
# File lib/helpers/node_task_helpers.rb, line 65 def run(command) puts "Running: #{command}" system command raise "Failure! #{$?}" if $? != 0 end
run_knife(command, node)
click to toggle source
# File lib/helpers/node_task_helpers.rb, line 71 def run_knife(command, node) options = "-F #{node.ssh_config_path} #{node.hostname}" options = "#{options} -N #{node.name} #{node.config}" unless %w[clean].include? command run "knife solo #{command} #{options}" end