Página 1 de 1

Motor de plantillas

Publicado: 3 de octubre de 2016 - 17:19
por Aguay
Hola,

me gustaría saber si existe algún tipo de motor de plantillas.

Por ejemplo, en un archivo de configuración, se podría escribir "{{ hostname }}" y recuperaría el nombre de host.

Esto permitiría generar archivos de configuración únicos para cada estación de trabajo. No he encontrado mucha información al respecto. Si alguien tiene alguna, me interesaría.

Incluso si alguien conoce alguna solución alternativa, también me interesaría.

¡Gracias de antemano!

Re: Motor de plantillas

Publicado: 5 de octubre de 2016 - 11:50 a. m.
por Aguay
Voy a responderme yo mismo para quizás ayudar a otros usuarios :)

Jinja2 está presente en cada máquina con los clientes, por lo que es posible utilizar esta biblioteca para crear plantillas de configuración.

Aquí hay un extracto del paquete que utiliza Jinja2:

Código: Seleccionar todo

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()
Y en mi archivo template.yml hay algo como esto:

Código: Seleccionar todo

# template.yml

server_url: https://exemple.com
agent_name : {{ value }}
Por lo tanto, durante la ejecución, podemos poner una variable en el campo del valor que se aplicará a la plantilla.

Este es un ejemplo muy simple, pero podría ayudar ;)

Re: Motor de plantillas

Publicado: 26 de octubre de 2016 - 14:31
por Ekouyoja
Gracias por la información, ni siquiera sabía que incluía Jinja2 para poder hacer plantillas, que pueden ser muy útiles para administrar estaciones de trabajo. :D