Sha256: 186c741629188068b3b5ef471f951c166b2cbe64f7511cbf4db1405db380f307

Contents?: true

Size: 762 Bytes

Versions: 1

Compression:

Stored size: 762 Bytes

Contents

module ForemanAnsible
  # Run the ansible-playbook binary, depends on a valid playbook and inventory
  class RunPlaybookJob < ActiveJob::Base
    queue_as :ansible
    attr_reader :pid

    after_perform do |job|
      Foreman::Logging.
        logger('foreman_ansible').
        info('PID for playbook run for'\
             " #{job.arguments.first} #{job.arguments.second}:"\
             " #{pid}")
    end

    def perform(playbook_path, inventory_path)
      @pid = spawn("ansible-playbook -i #{inventory_path} #{playbook_path}",
                   :out => log_file,
                   :err => log_file)
    end

    private

    def log_file
      "#{::Foreman::Logging.log_directory}/"\
        "#{::Foreman::Logging.config[:filename]}"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
foreman_ansible-1.0 app/jobs/foreman_ansible/run_playbook_job.rb