--- - debug: msg="START connection={{ ansible_connection }} nxos_vlan sanity test" - debug: msg="Using provider={{ connection.transport }}" when: ansible_connection == "local" - set_fact: testint1="{{ nxos_int1 }}" - set_fact: testint2="{{ nxos_int2 }}" - block: - name: Install and Enable FabricPath feature set nxos_config: lines: - install feature-set fabricpath - feature-set fabricpath when: platform is search('N5K|N7K') - name: "Enable feature vn segment" nxos_config: commands: - feature vn-segment-vlan-based match: none when: platform is search('N9K') - name: Ensure a range of VLANs are present on the switch nxos_vlan: &conf_vlan vlan_range: "2-10,20,50,55-60,100-150" register: result - assert: &true that: - "result.changed == true" - name: "Vlan Idempotence" nxos_vlan: *conf_vlan register: result - assert: &false that: - "result.changed == false" - name: Ensure VLAN 50 exists with the name WEB and is in the shutdown state nxos_vlan: &web1 vlan_id: 50 vlan_state: suspend admin_state: down name: WEB mapped_vni: 5555 register: result when: platform is search('N9K') - assert: *true when: platform is search('N9K') - name: "web1 Idempotence" nxos_vlan: *web1 register: result when: platform is search('N9K') - assert: *false when: platform is search('N9K') - name: change name and vni to default nxos_vlan: &web2 vlan_id: 50 vlan_state: active admin_state: up name: default mapped_vni: default register: result when: platform is search('N9K') - assert: *true when: platform is search('N9K') - name: "web2 Idempotence" nxos_vlan: *web2 register: result when: platform is search('N9K') - assert: *false when: platform is search('N9K') - name: Ensure VLAN 50 exists with the name WEB and is in the shutdown state nxos_vlan: &web3 vlan_id: 50 vlan_state: suspend admin_state: down name: WEB register: result when: platform is search('N3K|N7K') - assert: *true when: platform is search('N3K|N7K') - name: "web3 Idempotence" nxos_vlan: *web3 register: result when: platform is search('N3K|N7K') - assert: *false when: platform is search('N3K|N7K') - name: Change name to default nxos_vlan: &web4 vlan_id: 50 vlan_state: active admin_state: up name: default register: result when: platform is search('N3K|N7K') - assert: *true when: platform is search('N3K|N7K') - name: "web4 Idempotence" nxos_vlan: *web4 register: result when: platform is search('N3K|N7K') - assert: *false when: platform is search('N3K|N7K') # Uncomment this once the get_capabilities() work on nxapi as well - name: Change mode nxos_vlan: &mode1 vlan_id: 50 mode: fabricpath register: result when: platform is search('N5K|N7K') - assert: *true when: platform is search('N5K|N7K') - name: "mode1 Idempotence" nxos_vlan: *mode1 register: result when: platform is search('N5K|N7K') - assert: *false when: platform is search('N5K|N7K') - name: Change mode again nxos_vlan: &mode2 vlan_id: 50 mode: ce register: result when: platform is search('N5K|N7K') - assert: *true when: platform is search('N5K|N7K') - name: "mode2 Idempotence" nxos_vlan: *mode2 register: result when: platform is search('N5K|N7K') - assert: *false when: platform is search('N5K|N7K') - name: Ensure VLAN is NOT on the device nxos_vlan: &no_vlan vlan_id: 50 state: absent register: result - assert: *true - name: "no vlan Idempotence" nxos_vlan: *no_vlan register: result - assert: *false - name: Add interfaces to vlan nxos_vlan: &addint vlan_id: 101 vlan_state: suspend interfaces: - "{{ testint1 }}" - "{{ testint2 }}" register: result - assert: *true - name: "Addint idempotence" nxos_vlan: *addint register: result - assert: *false - name: Remove interfaces from vlan nxos_vlan: &remint vlan_id: 101 interfaces: default register: result - assert: *true - name: "Remint idempotence" nxos_vlan: *remint register: result - assert: *false always: - name: Remove int from vlan nxos_vlan: *remint ignore_errors: yes - name: remove vlans nxos_vlan: vlan_range: "2-10,20,50,55-60,100-150" state: absent ignore_errors: yes - name: "Disable feature vn segement" nxos_feature: feature: vn-segment-vlan-based state: disabled ignore_errors: yes when: platform is search('N9K') - debug: msg="END connection={{ ansible_connection }} nxos_vlan sanity test"