Querying ARA from inside playbooks

ara_api

ARA comes with a built-in Ansible lookup plugin called ara_api that can be made available by configuring Ansible with the ANSIBLE_LOOKUP_PLUGINS environment variable or the lookup_plugins setting in an ansible.cfg file.

There is no other configuration required for this lookup plugin to work since it retrieves necessary settings (such as API server endpoint and authentication) from the callback plugin.

The ara_api lookup plugin can be used to do free-form queries to the ARA API while the playbook is running:

- name: Test playbook
  hosts: localhost
  tasks:
    - name: Get list of playbooks
      set_fact:
        playbooks: "{{ lookup('ara_api', '/api/v1/playbooks') }}"

ara_playbook

The ara_playbook Ansible action plugin can be enabled by configuring Ansible with the ANSIBLE_ACTION_PLUGINS environment variable or the action_plugins setting in an ansible.cfg file.

There is no other configuration required for this action plugin to work since it retrieves necessary settings (such as API server endpoint and authentication) from the callback plugin.

The ara_playbook action plugin can be used in combination with ara_api to query the API about the current playbook:

- name: Test playbook
  hosts: localhost
  tasks:
    - name: Get the currently running playbook
      ara_playbook:
      register: playbook_query

    - name: Get failed tasks for the currently running playbook
      vars:
        playbook_id: "{{ playbook_query.playbook.id | string }}"
      set_fact:
        tasks: "{{ lookup('ara_api', '/api/v1/tasks?status=failed&playbook=' + playbook_id) }}"