Architecture and Workflows

Recording data from Ansible

  1. A human (or a system, script, etc.) installs ARA and configures Ansible to use the ARA callback
  2. A human (or a system, script, etc.) executes an ansible-playbook command
  3. Ansible sends hooks for every event to callback plugins (v2_playbook_on_start, v2_runner_on_failed, etc.)
  4. The callback plugin, provided by ara-plugins, organizes the data sent by Ansible and sends it to the API client
  5. The API client, provided by ara-clients, takes care of actually sending the data to the API over HTTP or locally offline through an internal implementation
  6. The API server, provided by ara-server, receives the POST from the client, validates it and sends it to the database model backend
  7. The API server sends a response back to the client with the results
  8. The API client sends the response back to the callback with the results
  9. The callback plugin returns, ending the callback hook
  10. Ansible continues running until it is complete (back to step 2)