7.4 KiB
title: ARA Records Ansible created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, automation, ansible, reporting, devops, python, django] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Automation, https://github.com/ansible-community/ara]
📊 ARA Records Ansible
Le tableau de bord qui manque à vos playbooks Ansible — enregistre chaque exécution dans une base consultable (SQLite, MySQL ou PostgreSQL) et expose une UI web, une CLI et une API REST pour comprendre ce qui s'est passé en local comme en CI/CD.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | ara.recordsansible.org |
| GitHub | ansible-community/ara |
| License | GPL-3.0 |
| Langage | Python (70 %), HTML, Django |
| Étoiles GitHub | 2 000 ⭐ |
| Dernière MAJ | 2026-02-24 |
| Catégorie | cat-automation |
📝 Description
ARA (acronyme récursif pour Ansible Runtime Analysis) est né dans la communauté OpenStack avant de migrer sous l'égide d'ansible-community. Son objectif est simple : palier le déficit d'observabilité d'Ansible en capturant l'intégralité des données générées par chaque playbook et en les rendant consultables.
L'installation est élégante. On installe le plugin de callback ARA au niveau du même interpréteur Python qu'Ansible, et chaque ansible-playbook envoie automatiquement ses résultats vers la base de données ARA — qu'elle soit locale (SQLite, mode le plus simple) ou distante (MySQL/PostgreSQL, pour centraliser les exécutions de plusieurs machines). Quand l'API server tourne, on consulte l'historique complet dans une UI web : durée, hosts affectés, tâches échouées, diff des modifications de fichiers template ou lineinfile, résultats des modules avec leur stdout/stderr complet.
L'un des points forts d'ARA est sa compatibilité universelle. Il fonctionne avec ansible-core, ansible, ansible-pull, ansible-test, ansible-runner, AWX et Automation Controller (Tower), Molecule, Semaphore, et capture les exécutions depuis un terminal local, une VM, un conteneur, un execution environment Ansible Navigator, ou un runner CI/CD (Jenkins, GitLab CI, Rundeck, Zuul).
Pour les équipes qui gèrent des flottes hétérogènes, ARA devient vite indispensable : on remonte les exécutions de plusieurs administrateurs, on a un filtre par hôte, par playbook, par tag, par statut (changed/failed/skipped), et on peut générer des rapports d'incident en partageant simplement l'URL. La CLI (ara playbook list, ara host list) complète l'UI pour les scripteurs.
🚀 Installation
Option 1 : Sans API server (SQLite local — démarrage rapide)
python3 -m pip install --user "ansible" "ara[server]"
export ANSIBLE_CALLBACK_PLUGINS="$(python3 -m ara.setup.callback_plugins)"
ansible-playbook playbook.yml
ara-manage runserver # http://127.0.0.1:8000
Idéal pour tester ou pour un usage mono-machine.
Option 2 : Docker Compose avec API server centralisé
# docker-compose.yml
services:
ara-api:
image: docker.io/recordsansible/ara-api:latest
container_name: ara-api
restart: unless-stopped
environment:
- ARA_BASE_DIR=/opt/ara
- DJANGO_SETTINGS_MODULE=ara.server.settings
- ARA_ALLOWED_HOSTS=ara.example.com
volumes:
- ./ara-data:/opt/ara
ports:
- "8000:8000"
postgres:
image: postgres:16-alpine
container_name: ara-db
restart: unless-stopped
environment:
- POSTGRES_DB=ara
- POSTGRES_USER=ara
- POSTGRES_PASSWORD=*** volumes:
- ara-db:/var/lib/postgresql/data
volumes:
ara-db:
Côté client (chaque poste qui exécute Ansible), configurer l'envoi vers l'API :
pip install ansible ara
export ANSIBLE_CALLBACK_PLUGINS="$(python3 -m ara.setup.callback_plugins)"
export ARA_API_CLIENT=http
export ARA_API_SERVER=https://ara.example.com
ansible-playbook playbook.yml
Option 3 : Podman
L'image quay.io/recordsansible/ara-api est l'équivalent officiel pour les utilisateurs Podman/rhcos.
⚙️ Configuration
- Authentification API : activer un token ou un reverse proxy SSO (app-authelia) pour restreindre l'accès à l'UI.
- Base PostgreSQL : en production, passer à PostgreSQL via
ARA_DATABASE_ENGINE=django.db.backends.postgresqlet variables d'environnement associées. - Playbook filtering : configurer
ignore_playbook_parametersetignore_filespour exclure les données sensibles (mots de passe passés en extra-vars). - Rétention : configurer un cron qui purge les playbooks de plus de X jours pour limiter la croissance de la base.
- AWX/Controller : ARA est un callback plugin ; l'activer au niveau du AWX Project ou de l'organisation pour centraliser les exécutions de tous les utilisateurs.
- Performance tuning : désactiver l'enregistrement des modules verbeux (
command,shell) viaARA_RECORD_TIMINGetARA_RECORD_OUTPUTsi la base gonfle trop.
🔄 Alternatives
Open Source
- Ansible Tower / AWX — A sa propre UI, mais focalisée orchestration, pas reporting détaillé par tâche
- app-semaphore-ui — UI web pour Ansible, sans le niveau de détail d'ARA
- app-rundeck — Orchestration de jobs multi-outils, peut piloter Ansible
- Ansible-cmdb — Génère des rapports HTML statiques, pas de base live
Propriétaires (ce qu'ARA remplace)
- Ansible Automation Platform (AAP) — L'offre Red Hat inclut du reporting, mais payante (et 100% upstream open)
- Datadog Ansible Integration — Corrélation avec APM/métriques, facturé à l'ingestion
- Splunk + Ansible Add-on — Très puissant mais infrastructure lourde
🔐 Sécurité
- 🔐 Activer l'authentification API avant toute exposition Internet (token, Basic Auth, ou SSO via reverse proxy)
- ⚠️ ARA enregistre tout le stdout/stderr des tâches : si un playbook affiche un mot de passe (Ansible ne le devrait pas, mais...), il sera dans la base — utiliser
no_log: truesur les tâches sensibles - 🛡️ HTTPS obligatoire (app-traefik, app-caddy) avec HSTS et ALLOWED_HOSTS correctement configuré
- 🔑 Les tokens d'API doivent être rotés régulièrement
- 🗄️ Chiffrer la base PostgreSQL au repos
- 📜 Purger régulièrement les exécutions pour limiter l'exposition de données
- 🚨 Mettre à jour régulièrement :
pip install -U arapour bénéficier des correctifs
📚 Ressources
- Site officiel ara.recordsansible.org
- Documentation ara.readthedocs.io
- Démo live
- Image Docker Hub
- Ansible Galaxy
- IRC #ara sur Libera.chat
- Mastodon @ara@fosstodon.org
Pages Liées
- cat-automation — Vue d'ensemble de la catégorie
- app-ansible — Moteur d'orchestration
- app-semaphore-ui — UI alternative
- app-rundeck — Orchestration de jobs
- app-traefik — Reverse proxy HTTPS
- app-authelia — SSO
- securisation-home-lab — Bonnes pratiques
- recettes-docker-compose — Templates Docker