mirror of
				https://github.com/ansible-collections/community.general.git
				synced 2024-09-14 20:13:21 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			168 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			168 lines
		
	
	
	
		
			3.8 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: Remove full trunk vlan range 2-50
 | |
|     ios_l2_interface: &no_tag
 | |
|       name: "{{ test_interface }}"
 | |
|       mode: trunk
 | |
|       trunk_vlans: 2-50
 | |
|       state: absent
 | |
|       provider: "{{ cli }}"
 | |
|     register: result
 | |
| 
 | |
|   - assert: *true
 | |
| 
 | |
|   - name: Check Idempotence Remove full trunk vlan range 2-50
 | |
|     ios_l2_interface: *no_tag
 | |
|     register: result
 | |
| 
 | |
|   - assert: *false
 | |
| 
 | |
|   - name: Reconfigure interface trunk port and ensure 2-50 are being tagged
 | |
|     ios_l2_interface: *tag
 | |
|     register: result
 | |
| 
 | |
|   - assert: *true
 | |
| 
 | |
|   - name: Check Idempotence Reconfigure interface trunk port and ensure 2-50 are being tagged
 | |
|     ios_l2_interface: *tag
 | |
|     register: result
 | |
| 
 | |
|   - assert: *false
 | |
| 
 | |
|   - name: Remove partial trunk vlan range 30-4094 are removed
 | |
|     ios_l2_interface: &partial
 | |
|       name: "{{ test_interface }}"
 | |
|       mode: trunk
 | |
|       trunk_vlans: 30-4094
 | |
|       state: absent
 | |
|       provider: "{{ cli }}"
 | |
|     register: result
 | |
| 
 | |
|   - assert: *true
 | |
| 
 | |
|   - name: Check Idempotence Remove partial trunk vlan range 30-4094 are removed
 | |
|     ios_l2_interface: *partial
 | |
|     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"
 |