Page 1 sur 1

Moteur de Templating

Posté : 03 oct. 2016 - 17:19
par Aguay
Bonjour,

J'aurais aimé savoir si il y avait une sorte de moteur de templating.

Genre dans un fichier de conf on met "{{ hostname }}" et ca récupère le nom du poste.

Ça permettrais de générer des fichiers de conf unique pour chaque poste. J'ai pas trop trouvé d'info sur ce sujet. Si certains en ont je suis intéressé.

Et même si certaines personnes ont des "Workarounds" je suis intéressé.

Merci d'avance !

Re: Moteur de Templating

Posté : 05 oct. 2016 - 11:50
par Aguay
Je vais répondre à moi même pour peut être aider d'autre utilisateur :)

Il existe Jinja2 sur chaque poste avec les clients du coup il est possible d'utiliser cette librairie pour créer des templates de configuration.

Voici un extrait du paquet utilisant Jinja2:

Code : Tout sélectionner

from jinja2 import Environment, FileSystemLoader

THIS_DIR = os.getcwd()
j2_env = Environment(loader=FileSystemLoader(THIS_DIR),
                         trim_blocks=True)
template = j2_env.get_template('template.yml')
file = open('config.yml', 'w')
file.write(template.render(value="Une valeur"))
file.close()
Et dans mon fichier template.yml il y a quelque chose du genre :

Code : Tout sélectionner

# template.yml

server_url: https://exemple.com
agent_name : {{ value }}
Du coup lors de l'exécution, on peut mettre une variable dans le champs de la valeur à appliquer au template.

C'est un exemple réduit au plus simple, mais ça peut aider ;)

Re: Moteur de Templating

Posté : 26 oct. 2016 - 14:31
par Ekouyoja
Merci de l'info, je ne savais même pas qu'il embarquait jinja2 pour pouvoir faire des templates ce qui peut être très pratique pour de la gestion de poste. :D