Le YAML: c'est bon mangez en!
Les basiques du devops
Tuesday, Jan, 2020 By Derios.
C’est quoi?
Ce n’est pas du XML.. on est bien avancé!
C’est une language fait par des humains pour des humains qui fait le taff avec beaucoup de languages de programmation moderne.
Quand on fait du devops, on manipule du YAML absolument PARTOUT (docker,elasticstack,docker-compose,ansible,prometheus,python,gitlab-ci,k8s,openshift..)
Rentrons dans le sujet.
Le YAML permet nombre de chose .. la bible.
Je ne vais faire au final que le survoler.
Mais pour être franc à moins de besoin spécifique, je n’ai pas eu le besoin au jour le jour de vraiment pousser jusqu'à la maîtrise.
Les différent type de valeur
sting: 'un'
bolean: true
bolean: false
null: null
int: 1
date: 2002-12-14
Une liste
Deux syntaxes.
liste: ['un','deux','trois']
autre_liste:
- 1
- 2
- 3
Les ancres
*anchor
: set la valeur
<<: *anchor
: permet d’extend
Utilisation dans un pipeline gitlab
Ex: dans une pipeline Gitlab (ce qui sert à faire des templates), le .
sert à commenter un job pour qu’il ne s’execute pas.
# Mes trois scripts sont strictement équivalent.
.template: &template
stage: test
script:
- |
if [ -n $TEST ]; then
echo 'hello world'
fi
- >
if [ -n $TEST ]; then
echo 'hello world';
fi
- if [ -n $TEST ]; then echo 'hello world'; fi
.template_script: &template_script
- |
if [ -n $TEST ]; then
echo 'hello world'
fi
- >
if [ -n $TEST ]; then
echo 'hello world';
fi
- if [ -n $TEST ]; then echo 'hello world'; fi
job1:
<<: *template
rules:
- if $CI_COMMIT_REF_NAME == "master"
when: always
job2:
<<: *template
rules:
- if: $CI_COMMIT_REF_NAME == "master"
when: manual
job3:
stage: test
script: *template_script
rules:
- if: $CI_COMMIT_REF_NAME == "master"
when: manual
Conclusion
Un article court, mais qui met le pied à l'étrier pour réaliser pipeline, compose file sans trop de duplication de code !