Aller au contenu
Infrastructure as Code medium

RHCE EX294 — Trouver la doc Ansible pendant l'examen (sans Internet)

12 min de lecture

Logo Ansible

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.

  • 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 doc quand on travaille avec un Execution Environment.
  • Retrouver des concepts (lookup, filter, plugin) dans la doc locale /usr/share/doc/.
  • 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).

Vous cherchez un module mais ne vous souvenez plus du nom exact. La commande la plus utile :

Fenêtre de terminal
# Lister TOUS les modules — utile pour grep'er
ansible-doc -l | grep -i firewall
# Sortie attendue (les noms FQCN apparaissent)
ansible.posix.firewalld Manage arbitrary ports/services with firewalld
ansible.posix.firewalld_info Gather information about firewalld
community.general.ufw Manage firewall with UFW

ansible-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 :

Fenêtre de terminal
ansible-doc ansible.posix.firewalld

Affiche 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.
Fenêtre de terminal
# 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 »
Fenêtre de terminal
ansible-doc -s ansible.builtin.user

Sortie 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.

ansible-doc ne couvre pas que les modules. Pour les autres types de plugins :

Fenêtre de terminal
# Lister les lookups (env, file, password, etc.)
ansible-doc -t lookup -l
# Doc d'un lookup spécifique
ansible-doc -t lookup file
ansible-doc -t lookup password
# Lister les filters Jinja2 ansibles
ansible-doc -t filter -l
# Doc d'un filter
ansible-doc -t filter community.general.dict_kv

Types 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 :

Fenêtre de terminal
# Mode TUI interactif — naviguer dans la doc
ansible-navigator doc
# Mode stdout direct — chercher un module
ansible-navigator doc ansible.builtin.user --mode stdout

Le 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.

Si même ansible-doc ne donne pas ce qu'il faut (rare), la doc système est installée par le paquet RPM :

Fenêtre de terminal
# Doc des paquets ansible installés
ls /usr/share/doc/ansible*/
ls /usr/share/doc/ansible-core*/
# Exemples ansible.cfg fournis
cat /usr/share/doc/ansible-core/examples/ansible.cfg
# Inventaire d'exemple
cat /usr/share/doc/ansible-core/examples/hosts

Ces fichiers servent surtout à voir un ansible.cfg complet et commenté — utile si vous avez oublié une option de configuration.

Si une commande ansible-doc <MODULE> répond [WARNING]: module ... not found, la collection n'est pas installée. Pour vérifier :

Fenêtre de terminal
# Lister TOUTES les collections installées sur ce poste
ansible-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 »
  1. Identifier le concept que vous cherchez — « ouvrir un port firewall ».

  2. Filtrer la liste :

    Fenêtre de terminal
    ansible-doc -l | grep -i firewall
  3. Identifier le moduleansible.posix.firewalld est le candidat le plus pertinent.

  4. Lire les exemples :

    Fenêtre de terminal
    ansible-doc ansible.posix.firewalld | less
    # /EXAMPLES (recherche "EXAMPLES" dans le pager)
  5. Copier un exemple dans votre playbook, ajuster les paramètres.

  6. Vérifier la syntaxe :

    Fenêtre de terminal
    ansible-playbook --syntax-check mon-playbook.yml
  7. Tester en check mode :

    Fenêtre de terminal
    ansible-playbook --check mon-playbook.yml
  8. 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é.

SymptômeCauseSolution
module not foundCollection pas installée ou nom raccourci utiliséToujours utiliser le FQCN complet (ansible.posix.firewalld, pas firewalld)
Trop de pages dans ansible-docPager less actifq pour quitter, ou `ansible-doc <MODULE>
Pas d'EXAMPLES dans la sortieModule récent ou collection community sans exemplesChercher 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 ligneReformatter manuellement, garder les commentaires comme guide
ansible-doc -t filter -l répond rienCollection avec filters pas listée par défautSpécifier la collection : ansible-doc -t filter -l community.general
  • ansible-doc -l | grep est 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 doc remplace ansible-doc (la doc est dans l'EE, pas locale).
  • ansible-galaxy collection list liste les collections installées — vérifier avant de chercher un module exotique.
  • FQCN obligatoire sur l'examen — ansible.posix.firewalld plutôt que firewalld court.
  • ansible-doc couvre aussi lookups, filters, plugins via -t lookup|filter|....

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