Introduction
Le travail avec Ansible est plus facile à maintenir lorsque chaque tâche d'automatisation se trouve dans un répertoire de projet clair. Le travail Ansible de type RHCE nécessite également de bonnes habitudes de contrôle de version, car les playbooks, les inventaires, les variables et les rôles sont tous des fichiers texte qui évoluent au fil du temps.
Dans ce laboratoire, vous allez créer un petit projet Ansible sous /home/labex/project/rhce-ansible, l'initialiser en tant que dépôt Git, ajouter un premier inventaire et valider la structure de base. Le projet sera volontairement simple, mais sa disposition correspond à la structure utilisée tout au long de ce cours préparatoire.
Créer l'espace de travail du projet
Dans cette étape, vous allez créer le répertoire du projet ainsi que le premier ensemble de dossiers utilisés par les projets Ansible. L'option -p indique à mkdir de créer les répertoires parents manquants et d'éviter les erreurs si un répertoire existe déjà.
Déplacez-vous dans l'espace de travail standard LabEx.
cd /home/labex/project
Créez un répertoire de projet avec les sous-répertoires courants pour les inventaires, les playbooks, les variables, les fichiers, les modèles (templates) et les rôles.
mkdir -p rhce-ansible/{inventory,playbooks,group_vars,host_vars,roles,files,templates}
Les noms des répertoires sont conventionnels plutôt qu'obligatoires. Les utiliser dès le début vous aide à identifier où les laboratoires suivants placeront les fichiers d'inventaire, les variables, le code de rôle réutilisable et les fichiers sources que les playbooks copieront ou utiliseront comme modèles.
Listez l'arborescence du nouveau projet. La sortie doit afficher les répertoires que vous venez de créer.
find rhce-ansible -maxdepth 2 -type d | sort
find affiche les répertoires de l'arborescence du projet, et sort stabilise l'ordre d'affichage. À ce stade, les répertoires sont vides, mais leur présence constitue la structure de base que vous validerez plus tard.
Initialiser Git et définir l'identité locale
Dans cette étape, vous allez transformer le projet en un dépôt Git. Git stocke l'historique des modifications dans un répertoire caché .git. Définir l'identité localement permet de garder ce laboratoire autonome et d'éviter de modifier les paramètres utilisateur globaux.
Entrez dans le répertoire du projet.
cd /home/labex/project/rhce-ansible
Initialisez le dépôt.
git init
Git crée un répertoire caché .git à l'intérieur du projet. Ce répertoire est la base de données du dépôt ; les fichiers Ansible visibles restent dans l'arborescence normale du projet.
Définissez un nom d'auteur et une adresse e-mail locaux pour les validations (commits) dans ce dépôt.
git config user.name "LabEx RHCE Learner"
git config user.email "learner@example.com"
Vérifiez le statut du dépôt. Git devrait indiquer que vous êtes sur une branche sans aucun fichier suivi pour le moment.
git status --short
Le format de statut court est volontairement compact. Les répertoires vides ne sont pas suivis par Git, il est donc normal que cette commande n'affiche rien ou presque tant que vous n'avez pas ajouté de fichiers réels.
Ajouter des notes de projet et des règles d'exclusion
Dans cette étape, vous allez ajouter deux fichiers de projet simples. Un fichier README.md explique l'objectif du projet, et .gitignore permet d'exclure les fichiers temporaires de l'historique Git.
Avant d'exécuter les commandes de cette étape, retournez dans le répertoire du projet afin que les chemins relatifs pointent vers le projet Ansible.
cd /home/labex/project/rhce-ansible
Utilisez un "here-document" pour créer README.md. Le texte situé entre les marqueurs EOF est écrit dans le fichier exactement tel qu'il apparaît.
cat > README.md <<'EOF'
## RHCE Ansible Practice Project
This repository contains guided Ansible practice files for RHCE-style automation.
EOF
Créez un petit fichier .gitignore pour les artefacts temporaires courants d'Ansible.
cat > .gitignore <<'EOF'
*.retry
.artifacts/
__pycache__/
EOF
Le motif *.retry couvre les fichiers de réessai des anciens flux de travail Ansible, .artifacts/ est un emplacement courant pour les sorties générées, et __pycache__/ empêche le bytecode Python d'encombrer l'historique de votre projet.
Affichez les deux fichiers pour confirmer leur contenu avant de les suivre.
sed -n '1,20p' README.md .gitignore
Créer le premier inventaire
Dans cette étape, vous allez créer un petit inventaire statique. Un inventaire nomme les systèmes qu'Ansible peut gérer. Pour le premier laboratoire, l'hôte nommé control utilise ansible_connection=local, ce qui signifie qu'Ansible exécute les tâches sur cette même machine virtuelle sans utiliser SSH.
Avant d'exécuter les commandes de cette étape, retournez dans le répertoire du projet.
cd /home/labex/project/rhce-ansible
Créez inventory/hosts.
cat > inventory/hosts <<'EOF'
[control]
control ansible_connection=local
EOF
La ligne [control] entre crochets définit un groupe. La ligne suivante définit un alias d'hôte nommé control, et ansible_connection=local indique à Ansible de ne pas utiliser SSH pour ce premier projet.
Utilisez ansible-inventory pour analyser le fichier. Cette commande vérifie la syntaxe de l'inventaire avant que vous ne l'utilisiez dans un playbook.
ansible-inventory -i inventory/hosts --graph
Le graphique doit inclure le groupe control et l'hôte control.
Valider le projet de base
Dans cette étape, vous allez ajouter les fichiers de base à Git et créer la première validation (commit). Une validation est un point de contrôle nommé que vous pourrez inspecter plus tard.
Avant d'exécuter les commandes de cette étape, retournez dans le répertoire du projet.
cd /home/labex/project/rhce-ansible
Indexez les fichiers. L'indexation (staging) indique à Git quels changements doivent être inclus dans la prochaine validation.
git add README.md .gitignore inventory/hosts
Créez la validation de base.
git commit -m "Create Ansible project baseline"
La sortie de la validation doit mentionner les fichiers ajoutés au dépôt. Si Git indique qu'il n'y a rien à valider, relancez git status --short et assurez-vous que README.md, .gitignore et inventory/hosts ont bien été indexés.
Inspectez le statut final et la validation la plus récente. Un statut propre signifie que toutes les modifications suivies ont été validées.
git status --short
git log --oneline -1
git status --short devrait maintenant être vide, et git log --oneline -1 devrait afficher le message de la nouvelle validation. Cela vous donne un point de contrôle sain avant que les laboratoires suivants n'ajoutent davantage de contenu Ansible.
Résumé
Vous avez créé un espace de travail Ansible propre, initialisé Git, ajouté un inventaire de base et validé la première structure de référence. Ces habitudes de projet faciliteront la gestion ultérieure des playbooks, variables, modèles, rôles et fichiers de validation.


