Jinja2
Jinja2 er en templating engine som brukes i Ansible.
Det gjør det veldig lett å lage dynamiske eller statisk konfigurasjonsfil for IOS enheter.
Vi bygger videre på rolle eksempelet fra tidligere.
Vi oppretter en fil som heter vlan.j2 i templates mappen også importere vi denne tasken i main.yml filen.
mkdir roles/collapsed_core/templates
nano roles/collapsed_core/templates/vlan.j2
vlan.js2:
vtp domain none vtp mode off vlan 301 name vlan301 vlan 302 name vlan302 vlan 303 name vlan303
--- - name: Opprett vlan med jinja2 ios_config: src: "vlan.j2" match: line
--- - name: Ping gateway ios_ping: dest: 10.170.0.1 count: 1 - name: Aktiver LLDP import_tasks: lldp.yaml tags: lldp - name: Opprett vlan import_tasks: vlan.yaml tags: vlan
ansible-playbook playbook_rolle_collapsed_core.yaml -k --t vlan PLAY [playbook_rolle_collapsed_core] *************************************************************************************************************************************************************************************************** TASK [collapsed_core : Opprett vlan med jinja2] **************************************************************************************************************************************************************************************** changed: [IOS_XE_switch_3] changed: [IOS_XE_switch_4] PLAY RECAP ***************************************************************************************************************************************************************************************************************************** IOS_XE_switch_3 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 IOS_XE_switch_4 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
--- vlan: - vlan_id: 304 vlan_name: vlan304 - vlan_id: 305 vlan_name: vlan305 - vlan_id: 306 vlan_name: vlan306
vtp domain none vtp mode off {% for v in vlan %} vlan {{ v.vlan_id }} name {{ v.vlan_name }} {% endfor %}
ansible-playbook playbook_rolle_collapsed_core.yaml -k -t vlan SSH password: PLAY [playbook_rolle_collapsed_core] *************************************************************************************************************************************************************************************************** TASK [collapsed_core : Opprett vlan med jinja2] **************************************************************************************************************************************************************************************** changed: [IOS_XE_switch_3] changed: [IOS_XE_switch_4] PLAY RECAP ***************************************************************************************************************************************************************************************************************************** IOS_XE_switch_3 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 IOS_XE_switch_4 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0