{"id":23275,"library":"ara","title":"ARA Records Ansible (ARA)","description":"ARA (Ansible Records Ansible) is a callback plugin and web UI for recording and browsing Ansible playbook runs. It captures detailed data about tasks, plays, and hosts. The current version is 1.7.5. Release is on-demand, typically monthly.","status":"active","version":"1.7.5","language":"python","source_language":"en","source_url":"https://github.com/ansible-community/ara","tags":["ansible","monitoring","reporting","devops","automation"],"install":[{"cmd":"pip install ara","lang":"bash","label":"latest stable"},{"cmd":"pip install ara[server]","lang":"bash","label":"with server dependencies"}],"dependencies":[{"reason":"ARA is an Ansible callback plugin; Ansible must be installed.","package":"ansible","optional":false}],"imports":[{"note":"Direct import of 'ara' will not load the callback plugins; use setup_callback_plugins().","wrong":"import ara","symbol":"ara","correct":"from ara import setup_callback_plugins"},{"note":"The legacy way using Python import is deprecated. Use the CLI or environment variable instead.","wrong":"import ara; ara.setup_callback_plugins()","symbol":"ARA_ANSIBLE_CALLBACK_PLUGINS","correct":"export ANSIBLE_CALLBACK_PLUGINS=\"$(python -m ara.setup.callback_plugins)\""}],"quickstart":{"code":"# Install ara\npip install ara ansible\n\n# Set the callback plugin path\nexport ANSIBLE_CALLBACK_PLUGINS=\"$(python -m ara.setup.callback_plugins)\"\n\n# Run a playbook (results are recorded automatically)\nansible-playbook -i inventory playbook.yml\n\n# Generate an HTML report\nara-manage generate /tmp/ara-report","lang":"bash","description":"Install, configure callback plugins, run a playbook, and generate a static HTML report."},"warnings":[{"fix":"Use Python >=3.8 and Ansible >=2.9.","message":"ARA 1.6+ dropped support for Python 2.7 and Ansible <2.9. Upgrade to Python 3.8+ and Ansible 2.9+.","severity":"breaking","affected_versions":">=1.6"},{"fix":"Set environment variable ARA_DATABASE_ENGINE and ARA_DATABASE_* accordingly.","message":"ARA uses a SQLite database by default. For production, configure a different database (e.g., MySQL or PostgreSQL) to avoid corruption.","severity":"gotcha","affected_versions":"all"},{"fix":"Replace `ara generate` with `ara-manage generate`; check help: `ara-manage --help`.","message":"The `ara` CLI command is deprecated. Use `ara-manage` instead.","severity":"deprecated","affected_versions":">=1.5"},{"fix":"Switch to a server-based database (PostgreSQL/MySQL) or serialize playbook runs.","message":"If you run multiple Ansible playbooks concurrently with the default SQLite database, you may get `database is locked` errors.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install ara in the same Python environment as Ansible: `pip install ara ansible`.","cause":"ARA is not installed or not in the Python path used by Ansible.","error":"ModuleNotFoundError: No module named 'ara'"},{"fix":"Run `export ANSIBLE_CALLBACK_PLUGINS=\"$(python -m ara.setup.callback_plugins)\"` and verify the path exists.","cause":"The ANSIBLE_CALLBACK_PLUGINS environment variable points to an incorrect path.","error":"ERROR! Unable to load callback plugin 'ara', it is not a valid plugin."},{"fix":"Switch to PostgreSQL or MySQL, or set ARA_DATABASE_FILE to a unique file per process.","cause":"Multiple concurrent writes to the default SQLite database.","error":"sqlite3.OperationalError: database is locked"},{"fix":"Use `ara-manage` instead of `ara`. Run `ara-manage --help` for available commands.","cause":"The deprecated `ara` CLI is not installed; only `ara-manage` is available.","error":"Command 'ara' is not installed"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}