Aller au contenu
Infrastructure as Code medium

Inspecter un Execution Environment Ansible : images, doc, collections, config

8 min de lecture

Logo Ansible

Avant de consommer ou de baser un EE custom dessus, il faut savoir ce qu’il contient. ansible-navigator images ouvre une TUI riche qui détaille la version d’ansible-core, les collections embarquées avec leurs versions, les dépendances Python, les packages système, et même les layers du Containerfile. Cette page passe en revue les 3 EE communautaires majeurs (creator-ee, awx-ee, community-ee-minimal) et explique comment choisir le bon point de départ pour son projet.

À la fin, vous saurez inspecter n’importe quel EE OCI public ou privé, comparer plusieurs EE, et lire la doc d’un module dans le contexte de l’EE plutôt que sur Internet.

  • Inspection TUI avec ansible-navigator images.
  • 8 sections d’un rapport d’inspection (info, layers, OS, system, ansible, collections, Python, version).
  • Comparer 3 EE communautaires sur version, taille, collections.
  • ansible-navigator doc : doc d’un module embarqué.
  • Inspection sans pull : skopeo inspect et crane manifest.
  • creator-ee:latest, awx-ee:latest et community-ee-minimal:latest pull localement.
  • Avoir lu Modes interactifs pour la navigation TUI.

ansible-navigator images — l’inspection complète

Section intitulée « ansible-navigator images — l’inspection complète »
Fenêtre de terminal
ansible-navigator images --eei quay.io/ansible/creator-ee:latest

L’interface TUI affiche 8 sections numérotées :

#SectionContenu
0Image informationID, taille, registre, tag, date
1Image layersLayers du Containerfile multi-stage
2OS releaseUBI 9, RHEL 9, Fedora — version exacte
3System packagesOutput rpm -qa ou dpkg -l
4Ansible versionansible --version (core + collections location)
5Ansible collectionsansible-galaxy collection list formatée
6Python packagespip list — toutes les deps Python
7Python versionMajor.minor exact

Tapez le numéro d’une section pour drill-down. Le 6 (Python packages) liste toutes les deps installées, indispensable pour vérifier qu’une collection a bien ses dépendances satisfaites.

Pour un workflow scripté :

Fenêtre de terminal
# Lister les collections en JSON
podman run --rm quay.io/ansible/creator-ee:latest \
ansible-galaxy collection list --format json | jq '.[]'
# Version ansible-core
podman run --rm quay.io/ansible/creator-ee:latest \
ansible --version | head -1
# Lister Python deps
podman run --rm quay.io/ansible/creator-ee:latest \
pip list --format json | jq '.[].name'

🔍 Observation : ces commandes shell sont utilisables dans la CI pour vérifier qu’un EE contient bien community.kubernetes 5.1.1 avant de pousser un playbook qui en dépend.

EETailleansible-coreCollections clés
creator-ee:latest~1.2 GB2.18.xansible.posix, community.general, kubernetes.core, community.docker, containers.podman + ansible-lint
awx-ee:latest~900 MB2.18.xCollections AWX/Tower, awx.awx, plus orienté run
community-ee-minimal:latest~400 MB2.18.xAucune collection autre que ansible.builtin

Quand choisir quoi :

  • Formation, dev : creator-ee — riche, ansible-lint inclus, autocomplete des collections courantes.
  • AWX self-hosted : awx-ee — par défaut sur AWX, optimisé.
  • Custom EE production : partir de community-ee-minimal et ajouter uniquement ce dont on a besoin → image la plus petite, surface d’attaque minimale.
Fenêtre de terminal
ansible-navigator doc ansible.builtin.copy

TUI riche avec :

  • Synopsis du module.
  • Paramètres typés (string, bool, list…) avec valeurs par défaut.
  • Examples YAML directement copiables.
  • Return values (ce que register: capturera).

🔍 Observation cruciale : la doc affichée est celle de la version embarquée dans l’EE. Si votre EE a community.general 9.0.0 mais que la doc internet est sur la 10.x, vous évitez les paramètres qui n’existent pas encore dans votre version.

Mode CLI :

Fenêtre de terminal
ansible-navigator doc ansible.builtin.copy -m stdout | less
Fenêtre de terminal
ansible-navigator collections --eei quay.io/ansible/creator-ee:latest

Liste structurée — plus lisible que la sortie brute de ansible-galaxy collection list. Drill-down possible sur une collection pour voir ses modules, plugins, rôles.

Quand pull faire ~1 GB pour vérifier la version est trop coûteux (CI, postes contraints), inspectez sans pull :

Fenêtre de terminal
# skopeo (livré avec Podman)
skopeo inspect docker://quay.io/ansible/creator-ee:latest
# crane (Google, plus rapide)
crane manifest quay.io/ansible/creator-ee:latest
crane config quay.io/ansible/creator-ee:latest | jq .config.Labels

Vous obtenez le digest, les labels, la taille sans pull les layers. Économie de bande passante massive si on a beaucoup d’EE à comparer.

Cas pratique — choix d’un EE pour un projet K8s

Section intitulée « Cas pratique — choix d’un EE pour un projet K8s »

Votre playbook utilise kubernetes.core et community.kubernetes. Question : quel EE prendre ?

  1. Vérifier creator-ee :

    Fenêtre de terminal
    podman run --rm quay.io/ansible/creator-ee:latest \
    ansible-galaxy collection list | grep -E 'kubernetes|community'

    kubernetes.core 5.1.1 présent. ✅

  2. Vérifier les Python deps :

    Fenêtre de terminal
    podman run --rm quay.io/ansible/creator-ee:latest \
    pip list | grep -i kubernetes

    kubernetes 31.0.0 présent. ✅

  3. Conclusion : creator-ee suffit pour un projet K8s.

Si rien ne convient : passer au lab ee/builder-custom pour builder un EE custom basé sur community-ee-minimal + collections K8s pinnées.

Le lab ee/inspection (labs/ee/inspection/) automatise la comparaison des 3 EE avec un script inspect.sh et 4 tests pytest.

  • ansible-navigator images est l’outil de référence pour inspecter un EE (8 vues).
  • 3 EE communautaires : creator-ee (riche), awx-ee (AWX), community-ee-minimal (base custom).
  • ansible-navigator doc affiche la doc embarquée dans l’EE — version exacte qui s’exécutera.
  • skopeo inspect / crane manifest pour inspecter sans pull.
  • Cas K8s, Cloud, Windows : creator-ee couvre déjà beaucoup. Custom EE seulement si nécessaire.
  • Avant de baser un EE custom : toujours inspecter ce que la base apporte.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn