Yaml
Ansible:
- YAML
- Langage descriptif
exécution lente (par rapport à JSON) / parsing
commence toujour par --- mais ok sans
yaml linter pour tester le code
https://yamlchecker.com
https://yamlvalidator.com # + json
les types de données:
Scalars (string et chiffres)
---
name: "Name"
premon: Leo
age: 18
Sequences (tableaux)
Ordre important (ordonné)
---
tableau:
- "premier"
- "deuxieme"
- "troisieme"
format JSON dans YAML
tableau: ["premier", "deuxieume", "troisieme"]
Dictionnaire)
---
mysqldatabase:
hostname: localhost
username: root
password: 1234
format JSON dans YAML
mysqldatabase: { hostname: localhost, username: root, password: 1234 }
Mapping (objets) / mélange des deux
C'est l'indentation qui défini les regroupements des objets.
---
objet:
prenom: Leo
age: 18
tableau:
- "premier"
- "deuxieme"
- "troisieme"
- quatrieme:
uneCle: test
Multi lignes
Ecrire plusieurs lignes dans une meme commande ( | pipe )
---
action:
script: |
echo "Espace disque" > /tmp/txt.log
df -Th >> /tmp/txt.log]
Ecrire une ligne de commande longue (> chevron)
---
action:
script: >
ssh -p 22 root@192.168.0.22
"df -Th >> /tmp/txt.log"
Et équivalent à
ssh -p 22 root@192.168.0.22 "df -Th >> /tmp/txt.log"
Les encres
C'est le '& qui définie l'encre
Et pour lier une autre variable à l'encre on utilise '*'
passwd1: 1234 &motdepasse
passwd2: *motdepasse
Les encres multilignes
dev-template: &env
var:
dir: /usr
script: |
echo "Espace disque" > /
df -Th >> /tmp/txt.log
prod:
<<: *env
dev:
<<: *env
dir: /srv