**JINYA**\\ * Nice examples: https://github.com/dgjnpr/ansible-template-for-junos * It uses a template file (jinja) and a //templating code// (in python) but it might be easier to use Ansible instead of the python code (see [[https://en.wikipedia.org/wiki/Jinja_(template_engine)|External Link]]).\\ * All the links plus a tutorial can be found [[http://vulgarpython.com/jinja2-templates-for-network-automation/|here]] * Loop with variable and multiple template and targets : [[http://www.mydailytutorials.com/ansible-template-module-examples/|Link]] \\ Note that, in Ansible, ROLES are the ones that generate the configurations, **Roles are made up of a task and one or more template file**. \\ VARIABLE time-zone {{ location.time_zone }}; FOR LOOP {% for name_server in location.name_servers %} {{ name_server }}; {% endfor %} IF STATEMENTS {% if item[0] is short_caption %} {# do something here #} {% endif %} INCLUDING CONTENT OF FILES IN THE RENDERED TEMPLATE: system{ {% include "login.j2" %} {% include "services.j2" %} } INCLUDING BLOCKS:\\ Note that this is the parent configuration, having the section inside the block 'elegible' to be overriden. services { ssh; {% block dhcp %} dhcp{ pool 0.0.0.0/0; } {% endblock dhcp %} }