
Trois outils suffisent pour démarrer avec les EE : Podman, ansible-navigator, ansible-builder. Cette page installe le trio sur AlmaLinux 10 (cible RHCE EX294) et Ubuntu 24.04 LTS (postes dev), pose un fichier ansible-navigator.yml minimal, et valide tout via un premier podman pull + ansible-navigator run de démo.
À la fin, votre poste exécute des playbooks Ansible dans un EE sans avoir besoin de venv local pour ansible-core.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Installer Podman sur AlmaLinux 10 et Ubuntu 24.04 (rootless par défaut).
- Installer
ansible-navigatorvia pipx (recommandé) ou dnf/apt. - Installer
ansible-buildervia pipx, version v3.1+. - Configurer un fichier
ansible-navigator.ymlprojet par défaut. - Vérifier l'installation avec un pull EE + run de démo.
Prérequis
Section intitulée « Prérequis »- Distribution Linux récente : AlmaLinux 10, Rocky Linux 10, Ubuntu 24.04 LTS ou Fedora 40+.
- Accès internet pour pull les images EE (~1 GB).
- Python 3.11+ sur le système (présent par défaut sur ces distros).
Installation Podman
Section intitulée « Installation Podman »Podman est le runtime conteneur recommandé pour les EE en 2026 (rootless natif, pas de daemon, intégration RHEL).
sudo dnf install -y podmanpodman --version# → podman version 5.x.xsudo apt-get updatesudo apt-get install -y podmanpodman --versionsudo dnf install -y podmanpodman --versionVérification rapide :
podman info | head -20podman run --rm docker.io/library/hello-worldCas particulier : WSL2 (Windows)
Section intitulée « Cas particulier : WSL2 (Windows) »Sur WSL2 Ubuntu 24.04, l'installation Podman fonctionne avec apt natif (plus besoin du dépôt opensuse:kubic qu'on rencontrait il y a 2-3 ans). Mais un piège spécifique à WSL2 fait planter ansible-navigator au premier lancement :
Error: Execution environment support while using podman requires a '/dev/mqueue/' directory.WSL2 ne monte pas /dev/mqueue par défaut, et Podman en a besoin pour les POSIX message queues utilisées par les conteneurs. Le fix tient en deux lignes — automatiser le montage au démarrage de WSL :
# /etc/wsl.conf (sur Windows 11)[boot]command="mkdir -p /dev/mqueue && mount -t mqueue none /dev/mqueue"Le démarrage suivant de WSL exécute la commande automatiquement (wsl --shutdown côté Windows pour forcer un reboot propre).
Sur Windows 10, la section [boot] n'est pas supportée — créer un script podman-wsl.bat à lancer manuellement après chaque démarrage :
wsl ~ -u root -d Ubuntu -e sh -c "mkdir -p /dev/mqueue && mount -t mqueue none /dev/mqueue"Vérification : mountpoint /dev/mqueue doit retourner /dev/mqueue is a mountpoint. Sinon, ansible-navigator plantera silencieusement avec Configuration failed.
Installation ansible-navigator
Section intitulée « Installation ansible-navigator »Méthode recommandée 2026 : pipx — isole l'installation dans son propre venv, pas de pollution du Python système.
# Installer pipx si absentsudo dnf install -y pipx # AlmaLinux/RHELsudo apt-get install -y pipx # Ubuntupipx ensurepathexec $SHELL # recharger le PATH
# Installer ansible-navigatorpipx install ansible-navigatoransible-navigator --version# → ansible-navigator 25.x.xMéthodes alternatives :
# Activer le repo ansible-automation-platform (Subscription Red Hat) ou EPELsudo dnf install -y ansible-navigator# Pas de paquet officiel : passer par pipx ou pippipx install ansible-navigatorpython3 -m venv ~/venvs/ansiblesource ~/venvs/ansible/bin/activatepip install ansible-navigatorInstallation ansible-builder
Section intitulée « Installation ansible-builder »Même logique que pour navigator :
pipx install ansible-builderansible-builder --version# → 3.1.0 ou supérieurConfiguration ansible-navigator.yml
Section intitulée « Configuration ansible-navigator.yml »Un fichier ansible-navigator.yml placé à la racine d'un projet fixe l'EE par défaut, le mode d'exécution, le container engine, les volumes mounts.
ansible-navigator: execution-environment: image: quay.io/ansible/creator-ee:latest container-engine: podman pull: policy: missing # missing | always | never | tag volume-mounts: - src: "{{ HOME }}/.ssh" dest: "/home/runner/.ssh" options: "ro,Z" mode: stdout # stdout | interactive playbook-artifact: enable: false # mettre à true en CI pour replay logging: level: warning # debug | info | warning | errorTrois clés à comprendre :
pull.policy: missing: l'image n'est pull que si absente localement. Bon défaut en dev.alwaysforce le pull à chaque run (utile en CI pour la fraîcheur).volume-mounts: par défaut, le conteneur n'a pas accès à votre~/.ssh. Sans le mount, vos clés ne sont pas disponibles dans l'EE → SSH échoue.:Z= label SELinux pour le bind mount.mode:stdoutpour CI/scripts,interactivepour debug TUI.
Fichier cherché dans cet ordre :
$ANSIBLE_NAVIGATOR_CONFIG(variable d'env)../ansible-navigator.yml(cwd)../ansible-navigator.yaml.~/.ansible-navigator.yml.~/.ansible-navigator.yaml.
EE communautaire vs EE Red Hat officiel — quelle image utiliser
Section intitulée « EE communautaire vs EE Red Hat officiel — quelle image utiliser »Pilier Operational Excellence, Sovereignty. L'EE choisi détermine la fidélité du lab par rapport à l'environnement Red Hat officiel — important quand on prépare la RHCE EX294 ou qu'on déploie en SecNumCloud.
| Usage | Image / méthode recommandée |
|---|---|
| Labs publics + apprentissage | quay.io/ansible/creator-ee pinnée par tag |
| Préparation RHCE stricte | Dev Container Red Hat + registry.redhat.io |
| CI open source | EE custom construite avec ansible-builder |
| Production entreprise | EE signée, scannée, registry interne |
L'image quay.io/ansible/creator-ee (communautaire) est parfaite pour
les labs publics et l'apprentissage — elle embarque ansible-core,
ansible-lint, les collections les plus courantes. C'est ce qu'on utilise
dans la majorité des guides du site.
Pour la préparation RHCE stricte, Red Hat documente un Ansible
development container distribué via registry.redhat.io qui
reproduit exactement l'environnement de l'examen. L'install RPM des
outils Ansible n'est plus supportée sur RHEL 10 — le Dev Container est
devenu la voie officielle. Authentification requise sur
registry.redhat.io avec un compte Red Hat Developer (gratuit).
# Login sur registry.redhat.io (compte Red Hat Developer)podman login registry.redhat.io
# Pull de l'EE Red Hat officiel (exemple — vérifier la dernière version# dans la doc Red Hat AAP en cours)podman pull registry.redhat.io/ansible-automation-platform-25/ee-supported-rhel9Premier test complet
Section intitulée « Premier test complet »# 1. Pull l'EE communitypodman pull quay.io/ansible/creator-ee:latest
# 2. Vérifierpodman images | grep creator-ee
# 3. Créer un playbook minimalcat > ping.yml <<'EOF'---- hosts: localhost gather_facts: false tasks: - name: Ping local ansible.builtin.ping:EOF
# 4. Exécuter dans l'EEansible-navigator run ping.yml -m stdoutSortie attendue :
PLAY [localhost] *********TASK [Ping local] *********ok: [localhost]PLAY RECAP ****************localhost : ok=1 changed=0 unreachable=0 failed=0🎯 Bravo — votre premier playbook a tourné dans un EE.
Dépannage installation
Section intitulée « Dépannage installation »| Symptôme | Cause probable | Solution |
|---|---|---|
podman: command not found | Paquet non installé | sudo dnf install -y podman |
ansible-navigator: command not found après pipx install | PATH non rechargé | pipx ensurepath ; exec $SHELL |
Error: short-name resolution enforced | Image sans registre explicite | Toujours utiliser quay.io/ansible/... complet |
Permission denied sur volume mount | SELinux | Ajouter :Z à -v src:dest:Z |
pull failed: 401 Unauthorized | Registre privé | podman login quay.io |
À retenir
Section intitulée « À retenir »- Trio Podman + ansible-navigator + ansible-builder suffit pour tout le parcours EE.
pipxest la méthode d'install recommandée (isolation propre).ansible-builderv3.1+ est obligatoire pour le schémaversion: 3.ansible-navigator.ymlcentralise la config projet.:Zsystématique sur les volume mounts en environnement SELinux.pull.policy:missingen dev,alwaysen CI.