def execute
      Trooper.logger.debug "Configuration\n#{config}"
      Trooper.logger.strategy strategy.description
      successful = nil
      
      hosts.each do |host|
        begin
          Trooper.logger.info "\e[4mRunning on #{host}\n"

          list.each do |strategy_name, type, name|
            # strategy_name, type, name
            commands, options = build_commands strategy_name, type, name
            runner_execute! host, commands, options if commands
          end

          successful = true
          Trooper.logger.success "\e[4mAll Actions Completed\n"
        rescue Exception => e
          Trooper.logger.error "#{e.class.to_s} : #{e.message}\n\n#{e.backtrace.join("\n")}"

          successful = false
          break #stop commands running on other servers
        ensure
          host.close
        end
      end
      
      successful
    end
def execute
      Trooper.logger.debug "Configuration\n#{config}"
      Trooper.logger.strategy strategy.description
      successful = nil
      
      hosts.each do |host|
        begin
          Trooper.logger.info "\e[4mRunning on #{host}\n"

          list.each do |strategy_name, type, name|
            # strategy_name, type, name
            commands, options = build_commands strategy_name, type, name
            runner_execute! host, commands, options if commands
          end

          successful = true
          Trooper.logger.success "\e[4mAll Actions Completed\n"
        rescue Exception => e
          Trooper.logger.error "#{e.class.to_s} : #{e.message}\n\n#{e.backtrace.join("\n")}"

          successful = false
          break #stop commands running on other servers
        ensure
          host.close
        end
      end
      
      successful
    end
Public: initialize a new Runner.

 strategy - A Trooper::Strategy object to execute.
 config - A Trooper::Configuration object to use for deployment.

 Examples

   Runner.new(<Strategy>, <Configuration>) # => <Runner>

 Returns a new Runner object.
 Public: Executes the strategy across mutiple hosts logging output as it goes.

 Examples

   @runner.execute # => true

 Returns a boolean.