--- - debug: msg="START ios_interface netconf/basic.yaml" - name: Configure interface (setup) ios_interface: name: GigabitEthernet0/2 description: test-interface-1 speed: 10 duplex: full mtu: 256 state: present authorize: yes provider: "{{ cli }}" register: result - name: Confgure interface ios_interface: name: GigabitEthernet0/2 description: test-interface-initial state: present authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/2" in result.commands' - '"description test-interface-initial" in result.commands' - name: Confgure interface (idempotent) ios_interface: name: GigabitEthernet0/2 description: test-interface-initial state: present authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == false' - name: Confgure interface parameters ios_interface: name: GigabitEthernet0/2 description: test-interface speed: 100 duplex: half mtu: 512 state: present authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/2" in result.commands' - '"description test-interface" in result.commands' - '"speed 100" in result.commands' - '"duplex half" in result.commands' - '"mtu 512" in result.commands' - name: Change interface parameters ios_interface: name: GigabitEthernet0/2 description: test-interface-1 speed: 10 duplex: full mtu: 256 state: present authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/2" in result.commands' - '"description test-interface-1" in result.commands' - '"speed 10" in result.commands' - '"duplex full" in result.commands' - '"mtu 256" in result.commands' - name: Delete interface parameters ios_interface: name: GigabitEthernet0/2 state: present authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/2" in result.commands' - '"description configured by ios_interface" in result.commands' - '"no speed 10" in result.commands' - '"no duplex full" in result.commands' - '"no mtu 256" in result.commands' - name: Delete interface parameters (idempotent) ios_interface: name: GigabitEthernet0/2 state: present authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == false' - name: Disable interface ios_interface: name: GigabitEthernet0/2 enabled: False authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/2" in result.commands' - '"shutdown" in result.commands' - name: Enable interface ios_interface: name: GigabitEthernet0/2 enabled: True authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/2" in result.commands' - '"no shutdown" in result.commands' - name: Confgure second interface (setup) ios_interface: name: GigabitEthernet0/1 description: test-interface-initial speed: 100 duplex: full mtu: 516 state: present authorize: yes provider: "{{ cli }}" register: result - name: Add interface aggregate ios_interface: aggregate: - { name: GigabitEthernet0/1, speed: 10, duplex: half, mtu: 256, description: test-interface-1 } - { name: GigabitEthernet0/2, speed: 100, duplex: full, mtu: 516, description: test-interface-2 } state: present authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/1" in result.commands' - '"speed 10" in result.commands' - '"description test-interface-1" in result.commands' - '"duplex half" in result.commands' - '"mtu 256" in result.commands' - '"interface GigabitEthernet0/2" in result.commands' - '"speed 100" in result.commands' - '"description test-interface-2" in result.commands' - '"duplex full" in result.commands' - '"mtu 516" in result.commands' - name: Add interface aggregate (idempotent) ios_interface: aggregate: - { name: GigabitEthernet0/1, speed: 10, duplex: half, mtu: 256, description: test-interface-1 } - { name: GigabitEthernet0/2, speed: 100, duplex: full, mtu: 516, description: test-interface-2 } state: present authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == false' - name: Change interface parameters in aggregate ios_interface: aggregate: - { name: GigabitEthernet0/1 } - { name: GigabitEthernet0/2 } state: present authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/1" in result.commands' - '"no speed 10" in result.commands' - '"description configured by ios_interface" in result.commands' - '"no duplex half" in result.commands' - '"no mtu 256" in result.commands' - '"interface GigabitEthernet0/2" in result.commands' - '"no speed 100" in result.commands' - '"description configured by ios_interface" in result.commands' - '"no duplex full" in result.commands' - '"no mtu 516" in result.commands' - name: Disable interface aggregate ios_interface: aggregate: - { name: GigabitEthernet0/1, enabled: False } - { name: GigabitEthernet0/2, enabled: False } state: present authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/1" in result.commands' - '"shutdown" in result.commands' - '"interface GigabitEthernet0/2" in result.commands' - '"shutdown" in result.commands' - name: Enable interface aggregate ios_interface: aggregate: - { name: GigabitEthernet0/1, enabled: True } - { name: GigabitEthernet0/2, enabled: True } state: present authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface GigabitEthernet0/1" in result.commands' - '"no shutdown" in result.commands' - '"interface GigabitEthernet0/2" in result.commands' - '"no shutdown" in result.commands' - name: Create loopback interface aggregate ios_interface: aggregate: - { name: Loopback9 } - { name: Loopback10 } state: present authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == true' - '"interface Loopback9" in result.commands' - '"description configured by ios_interface" in result.commands' - '"interface Loopback10" in result.commands' - '"description configured by ios_interface" in result.commands' - name: Delete loopback interface aggregate ios_interface: aggregate: - { name: Loopback9, state: absent } - { name: Loopback10, state: absent } state: present authorize: yes provider: "{{ cli }}" 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, state: absent } - { name: Loopback10, state: absent } state: present authorize: yes provider: "{{ cli }}" register: result - assert: that: - 'result.changed == false' - debug: msg="END ios_interface cli/basic.yaml"