Compare commits

...

2 Commits

Author SHA1 Message Date
ramzouillee
edcec718de update stage 2026-03-18 13:55:15 +01:00
ramzouillee
d451b61921 nouvelle note: ansible (18/03) 2026-03-18 13:47:39 +01:00
29 changed files with 2025 additions and 53 deletions

View File

@ -0,0 +1,57 @@
---
tags:
- Automatisation
- Ansible
- Devops
---
# Automatiser avec Ansible
## C'est quoi Ansible ?
Ansible est un outil d'automatisation informatique (créé par Red Hat). Imaginons que l'on est le chef d'orchestre, et que nos serveurs sont les musiciens. Au lieu d'aller voir chaque musicien un par un pour lui dire quoi jouer (taper des commandes à la main), on leur distribue une partition. Ils la lisent et jouent tous en rythme.
### Les 3 grands principes d'Ansible
-> Sans agent (Agentless) : Son utilité première, on a pas besoin d'installer un logiciel "Ansible" sur nos PC cible (un Proxmox, pfSense ou encore Debian). Ansible se connecte simplement à eux via SSH.
-> Idempotent : Ça signifie : "Si c'est déjà fait, ne touche à rien". Donc si on demande à Ansible "Installe le serveur web Nginx", il va d'abord vérifier. S'il n'y est pas, il l'installe. S'il y est déjà, il dit "OK, je passe à la suite". On pourrait lancer le script 100 fois, ça ne cassera jamais le serveur.
-> Le format YAML : Les instructions (les "Playbooks") sont écrites en YAML, un langage très lisible par les humains.
### Le vocabulaire de base
-> Le Control Node : Notre PC personnel (celui depuis lequel on lance Ansible).
-> L'Inventory (Inventaire) : Un simple fichier texte où on liste les adresses IP de nos serveurs.
-> Les Playbooks : Nos scripts/recettes qui décrivent ce que l'on veux configurer.
## Utiliser Ansible proprement
Pour préparer son installation avec Ansible, on doit préparer trois fichiers de base pour faire fonctionner le tout
### Le fichier Inventaire (`inventory.yml` ou `hosts`)
Comme dit plus tôt, c'est le fichier ou l'on liste les adresses IP et qui permet de regrouper les serveurs pour ne cibler que certaines machines.
* Exemple de groupes : `serveurs_web`, `bases_de_donnees`, `hyperviseurs`.
### Les Modules
On y ajoute les "outils" intégrés à Ansible qui nous permettrons d'interagir avec le système.
* `apt` ou `yum` : Pour gérer les paquets/logiciels.
* `service` ou `systemd` : Pour démarrer/arrêter des services.
* `copy` ou `template` : Pour envoyer et modifier des fichiers de configuration.
* `user` : Pour créer des comptes utilisateurs.
### Le Playbook (`script.yml`)
C'est la que tout se joue donc. Elle est écrite en **YAML** et regroupe une liste de "Tasks" (tâches) qui font appel aux modules pour configurer les serveurs de l'inventaire.
## Le Flux de Travail (Workflow)
1. **Préparation SSH :** On génère une clé SSH sur le "Control Node" et on l'envoie sur les serveurs cibles pour permettre une connexion sans mot de passe.
2. **Écriture :** On rédige l'Inventaire et le Playbook.
3. **Test de connexion :** On vérifie qu'Ansible voit bien tout le monde avec la commande :
`ansible all -m ping -i inventory.yml`
4. **Exécution :** On lance le déploiement général avec la commande :
`ansible-playbook -i inventory.yml script.yml`
Simple

View File

@ -66,7 +66,7 @@ nav:
- learn/devops/2025-11-28.md - learn/devops/2025-11-28.md
- learn/devops/2025-12-12.md - learn/devops/2025-12-12.md
- learn/devops/2026-01-22.md - learn/devops/2026-01-22.md
- learn/devops/2026-02-25.md - learn/devops/2026-03-18.md
- ☕ Javascript: - ☕ Javascript:
- learn/javascript/2026-01-30.md - learn/javascript/2026-01-30.md
- learn/javascript/2026-02-06.md - learn/javascript/2026-02-06.md
@ -78,6 +78,7 @@ nav:
- learn/frontend/2026-02-21.md - learn/frontend/2026-02-21.md
- Projets: - Projets:
- Stage: - Stage:
- projects/stage/main.md
- projects/stage/2026-03-03.md - projects/stage/2026-03-03.md
- projects/stage/2026-03-09.md - projects/stage/2026-03-09.md
- projects/2025-12-05.md - projects/2025-12-05.md

View File

@ -866,14 +866,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="/learn/devops/2026-02-25.md" class="md-nav__link"> <a href="/learn/devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -932,14 +932,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="learn/devops/2026-02-25.md" class="md-nav__link"> <a href="learn/devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -889,14 +889,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../2026-02-25.md" class="md-nav__link"> <a href="../2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -1038,14 +1038,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../2026-02-25.md" class="md-nav__link"> <a href="../2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -12,7 +12,7 @@
<link rel="prev" href="../2025-12-12/"> <link rel="prev" href="../2025-12-12/">
<link rel="next" href="../2026-02-25.md"> <link rel="next" href="../2026-03-18/">
@ -1010,14 +1010,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../2026-02-25.md" class="md-nav__link"> <a href="../2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -889,14 +889,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../2026-02-25.md" class="md-nav__link"> <a href="../2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

File diff suppressed because one or more lines are too long

View File

@ -877,14 +877,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../devops/2026-02-25.md" class="md-nav__link"> <a href="../../devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -9,7 +9,7 @@
<link rel="prev" href="../../devops/2026-02-25.md"> <link rel="prev" href="../../devops/2026-03-18/">
<link rel="next" href="../2026-02-06/"> <link rel="next" href="../2026-02-06/">
@ -877,14 +877,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../devops/2026-02-25.md" class="md-nav__link"> <a href="../../devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -877,14 +877,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../devops/2026-02-25.md" class="md-nav__link"> <a href="../../devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -877,14 +877,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../devops/2026-02-25.md" class="md-nav__link"> <a href="../../devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -877,14 +877,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../devops/2026-02-25.md" class="md-nav__link"> <a href="../../devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -877,14 +877,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../devops/2026-02-25.md" class="md-nav__link"> <a href="../../devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -982,14 +982,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../devops/2026-02-25.md" class="md-nav__link"> <a href="../../devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -960,14 +960,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../devops/2026-02-25.md" class="md-nav__link"> <a href="../../devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -891,14 +891,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../../devops/2026-02-25.md" class="md-nav__link"> <a href="../../../devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -951,14 +951,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../../devops/2026-02-25.md" class="md-nav__link"> <a href="../../../devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -973,14 +973,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../../devops/2026-02-25.md" class="md-nav__link"> <a href="../../../devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -891,14 +891,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../../devops/2026-02-25.md" class="md-nav__link"> <a href="../../../devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -875,14 +875,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../learn/devops/2026-02-25.md" class="md-nav__link"> <a href="../../learn/devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -875,14 +875,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../learn/devops/2026-02-25.md" class="md-nav__link"> <a href="../../learn/devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -873,14 +873,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../learn/devops/2026-02-25.md" class="md-nav__link"> <a href="../../learn/devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -875,14 +875,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../../learn/devops/2026-02-25.md" class="md-nav__link"> <a href="../../../learn/devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -875,14 +875,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../../learn/devops/2026-02-25.md" class="md-nav__link"> <a href="../../../learn/devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

View File

@ -871,14 +871,14 @@
<li class="md-nav__item"> <li class="md-nav__item">
<a href="../../../learn/devops/2026-02-25.md" class="md-nav__link"> <a href="../../../learn/devops/2026-03-18/" class="md-nav__link">
<span class="md-ellipsis"> <span class="md-ellipsis">
none Automatiser avec Ansible

File diff suppressed because one or more lines are too long