
L'examen RHCE EX294 se passe sur un poste sans Internet. Pas de Stack Overflow, pas de blog, pas de doc en ligne. Vous avez Ansible installé, ses collections embarquées, et la doc locale générée par ansible-doc et ansible-navigator doc. Cette page liste les commandes exactes pour retrouver la signature d'un module, ses paramètres obligatoires, et un exemple copiable en moins de 30 secondes. Public visé : candidats RHCE EX294, et plus largement quiconque doit travailler en environnement air-gapped.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Lister les modules disponibles sans connaître leur FQCN exact.
- Lire la signature complète d'un module avec
ansible-doc <MODULE>. - Copier un exemple YAML directement utilisable depuis la doc embarquée.
- Naviguer la doc d'un module via
ansible-navigator docquand on travaille avec un Execution Environment. - Retrouver des concepts (lookup, filter, plugin) dans la doc locale
/usr/share/doc/.
Prérequis
Section intitulée « Prérequis »- Ansible installé sur le poste cible (
ansible-core 2.16+minimum pour l'EX294 actuelle). - Connaître la structure d'un playbook minimal (cf. Premiers pas).
Le réflexe n°1 — ansible-doc -l pour lister
Section intitulée « Le réflexe n°1 — ansible-doc -l pour lister »Vous cherchez un module mais ne vous souvenez plus du nom exact. La commande la plus utile :
# Lister TOUS les modules — utile pour grep'eransible-doc -l | grep -i firewall
# Sortie attendue (les noms FQCN apparaissent)ansible.posix.firewalld Manage arbitrary ports/services with firewalldansible.posix.firewalld_info Gather information about firewalldcommunity.general.ufw Manage firewall with UFWansible-doc -l énumère les modules de toutes les collections installées sur le poste. Le grep -i permet de filtrer par mot-clé. C'est la première commande à connaître parce qu'elle ne nécessite pas de connaître la collection.
Le réflexe n°2 — ansible-doc <MODULE> pour la signature
Section intitulée « Le réflexe n°2 — ansible-doc <MODULE> pour la signature »Une fois le bon module identifié, lire sa signature et ses paramètres :
ansible-doc ansible.posix.firewalldAffiche 3 sections clés :
- OPTIONS : tous les paramètres avec type, choix, défaut, et description courte. Les paramètres marqués
(required)sont obligatoires. - EXAMPLES : 5-10 exemples YAML directement copiables. C'est la mine d'or de l'examen.
- NOTES : limitations, prérequis (collections, Python deps), comportements particuliers.
# Pour aller direct aux EXAMPLES (gain de temps en examen) :ansible-doc ansible.posix.firewalld | grep -A 50 "EXAMPLES"
# Pour voir uniquement les paramètres requis :ansible-doc -s ansible.posix.firewalld# (-s = snippet : retourne un squelette YAML déjà structuré)L'option -s (snippet) est particulièrement utile pendant l'examen : elle génère un squelette YAML prêt à compléter, avec tous les paramètres possibles en commentaire et leur type indiqué. Copiez-collez dans votre playbook, gardez les paramètres pertinents, supprimez le reste.
Le réflexe n°3 — -s pour un snippet YAML prêt à coller
Section intitulée « Le réflexe n°3 — -s pour un snippet YAML prêt à coller »ansible-doc -s ansible.builtin.userSortie type :
- name: Manage user accounts ansible.builtin.user: append: # Default: false # If `yes`, add the user to the groups specified in `groups`. authorization: # macOS specific... comment: # Optionally sets the description... create_home: # Default: true # Unless set to `no`, a home directory will be made... expires: # An expiry time for the user in epoch... force: # Default: false # This only affects `state=absent`... group: # Optionally sets the user's primary group... groups: # A list of supplementary groups... home: # Optionally set the user's home directory. name: # (required) Name of the user to create... password: # If provided, set the user's password... shell: # Optionally set the user's shell. state: # Default: present, choices: absent, present # Whether the account should exist or not... uid: # Optionally specify a numerical user ID. # ... (souvent 30+ paramètres)C'est le format gain de temps. Vous savez exactement quels paramètres existent, lesquels sont obligatoires ((required)), et leur valeur par défaut. Copiez la structure, gardez ce dont vous avez besoin.
Le réflexe n°4 — Lookup, filter, plugin
Section intitulée « Le réflexe n°4 — Lookup, filter, plugin »ansible-doc ne couvre pas que les modules. Pour les autres types de plugins :
# Lister les lookups (env, file, password, etc.)ansible-doc -t lookup -l
# Doc d'un lookup spécifiqueansible-doc -t lookup fileansible-doc -t lookup password
# Lister les filters Jinja2 ansiblesansible-doc -t filter -l
# Doc d'un filteransible-doc -t filter community.general.dict_kvTypes de plugins disponibles : module (défaut), lookup, filter, callback, connection, inventory, strategy, become, cache, vars.
Si vous travaillez en Execution Environment — ansible-navigator doc
Section intitulée « Si vous travaillez en Execution Environment — ansible-navigator doc »Quand vous lancez vos playbooks via ansible-navigator (le cas dans le workflow officiel Red Hat moderne, cf. Workflow VS Code + Dev Container), la commande ansible-doc n'est pas locale mais dans l'EE. Pour interroger la doc embarquée dans l'EE :
# Mode TUI interactif — naviguer dans la docansible-navigator doc
# Mode stdout direct — chercher un moduleansible-navigator doc ansible.builtin.user --mode stdoutLe mode TUI affiche un navigateur plein écran avec une liste filtrable des modules de l'EE. Vous tapez quelques caractères, le filtrage est instantané. C'est plus rapide que ansible-doc -l | grep quand on cherche par concept.
Doc locale /usr/share/doc/ — niveau plus bas
Section intitulée « Doc locale /usr/share/doc/ — niveau plus bas »Si même ansible-doc ne donne pas ce qu'il faut (rare), la doc système est installée par le paquet RPM :
# Doc des paquets ansible installésls /usr/share/doc/ansible*/ls /usr/share/doc/ansible-core*/
# Exemples ansible.cfg fourniscat /usr/share/doc/ansible-core/examples/ansible.cfg
# Inventaire d'exemplecat /usr/share/doc/ansible-core/examples/hostsCes fichiers servent surtout à voir un ansible.cfg complet et commenté — utile si vous avez oublié une option de configuration.
Trouver les collections installées
Section intitulée « Trouver les collections installées »Si une commande ansible-doc <MODULE> répond [WARNING]: module ... not found, la collection n'est pas installée. Pour vérifier :
# Lister TOUTES les collections installées sur ce posteansible-galaxy collection list
# Sortie type# /usr/share/ansible/collections# Collection Version# ------------------------------ -------# ansible.posix 1.5.4# community.general 7.0.0# redhat.rhel_system_roles 1.21.0# ...Sur le poste d'examen RHCE, attendez-vous à voir ansible.posix, community.general, et la collection redhat.rhel_system_roles (les System Roles Red Hat — très utiles pour les objectifs RHCSA automatisés).
Méthode complète en 30 secondes — l'algorithme d'examen
Section intitulée « Méthode complète en 30 secondes — l'algorithme d'examen »-
Identifier le concept que vous cherchez — « ouvrir un port firewall ».
-
Filtrer la liste :
Fenêtre de terminal ansible-doc -l | grep -i firewall -
Identifier le module —
ansible.posix.firewalldest le candidat le plus pertinent. -
Lire les exemples :
Fenêtre de terminal ansible-doc ansible.posix.firewalld | less# /EXAMPLES (recherche "EXAMPLES" dans le pager) -
Copier un exemple dans votre playbook, ajuster les paramètres.
-
Vérifier la syntaxe :
Fenêtre de terminal ansible-playbook --syntax-check mon-playbook.yml -
Tester en check mode :
Fenêtre de terminal ansible-playbook --check mon-playbook.yml -
Appliquer :
Fenêtre de terminal ansible-playbook mon-playbook.yml
Avec cette méthode, vous gérez un objectif RHCE en moins de 5 minutes — temps qui inclut la lecture de l'énoncé.
Pièges à éviter pendant l'examen
Section intitulée « Pièges à éviter pendant l'examen »| Symptôme | Cause | Solution |
|---|---|---|
module not found | Collection pas installée ou nom raccourci utilisé | Toujours utiliser le FQCN complet (ansible.posix.firewalld, pas firewalld) |
Trop de pages dans ansible-doc | Pager less actif | q pour quitter, ou `ansible-doc <MODULE> |
| Pas d'EXAMPLES dans la sortie | Module récent ou collection community sans exemples | Chercher un module similaire connu, adapter |
ansible-doc -s retourne un YAML invalide une fois copié | L'option -s met les commentaires sur la même ligne | Reformatter manuellement, garder les commentaires comme guide |
ansible-doc -t filter -l répond rien | Collection avec filters pas listée par défaut | Spécifier la collection : ansible-doc -t filter -l community.general |
À retenir
Section intitulée « À retenir »ansible-doc -l | grepest le réflexe n°1 — toujours commencer par chercher le bon module avant de coder.ansible-doc -s <module>génère un squelette YAML prêt à compléter — gain de temps massif en examen.- Les EXAMPLES d'un
ansible-doc <MODULE>sont copiables directement — pas besoin de Stack Overflow. - Sur Execution Environment,
ansible-navigator docremplaceansible-doc(la doc est dans l'EE, pas locale). ansible-galaxy collection listliste les collections installées — vérifier avant de chercher un module exotique.- FQCN obligatoire sur l'examen —
ansible.posix.firewalldplutôt quefirewalldcourt. ansible-doccouvre aussi lookups, filters, plugins via-t lookup|filter|....