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