YAML signifie “YAML Ain’t Markup Language”.
C’est un format de fichier lisible par l’humain, utilisé pour représenter des données structurées (configuration, échanges entre services, automatisation, etc.).
L’indentation définit la structure.
⚠️ Toujours utiliser des espaces, jamais des tabulations.
Exemple :
personne: nom: Dupont age: 30
clé: valeur
Exemples :
nom: Alice age: 27 langue: français
On utilise # :
version: 1.2 # numéro de version
message: "Bonjour" autre: Bonjour ligne_multiple: | Ceci est une chaîne sur plusieurs lignes.
texte_litteral: | Première ligne Deuxième ligne texte_plie: > Ceci est un texte qui sera mis sur une seule ligne.
entier: 42 flottant: 3.14 scientifique: 1e6
actif: true connecté: false
champ_vide: null champ2: ~
fruits: - pomme - banane - kiwi
couleurs: [rouge, vert, bleu]
utilisateur: nom: Martin ville: Québec actif: true
employes:
- nom: Alice
poste: développeuse
- nom: Bob
poste: designer
produit:
nom: Ordinateur
options:
- SSD
- 32GB RAM
Permettent d’éviter la répétition de blocs.
par_defaut: &defaut rôle: utilisateur actif: true alice: <<: *defaut nom: Alice bob: <<: *defaut nom: Bob actif: false
Permet d’avoir plusieurs documents YAML dans un seul fichier :
--- nom: Alice age: 31 --- nom: Bob age: 28
✔️ Utiliser 2 espaces pour l’indentation
✔️ Bien structurer les données selon leur sens
✔️ Préférer le style multi-ligne (|) pour garder la mise en forme
✔️ Utiliser des ancres pour éviter les répétitions
✔️ Valider votre fichier avec un linter YAML
application: nom: MonApp version: 1.0 serveur: port: 8080 mode: production base_de_données: hôte: localhost port: 5432 utilisateur: admin mot_de_passe: secret
apiVersion: v1
kind: Pod
metadata:
name: mon-pod
spec:
containers:
- name: app
image: monapp:latest
ports:
- containerPort: 3000
- name: Installer nginx
hosts: web
become: true
tasks:
- name: Installer paquet nginx
apt:
name: nginx
state: present
❌ Tabulations interdites
❌ Ne pas mélanger indentation de 2 et 4 espaces
❌ Les caractères spéciaux doivent être entre guillemets :
mot_de_passe: "!#%secret"