3d59eada20
As by default they are set on auto, test setting the speed on them fail, we need to disable it upfront.
259 lines
6.5 KiB
YAML
259 lines
6.5 KiB
YAML
---
|
|
- debug: msg="START ios_interface cli/basic.yaml"
|
|
|
|
- name: Run show version
|
|
ios_command:
|
|
commands: show version
|
|
authorize: yes
|
|
register: show_version_result
|
|
|
|
- block:
|
|
- name: Set test interface to GigabitEthernet0/1 as we are on Cisco IOS
|
|
set_fact: test_interface=GigabitEthernet0/1
|
|
- name: Set test interface 2 to GigabitEthernet0/2 as we are on Cisco IOS
|
|
set_fact: test_interface2=GigabitEthernet0/2
|
|
when: "'Cisco IOS' in show_version_result.stdout[0]"
|
|
|
|
- block:
|
|
- name: Set test interface to GigabitEthernet2 as we are on Cisco IOS-XE
|
|
set_fact: test_interface=GigabitEthernet2
|
|
- name: Disable autonegotiation on GigabitEthernet2
|
|
ios_config:
|
|
lines:
|
|
- no negotiation auto
|
|
parents: int GigabitEthernet2
|
|
|
|
- name: Set test interface 2 to GigabitEthernet3 as we are on Cisco IOS-XE
|
|
set_fact: test_interface2=GigabitEthernet3
|
|
- name: Disable autonegotiation on GigabitEthernet3
|
|
ios_config:
|
|
lines:
|
|
- no negotiation auto
|
|
parents: int GigabitEthernet3
|
|
when: "'Cisco IOS-XE' in show_version_result.stdout[0]"
|
|
|
|
- name: Configure interface (setup)
|
|
ios_interface:
|
|
name: "{{ test_interface }}"
|
|
description: test-interface-1
|
|
speed: 1000
|
|
mtu: 1500
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- name: Configure interface
|
|
ios_interface:
|
|
name: "{{ test_interface }}"
|
|
description: test-interface-initial
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"description test-interface-initial" in result.commands'
|
|
|
|
- name: Confgure interface (idempotent)
|
|
ios_interface:
|
|
name: "{{ test_interface }}"
|
|
description: test-interface-initial
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == false'
|
|
|
|
- name: Confgure interface parameters
|
|
ios_interface:
|
|
name: "{{ test_interface }}"
|
|
description: test-interface
|
|
mtu: 1600
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"description test-interface" in result.commands'
|
|
- '"mtu 1600" in result.commands'
|
|
|
|
- name: Change interface parameters
|
|
ios_interface:
|
|
name: "{{ test_interface }}"
|
|
description: test-interface-1
|
|
mtu: 1500
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"description test-interface-1" in result.commands'
|
|
- '"mtu 1500" in result.commands'
|
|
|
|
- name: Disable interface
|
|
ios_interface:
|
|
name: "{{ test_interface }}"
|
|
enabled: False
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"shutdown" in result.commands'
|
|
|
|
- name: Enable interface
|
|
ios_interface:
|
|
name: "{{ test_interface }}"
|
|
enabled: True
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"no shutdown" in result.commands'
|
|
|
|
- name: Confgure second interface (setup)
|
|
ios_interface:
|
|
name: "{{ test_interface2 }}"
|
|
description: test-interface-initial
|
|
speed: 1000
|
|
mtu: 1500
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- name: Add interface aggregate
|
|
ios_interface:
|
|
aggregate:
|
|
- { name: "{{ test_interface }}", mtu: 1500, description: test-interface-1 }
|
|
- { name: "{{ test_interface2 }}", mtu: 1600, description: test-interface-2 }
|
|
speed: 1000
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"mtu 1500" in result.commands'
|
|
- '"interface {{ test_interface2 }}" in result.commands'
|
|
- '"description test-interface-2" in result.commands'
|
|
- '"mtu 1600" in result.commands'
|
|
|
|
- name: Add interface aggregate (idempotent)
|
|
ios_interface:
|
|
aggregate:
|
|
- { name: "{{ test_interface }}", mtu: 1500, description: test-interface-1 }
|
|
- { name: "{{ test_interface2 }}", mtu: 1600, description: test-interface-2 }
|
|
speed: 1000
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == false'
|
|
|
|
- name: Disable interface aggregate
|
|
ios_interface:
|
|
aggregate:
|
|
- "name: {{ test_interface }}"
|
|
- "name: {{ test_interface2 }}"
|
|
enabled: False
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"shutdown" in result.commands'
|
|
- '"interface {{ test_interface2 }}" in result.commands'
|
|
- '"shutdown" in result.commands'
|
|
|
|
- name: Enable interface aggregate
|
|
ios_interface:
|
|
aggregate:
|
|
- "name: {{ test_interface }}"
|
|
- "name: {{ test_interface2 }}"
|
|
enabled: True
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface {{ test_interface }}" in result.commands'
|
|
- '"no shutdown" in result.commands'
|
|
- '"interface {{ test_interface2 }}" in result.commands'
|
|
- '"no shutdown" in result.commands'
|
|
|
|
- name: loopback interface setup
|
|
ios_interface:
|
|
aggregate:
|
|
- name: Loopback9
|
|
- name: Loopback10
|
|
state: absent
|
|
authorize: yes
|
|
|
|
- name: Create loopback interface aggregate
|
|
ios_interface:
|
|
aggregate:
|
|
- name: Loopback9
|
|
- name: Loopback10
|
|
state: present
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"interface Loopback9" in result.commands'
|
|
- '"interface Loopback10" in result.commands'
|
|
|
|
- name: Delete loopback interface aggregate
|
|
ios_interface:
|
|
aggregate:
|
|
- name: Loopback9
|
|
- name: Loopback10
|
|
state: absent
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == true'
|
|
- '"no interface Loopback9" in result.commands'
|
|
- '"no interface Loopback10" in result.commands'
|
|
|
|
- name: Delete loopback interface aggregate (idempotent)
|
|
ios_interface:
|
|
aggregate:
|
|
- name: Loopback9
|
|
- name: Loopback10
|
|
state: absent
|
|
authorize: yes
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- 'result.changed == false'
|
|
|
|
- debug: msg="END ios_interface cli/basic.yaml"
|