YAML est un format de représentation des données semblable à XML ou JSON.
Originalement, cet acronyme venait de Yet Another Markup Language. Ironiquement, il signifie maintenant YAml ain't Markup Language.
Le format YAML ressemble énormément au JSON. En fait, YAML est un sur-ensemble de JSON.
Alors que JSON est le champion comme format d'échange de données, YAML est le préféré pour les fichiers de configuration.
En effet, contrairement à JSON, le format YAML permet :
Dans un fichier YAML, on retrouve une série de blocs de configuration.
On donnera un nom à chacun des blocs.
Le nom d'un bloc doit respecter ces conditions :
Dans un bloc, on peut retrouver des collections dans lesquelles chaque item débute par un trait d'union.
On peut également retrouver des paires clé-valeur au format cle: valeur.
nom_du_bloc:
- item1: valeur1
autrecleitem1: autrevaleuritem1
- item2: valeur2
autrecleitem2: autrevaleuritem2
Il est possible d'imbriquer les collections et les paires clé-valeur. L'indentation est la seule façon pour indiquer une imbrication.
Les fichiers YAML doivent répondre à ces exigences :
Lorsqu'une configuration comporte plusieurs lignes, il faut utliser l'un de ces caractères :
Dans les deux cas, on peut ajouter un trait d'union après le caractère afin d'indiquer qu'il faut enlever les sauts de ligne à la fin de la chaîne.
value_template: >-
{% if is_state('input_boolean.porte_virtuelle', 'on') %}
Ouverte
{% else %}
Fermée
{% endif %}
Voici quelques exemples de fichiers de configuration YAML.
Ce fichier est utilisé par le logiciel domotique Home Assistant.
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
# SMTP
notify:
- name: courriel_administrateur
platform: smtp
sender: homeassistant@mondomaine.com
server: mail.mondomaine.com
timeout: 15
port: 587
encryption: starttls
username: homeassistant@mondomaine.com
password: mot_de_passse_en_clair
sender_name: Home Assistant
recipient: destinataire@sondomaine.com
# Text to speech
tts:
- platform: google_translate
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
Ce fichier est utilisé par les développeurs Laravel pour configurer leur environnement Homestead.
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
backup: true
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Documents/CodeLaravel
to: /home/vagrant/code
sites:
- map: monsite.test
to: /home/vagrant/code/monsite/public
php : "7.4"
- map: autresite.test
to: /home/vagrant/code/autresite/public
databases:
- homestead
« YAML ». Wikipédia. https://fr.wikipedia.org/wiki/YAML
« YAML ». yaml.org. https://yaml.org/
« Why JSON isn't a good configuration language ». Lucidchart. https://www.lucidchart.com/techblog/2018/07/16/why-json-isnt-a-good-configuration-language/
« YAML idiosyncrasies ». SaltStack. https://docs.saltstack.com/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html
« YAML Style Guide ». Home Assistant. https://developers.home-assistant.io/docs/documenting/yaml-style-guide/
« YAML Multiline ». YAML Multiline. https://yaml-multiline.info/
« YAML Ain’t Markup Language (YAML™) version 1.2 - Scalars ». yaml.org. https://yaml.org/spec/1.2.2/#23-scalars
▼Publicité