140 lines
3 KiB
YAML
140 lines
3 KiB
YAML
|
---
|
||
|
- debug: msg="START connection={{ ansible_connection }} ios_l2_interface sanity test"
|
||
|
|
||
|
- name: "Setup interface"
|
||
|
ios_config: &default
|
||
|
lines:
|
||
|
- "default interface {{ test_interface }}"
|
||
|
provider: "{{ cli }}"
|
||
|
|
||
|
- name: set trunk encapsulation type
|
||
|
ios_config:
|
||
|
lines:
|
||
|
- switchport trunk encapsulation dot1q
|
||
|
parents:
|
||
|
- "interface {{ test_interface }}"
|
||
|
provider: "{{ cli }}"
|
||
|
|
||
|
- name: "Setup vlans"
|
||
|
ios_vlan:
|
||
|
aggregate:
|
||
|
- vlan_id: 5
|
||
|
- vlan_id: 6
|
||
|
- vlan_id: 7
|
||
|
- vlan_id: 8
|
||
|
- vlan_id: 9
|
||
|
- vlan_id: 10
|
||
|
- vlan_id: 20
|
||
|
provider: "{{ cli }}"
|
||
|
|
||
|
- block:
|
||
|
- name: Ensure interface is in its default switchport state
|
||
|
ios_l2_interface: &def_swi
|
||
|
name: "{{ test_interface }}"
|
||
|
state: unconfigured
|
||
|
provider: "{{ cli }}"
|
||
|
|
||
|
- name: Ensure interface is configured for access vlan 20
|
||
|
ios_l2_interface: &acc_vl
|
||
|
name: "{{ test_interface }}"
|
||
|
mode: access
|
||
|
access_vlan: 20
|
||
|
provider: "{{ cli }}"
|
||
|
register: result
|
||
|
|
||
|
- assert: &true
|
||
|
that:
|
||
|
- "result.changed == true"
|
||
|
|
||
|
- name: "access vlan Idempotence"
|
||
|
ios_l2_interface: *acc_vl
|
||
|
register: result
|
||
|
|
||
|
- assert: &false
|
||
|
that:
|
||
|
- "result.changed == false"
|
||
|
|
||
|
- name: Ensure interface only has vlans 5-10 as trunk vlans
|
||
|
ios_l2_interface: &tr_vl
|
||
|
name: "{{ test_interface }}"
|
||
|
mode: trunk
|
||
|
native_vlan: 10
|
||
|
trunk_allowed_vlans: 5-10
|
||
|
provider: "{{ cli }}"
|
||
|
register: result
|
||
|
|
||
|
- assert: *true
|
||
|
|
||
|
- name: "trunk vlan Idempotence"
|
||
|
ios_l2_interface: *tr_vl
|
||
|
register: result
|
||
|
|
||
|
- assert: *false
|
||
|
|
||
|
- name: Ensure interface is a trunk port and ensure 2-50 are being tagged (doesn't mean others aren't also being tagged)
|
||
|
ios_l2_interface: &tag
|
||
|
name: "{{ test_interface }}"
|
||
|
mode: trunk
|
||
|
native_vlan: 10
|
||
|
trunk_vlans: 2-50
|
||
|
provider: "{{ cli }}"
|
||
|
register: result
|
||
|
|
||
|
- assert: *true
|
||
|
|
||
|
- name: "tag vlan Idempotence"
|
||
|
ios_l2_interface: *tag
|
||
|
register: result
|
||
|
|
||
|
- assert: *false
|
||
|
|
||
|
- name: Ensure these VLANs are not being tagged on the trunk
|
||
|
ios_l2_interface: &no_tag
|
||
|
name: "{{ test_interface }}"
|
||
|
mode: trunk
|
||
|
trunk_vlans: 30-4094
|
||
|
state: absent
|
||
|
provider: "{{ cli }}"
|
||
|
register: result
|
||
|
|
||
|
- assert: *true
|
||
|
|
||
|
- name: "no tag vlan Idempotence"
|
||
|
ios_l2_interface: *no_tag
|
||
|
register: result
|
||
|
|
||
|
- assert: *false
|
||
|
|
||
|
- name: put interface default state
|
||
|
ios_l2_interface: *def_swi
|
||
|
register: result
|
||
|
|
||
|
- assert: *true
|
||
|
|
||
|
- name: "default state idempotence"
|
||
|
ios_l2_interface: *def_swi
|
||
|
register: result
|
||
|
|
||
|
- assert: *false
|
||
|
|
||
|
always:
|
||
|
- name: "remove vlans"
|
||
|
ios_vlan:
|
||
|
aggregate:
|
||
|
- vlan_id: 5
|
||
|
- vlan_id: 6
|
||
|
- vlan_id: 7
|
||
|
- vlan_id: 8
|
||
|
- vlan_id: 9
|
||
|
- vlan_id: 10
|
||
|
- vlan_id: 20
|
||
|
state: absent
|
||
|
provider: "{{ cli }}"
|
||
|
ignore_errors: yes
|
||
|
|
||
|
- name: "default interface"
|
||
|
ios_config: *default
|
||
|
ignore_errors: yes
|
||
|
|
||
|
- debug: msg="END connection={{ ansible_connection }} ios_l2_interface sanity test"
|