En réseau, je suis vraiment fan de deux technologies : Jinja est l’une des deux.
La principale raison ? Son excellent compromis entre puissance et simplicité d’usage.
Jinja est un langage de templating très puissant, mais centré sur l’accès aux données, pas sur leur traitement, ce qui en fait un outil pertinent, facile à apprendre et qui reste lisible.
Pas un vrai langage informatique (comme Embedded Ruby ou ERP, le langage de templating Ruby qui permet d’utiliser du code Ruby à l’intérieur du template), mais pas non plus juste une simple outil de substitution de variables : on n’est rarement frustré par un manque de fonctionnalités, tout en gardant des templates compréhensibles..
Bref, dans mes LLD, je livre désormais mes configurations sous forme de templates Jinja, et mes homologues architectes ou techniciens ne s’en plaignent pas plus.
Pour mon usage personnel, j’ai créé un mémento de la syntaxe et des fonctions Jinja dans un contexte réseau (je m’en sers de Jinja pour produire des playbooks Ansible ou des configurations CLI en Cisco, Juniper ou Ekinops).
Il est disponible sur ma page github –> Jinja Cheatsheet for network Engineers .