3.3. Sample Jinja Template data to use with j2config

! ---------------------------------------------------------------------------- !
!   SAMPLE JINJA SECTION - TO DEFINE THE OBJECTS WITHIN TEMPLATE
! ---------------------------------------------------------------------------- !

{#- =========================================================================== -#}
                                                {#- DEFINE OBJECTS -#}
{#- =========================================================================== -#}
{% set Physical = table | Physical -%}




! ---------------------------------------------------------------------------- !
!   SAMPLE JINJA SECTION - TO GENERATING PHYSICAL INTERFACE CONFIGURATION
! ---------------------------------------------------------------------------- !

{% for data in Physical | sorted_interfaces -%}
interface {{ data.interface }}
description {{ data.description }}
{% for vlan_group in data.vlan_members | str_to_list | groups_of_nine -%}
{% if loop.index == 1 -%}
switchport trunk allowed vlan {{ vlan_group | comma_separated }}
{%- else -%}
switchport trunk allowed vlan add {{ vlan_group | comma_separated }}
{%- endif %}
{% endfor -%}
switchport mode trunk
switchport nonegotiate
{% if data.link_status.lower() in ('administratively down', 'disabled') -%}
shutdown
{%- else -%}
no shutdown
{%- endif %}
!
{% endfor -%}



! ---------------------------------------------------------------------------- !
!   SAMPLE JINJA SECTION - TO MODIFY ACL / var table customer_servers DATA
! ---------------------------------------------------------------------------- !

ip access-list standard 100
10 remark /**********************************************
20 remark Permitted servers for ACL 100
30 remark **********************************************/
{% for server in var.customer_servers | str_to_list -%}
{{ (loop.index+3)*10 }} permit {{ server | nth_ip(0) }} {{ server | invmask }}
{% endfor -%}
9990 deny   any
!
logging host {{ var.syslog_server_1 }}
logging host {{ var.syslog_server_2 }}
ntp server {{ var.ntp_server_1 }}
ntp server {{ var.ntp_server_2 }}
!

! ---------------------------------------------------------------------------- !
!  ... And Many More.. (Explore it by self)
! ---------------------------------------------------------------------------- !

Notice

  • Make a note that output generates based on jinja template and template variables.

  • Make sure to cross-check the generated facts before using it.