class Ronin::Chef
Public Class Methods
new()
click to toggle source
# File lib/ronin/chef.rb, line 24 def initialize @run_list = "#{Ronin::Config[:artifact_path]}/ronin.json" @solo_conf = "#{Ronin::Config[:artifact_path]}/ronin-chef-solo.rb" @recipes = Ronin::RunList.new.artifacts end
Public Instance Methods
clean_up()
click to toggle source
# File lib/ronin/chef.rb, line 63 def clean_up Ronin::Log.info("Cleaning up Chef run list at #{@run_list}.") File.delete(@run_list) Ronin::Log.info("Cleaning up Chef-Solo config at #{@solo_conf}.") File.delete(@solo_conf) end
create_run_list()
click to toggle source
# File lib/ronin/chef.rb, line 30 def create_run_list Ronin::Log.info("Building Chef run list at #{@run_list}.") @rl = [] @rl_obj = {} @recipes.each do |r| @rl << "recipe[#{r}]" Ronin::Log.info("Adding recipe '#{r}' to run list.") end @rl_obj['run_list'] = @rl File.open(@run_list, "w") do |f| f.write(@rl_obj.to_json) end end
create_solo_conf()
click to toggle source
# File lib/ronin/chef.rb, line 55 def create_solo_conf @solo_config = "file_cache_path '/var/tmp/ronin/chef-solo'\ncookbook_path '#{Ronin::Config[:artifact_path]}'\n" File.open(@solo_conf, "w") do |f| f.write(@solo_config) end end
run()
click to toggle source
# File lib/ronin/chef.rb, line 46 def run self.create_run_list self.create_solo_conf Ronin::Log.info("Running Chef, logging to #{Ronin::Config[:interpreter_log_path]}/ronin-chef.log.") @cmd = Mixlib::ShellOut.new("#{Ronin::Util.find_cmd("chef-solo")} --logfile #{Ronin::Config[:log_path]}/ronin-chef.log --config #{@solo_conf} --json-attributes #{@run_list}") @cmd.run_command self.clean_up end