--- - debug: msg="START connection={{ ansible_connection }} nxos_interface sanity test" - debug: msg="Using provider={{ connection.transport }}" when: ansible_connection == "local" - set_fact: testint="{{ nxos_int1 }}" - name: "Setup: Enable feature interface-vlan" nxos_feature: feature: interface-vlan state: enabled provider: "{{ connection }}" ignore_errors: yes - name: "Setup: Put interface {{ testint }} into a default state" nxos_config: &intcleanup lines: - "default interface {{ testint }}" provider: "{{ connection }}" ignore_errors: yes - name: "Setup: Remove possibly existing vlan interfaces" nxos_config: &vlanintcleanup lines: - "no interface vlan 2" - "no interface vlan 710" - "no interface vlan 711" - "no interface vlan 712" provider: "{{ connection }}" ignore_errors: yes - block: - name: "Configure layer3 params" nxos_interface: &l3config interface: "{{ testint }}" mode: layer3 description: 'Configured by Ansible - Layer3' admin_state: up state: present provider: "{{ connection }}" register: result - assert: &true that: - "result.changed == true" - name: "Check Idempotence" nxos_interface: *l3config register: result - assert: &false that: - "result.changed == false" - name: "Configure layer2 params" nxos_interface: &l2config interface: "{{ testint }}" mode: layer2 description: 'Configured by Ansible - Layer2' admin_state: down state: present provider: "{{ connection }}" register: result - assert: *true - name: "Check Idempotence" nxos_interface: *l2config register: result - assert: *false - name: Create VLAN Interfaces nxos_interface: &createvlans interface: "{{ item.os_svi_int }}" description: "{{ item.os_svi_desc }}" provider: "{{ connection }}" with_items: &vlanitems - {os_svi_int: vlan2, os_svi_desc: SVI_VLAN2} - {os_svi_int: vlan710, os_svi_desc: SVI_VLAN710} - {os_svi_int: vlan711, os_svi_desc: SVI_VLAN711} - {os_svi_int: vlan712, os_svi_desc: SVI_VLAN712} register: result - assert: *true - name: Configure Required SVI nxos_ip_interface: &addips interface: "{{ item.os_svi_int }}" addr: "{{ item.ipv4_addr }}" mask: "{{ item.ipv4_mask }}" version: "{{ item.ipv4_ver }}" provider: "{{ connection }}" with_items: &vlanips - {os_svi_int: vlan2, ipv4_addr: 192.168.2.1, ipv4_mask: 24, ipv4_ver: v4} - {os_svi_int: vlan710, ipv4_addr: 192.168.3.1, ipv4_mask: 24, ipv4_ver: v4} - {os_svi_int: vlan711, ipv4_addr: 192.168.4.1, ipv4_mask: 24, ipv4_ver: v4} - {os_svi_int: vlan712, ipv4_addr: 192.168.5.1, ipv4_mask: 24, ipv4_ver: v4} register: result - assert: *true - name: Create VLAN Interfaces Idempotence Check nxos_interface: *createvlans with_items: *vlanitems register: result - assert: *false - name: Configure Required SVI Idempotence Check nxos_ip_interface: *addips with_items: *vlanips register: result - assert: *false rescue: - name: "Set interface back to default" nxos_config: *intcleanup ignore_errors: yes - name: "Remove vlan interfaces" nxos_config: *vlanintcleanup - name: "Setup: Disable feature interface-vlan" nxos_feature: feature: interface-vlan state: disabled provider: "{{ connection }}" ignore_errors: yes always: - debug: msg="END connection={{ ansible_connection }} nxos_interface sanity test"