1.8.0 introduces a MCP server for AI agents, adds a Prometheus exporter
with a Grafana dashboard and significantly improves server performance
with new database indexes and query optimization.
This is the first release candidate.
Changes since 1.7.5:
https://codeberg.org/ansible-community/ara/compare/1.7.5...1.8.0rc1
MCP server
----------
ara 1.8.0 is the first version with an optional, standalone MCP
(Model Context Protocol) server. This allows AI agents to interact with
ARA's recorded data using specialized tools, reducing token usage and
improving troubleshooting efficiency.
It is designed to be simple and read only to give LLMs quick access to
detailed playbook results over the ara API.
The MCP server does not ship in the ara package on purpose: run it out of
the ``contrib`` source repository:
https://codeberg.org/ansible-community/ara/src/branch/master/contrib/mcp
Monitoring and Observability
----------------------------
A new Prometheus exporter is now available from the `ara prometheus` CLI to
track and alert on Ansible metrics recorded by ara.
This includes a pre-configured Grafana dashboard to visualize playbook
execution trends and performance.
Documentation on how to use them and how they work is available:
https://ara.readthedocs.io/en/latest/prometheus.html
Server performance
------------------
Significant performance improvements are landing in ara 1.8.0:
- new database indexes to hot query paths (like status and timestamps)
- resolved N+1 query issues, notably on the playbook list
- optimized expensive queries using django's prefetch_related and avoiding
unnecessary usages of distinct
There is still work to do but the web interface as well as the API should
already feel much faster and responsive in general, especially for big
playbooks or large instances.
Packaging
---------
Django 4.2 is now unsupported and the minimum version has been bumped to
Django 5.2, resulting in the minimum python version to be 3.10 up from 3.8.
Container images
----------------
Project container images have been updated to use Fedora 44 and
Alma 10 as base images.
Additionally, gunicorn was tuned to use worker threads to improve concurrency
performance:
``python3 -m gunicorn --workers=4 --threads=4 --worker-class gthread --access-logfile - --bind 0.0.0.0:8000 ara.server.wsgi'``
Users should feel free to tune these numbers by specifying a custom command to
the containers according to their host and workload.
UI
--
- Fixed an issue with task pagination when viewing a single host's results
- Added the full ara logo to "About" and information on supporting the project
Regular expressions for IGNORED_FILES
-------------------------------------
ara records playbook and role files by default while allowing filters via
ARA_IGNORED_FILES. This filtering has historically been done by supplying a
list of strings for matching:
ARA_IGNORED_FILES=vault.yaml,vault.yml
Supplying the "regex:" prefix now allows the use of flexible patterns:
ARA_IGNORED_FILES=regex:vault.ya?ml
Upgrade notes
-------------
Update the version of ara and restart the server if one is running.
The version of ara used to record playbooks should be the same one as the server.
A new SQL migration adds several indexes to improve database performance.
As always, take a backup of the database and run ``ara-manage migrate``
after updating ara where the server runs from.
The minimum version of python is now 3.10, up from 3.8.