|
|
|
---
|
|
|
|
- debug: msg="START junos_vrf netconf/basic.yaml on connection={{ ansible_connection }}"
|
|
|
|
|
|
|
|
- name: setup - remove vrf
|
|
|
|
junos_vrf:
|
|
|
|
name: test-1
|
|
|
|
state: absent
|
|
|
|
provider: "{{ netconf }}"
|
|
|
|
|
|
|
|
- name: Configure vrf and its parameter
|
|
|
|
junos_vrf:
|
|
|
|
name: test-1
|
|
|
|
description: test-vrf-1
|
|
|
|
interfaces:
|
|
|
|
- ge-0/0/6
|
|
|
|
- ge-0/0/5
|
|
|
|
rd: 3.3.3.3:10
|
|
|
|
target: target:65513:111
|
|
|
|
state: present
|
|
|
|
provider: "{{ netconf }}"
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "result.changed == true"
|
|
|
|
- result.diff.prepared is search("\+ *test-1")
|
|
|
|
- result.diff.prepared is search("\+ *description test-vrf-1")
|
|
|
|
- result.diff.prepared is search("\+ *instance-type vrf")
|
|
|
|
- result.diff.prepared is search("\+ *interface ge-0/0/5.0")
|
|
|
|
- result.diff.prepared is search("\+ *interface ge-0/0/6.0")
|
|
|
|
- result.diff.prepared is search("\+ *route-distinguisher 3.3.3.3:10")
|
|
|
|
- result.diff.prepared is search("\+ *vrf-target target:65513:111")
|
|
|
|
|
|
|
|
- name: Configure vrf and its parameter (idempotent)
|
|
|
|
junos_vrf:
|
|
|
|
name: test-1
|
|
|
|
description: test-vrf-1
|
|
|
|
interfaces:
|
|
|
|
- ge-0/0/6
|
|
|
|
- ge-0/0/5
|
|
|
|
rd: 3.3.3.3:10
|
|
|
|
target: target:65513:111
|
|
|
|
state: present
|
|
|
|
provider: "{{ netconf }}"
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "result.changed == false"
|
|
|
|
|
|
|
|
- name: Change vrf parameter
|
|
|
|
junos_vrf:
|
|
|
|
name: test-1
|
|
|
|
description: test-vrf-1
|
|
|
|
interfaces:
|
|
|
|
- ge-0/0/3
|
|
|
|
- ge-0/0/2
|
|
|
|
rd: 1.1.1.1:10
|
|
|
|
target: target:65514:113
|
|
|
|
state: present
|
|
|
|
provider: "{{ netconf }}"
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "result.changed == true"
|
|
|
|
- "'[edit routing-instances test-1]' in result.diff.prepared"
|
|
|
|
- result.diff.prepared is search("\+ *interface ge-0/0/2.0")
|
|
|
|
- result.diff.prepared is search("\+ *interface ge-0/0/3.0")
|
|
|
|
- "'[edit routing-instances test-1]' in result.diff.prepared"
|
|
|
|
- result.diff.prepared is search("\+ *route-distinguisher 1.1.1.1:10")
|
|
|
|
- result.diff.prepared is search("\+ *vrf-target target:65514:113")
|
|
|
|
|
|
|
|
- name: Deactivate vrf
|
|
|
|
junos_vrf:
|
|
|
|
name: test-1
|
|
|
|
description: test-vrf-1
|
|
|
|
interfaces:
|
|
|
|
- ge-0/0/3
|
|
|
|
- ge-0/0/2
|
|
|
|
rd: 1.1.1.1:10
|
|
|
|
target: target:65514:113
|
|
|
|
state: present
|
|
|
|
active: False
|
|
|
|
provider: "{{ netconf }}"
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "result.changed == true"
|
|
|
|
- "'[edit routing-instances]' in result.diff.prepared"
|
|
|
|
- result.diff.prepared is search("! *inactive[:] test-1")
|
|
|
|
- "'[edit routing-instances test-1]' in result.diff.prepared"
|
|
|
|
- result.diff.prepared is search("! *inactive[:] interface ge-0/0/2.0")
|
|
|
|
- result.diff.prepared is search("! *inactive[:] interface ge-0/0/3.0")
|
|
|
|
- "'[edit routing-instances test-1]' in result.diff.prepared"
|
|
|
|
- result.diff.prepared is search("! *inactive[:] route-distinguisher")
|
|
|
|
- result.diff.prepared is search("! *inactive[:] vrf-target")
|
|
|
|
|
|
|
|
- name: Activate vrf
|
|
|
|
junos_vrf:
|
|
|
|
name: test-1
|
|
|
|
description: test-vrf-1
|
|
|
|
interfaces:
|
|
|
|
- ge-0/0/3
|
|
|
|
- ge-0/0/2
|
|
|
|
rd: 1.1.1.1:10
|
|
|
|
target: target:65514:113
|
|
|
|
state: present
|
|
|
|
active: True
|
|
|
|
provider: "{{ netconf }}"
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "result.changed == true"
|
|
|
|
- "'[edit routing-instances]' in result.diff.prepared"
|
|
|
|
- result.diff.prepared is search("! *active[:] test-1")
|
|
|
|
- "'[edit routing-instances test-1]' in result.diff.prepared"
|
|
|
|
- result.diff.prepared is search("! *active[:] interface ge-0/0/2.0")
|
|
|
|
- result.diff.prepared is search("! *active[:] interface ge-0/0/3.0")
|
|
|
|
- "'[edit routing-instances test-1]' in result.diff.prepared"
|
|
|
|
- result.diff.prepared is search("! *active[:] route-distinguisher")
|
|
|
|
- result.diff.prepared is search("! *active[:] vrf-target")
|
|
|
|
|
|
|
|
- name: Delete vrf
|
|
|
|
junos_vrf:
|
|
|
|
name: test-1
|
|
|
|
description: test-vrf-1
|
|
|
|
interfaces:
|
|
|
|
- ge-0/0/3
|
|
|
|
- ge-0/0/2
|
|
|
|
rd: 1.1.1.1:10
|
|
|
|
target: target:65514:113
|
|
|
|
state: absent
|
|
|
|
provider: "{{ netconf }}"
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "result.changed == true"
|
|
|
|
- result.diff.prepared is search("\- *test-1")
|
|
|
|
- result.diff.prepared is search("\- *description test-vrf-1")
|
|
|
|
- result.diff.prepared is search("\- *instance-type vrf")
|
|
|
|
- result.diff.prepared is search("\- *interface ge-0/0/2.0")
|
|
|
|
- result.diff.prepared is search("\- *interface ge-0/0/3.0")
|
|
|
|
- result.diff.prepared is search("\- *route-distinguisher 1.1.1.1:10")
|
|
|
|
- result.diff.prepared is search("\- *vrf-target target:65514:113")
|
|
|
|
|
|
|
|
- name: Delete vrf (idempotent)
|
|
|
|
junos_vrf:
|
|
|
|
name: test-1
|
|
|
|
description: test-vrf-1
|
|
|
|
interfaces:
|
|
|
|
- ge-0/0/3
|
|
|
|
- ge-0/0/2
|
|
|
|
rd: 1.1.1.1:10
|
|
|
|
target: target:65514:113
|
|
|
|
state: absent
|
|
|
|
provider: "{{ netconf }}"
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "result.changed == false"
|
|
|
|
|
|
|
|
- name: Setup vrf using aggregate
|
|
|
|
junos_vrf:
|
|
|
|
aggregate:
|
|
|
|
- name: test-1
|
|
|
|
- name: test-2
|
|
|
|
state: absent
|
|
|
|
provider: "{{ netconf }}"
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- name: Create vrf using aggregate
|
|
|
|
junos_vrf:
|
|
|
|
aggregate:
|
|
|
|
- name: test-1
|
|
|
|
description: test-vrf-1
|
|
|
|
interfaces:
|
|
|
|
- ge-0/0/3
|
|
|
|
- ge-0/0/2
|
|
|
|
rd: 1.1.1.1:10
|
|
|
|
target: target:65514:113
|
|
|
|
- name: test-2
|
|
|
|
description: test-vrf-2
|
|
|
|
interfaces:
|
|
|
|
- ge-0/0/4
|
|
|
|
- ge-0/0/5
|
|
|
|
rd: 2.2.2.2:10
|
|
|
|
target: target:65515:114
|
|
|
|
provider: "{{ netconf }}"
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "result.changed == true"
|
|
|
|
- result.diff.prepared is search("\+ *test-1")
|
|
|
|
- result.diff.prepared is search("\+ *description test-vrf-1")
|
|
|
|
- result.diff.prepared is search("\+ *instance-type vrf")
|
|
|
|
- result.diff.prepared is search("\+ *interface ge-0/0/2.0")
|
|
|
|
- result.diff.prepared is search("\+ *interface ge-0/0/3.0")
|
|
|
|
- result.diff.prepared is search("\+ *route-distinguisher 1.1.1.1:10")
|
|
|
|
- result.diff.prepared is search("\+ *vrf-target target:65514:113")
|
|
|
|
- result.diff.prepared is search("\+ *test-2")
|
|
|
|
- result.diff.prepared is search("\+ *description test-vrf-2")
|
|
|
|
- result.diff.prepared is search("\+ *instance-type vrf")
|
|
|
|
- result.diff.prepared is search("\+ *interface ge-0/0/4.0")
|
|
|
|
- result.diff.prepared is search("\+ *interface ge-0/0/5.0")
|
|
|
|
- result.diff.prepared is search("\+ *route-distinguisher 2.2.2.2:10")
|
|
|
|
- result.diff.prepared is search("\+ *vrf-target target:65515:114")
|
|
|
|
|
|
|
|
- name: Deactivate vrf configuration using aggregate
|
|
|
|
junos_vrf:
|
|
|
|
aggregate:
|
|
|
|
- name: test-1
|
|
|
|
description: test-vrf-1
|
|
|
|
interfaces:
|
|
|
|
- ge-0/0/3
|
|
|
|
- ge-0/0/2
|
|
|
|
rd: 1.1.1.1:10
|
|
|
|
target: target:65514:113
|
|
|
|
- name: test-2
|
|
|
|
description: test-vrf-2
|
|
|
|
interfaces:
|
|
|
|
- ge-0/0/4
|
|
|
|
- ge-0/0/5
|
|
|
|
rd: 2.2.2.2:10
|
|
|
|
target: target:65515:114
|
|
|
|
active: False
|
|
|
|
provider: "{{ netconf }}"
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "result.changed == true"
|
|
|
|
- "'edit routing-instances test-1' in result.diff.prepared"
|
|
|
|
- result.diff.prepared is search("! *inactive[:] interface ge-0/0/2.0")
|
|
|
|
- result.diff.prepared is search("! *inactive[:] interface ge-0/0/3.0")
|
|
|
|
- result.diff.prepared is search("! *inactive[:] route-distinguisher")
|
|
|
|
- result.diff.prepared is search("! *inactive[:] vrf-target")
|
|
|
|
- "'edit routing-instances test-2' in result.diff.prepared"
|
|
|
|
- result.diff.prepared is search("! *inactive[:] interface ge-0/0/4.0")
|
|
|
|
- result.diff.prepared is search("! *inactive[:] interface ge-0/0/5.0")
|
|
|
|
- result.diff.prepared is search("! *inactive[:] route-distinguisher")
|
|
|
|
- result.diff.prepared is search("! *inactive[:] vrf-target")
|
|
|
|
|
|
|
|
- name: Deactivate vrf configuration using aggregate
|
|
|
|
junos_vrf:
|
|
|
|
aggregate:
|
|
|
|
- name: test-1
|
|
|
|
description: test-vrf-1
|
|
|
|
interfaces:
|
|
|
|
- ge-0/0/3
|
|
|
|
- ge-0/0/2
|
|
|
|
rd: 1.1.1.1:10
|
|
|
|
target: target:65514:113
|
|
|
|
- name: test-2
|
|
|
|
description: test-vrf-2
|
|
|
|
interfaces:
|
|
|
|
- ge-0/0/4
|
|
|
|
- ge-0/0/5
|
|
|
|
rd: 2.2.2.2:10
|
|
|
|
target: target:65515:114
|
|
|
|
active: True
|
|
|
|
provider: "{{ netconf }}"
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "result.changed == true"
|
|
|
|
- "'edit routing-instances test-1' in result.diff.prepared"
|
|
|
|
- result.diff.prepared is search("! *active[:] interface ge-0/0/2.0")
|
|
|
|
- result.diff.prepared is search("! *active[:] interface ge-0/0/3.0")
|
|
|
|
- result.diff.prepared is search("! *active[:] route-distinguisher")
|
|
|
|
- result.diff.prepared is search("! *active[:] vrf-target")
|
|
|
|
- "'edit routing-instances test-2' in result.diff.prepared"
|
|
|
|
- result.diff.prepared is search("! *active[:] interface ge-0/0/4.0")
|
|
|
|
- result.diff.prepared is search("! *active[:] interface ge-0/0/5.0")
|
|
|
|
- result.diff.prepared is search("! *active[:] route-distinguisher")
|
|
|
|
- result.diff.prepared is search("! *active[:] vrf-target")
|
|
|
|
|
|
|
|
- name: Delete vrf configuration using aggregate
|
|
|
|
junos_vrf:
|
|
|
|
aggregate:
|
|
|
|
- name: test-1
|
|
|
|
- name: test-2
|
|
|
|
state: absent
|
|
|
|
provider: "{{ netconf }}"
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "result.changed == true"
|
|
|
|
- result.diff.prepared is search("\- *test-1")
|
|
|
|
- result.diff.prepared is search("\- *description test-vrf-1")
|
|
|
|
- result.diff.prepared is search("\- *instance-type vrf")
|
|
|
|
- result.diff.prepared is search("\- *interface ge-0/0/2.0")
|
|
|
|
- result.diff.prepared is search("\- *interface ge-0/0/3.0")
|
|
|
|
- result.diff.prepared is search("\- *route-distinguisher 1.1.1.1:10")
|
|
|
|
- result.diff.prepared is search("\- *vrf-target target:65514:113")
|
|
|
|
- result.diff.prepared is search("\- *test-2")
|
|
|
|
- result.diff.prepared is search("\- *description test-vrf-2")
|
|
|
|
- result.diff.prepared is search("\- *instance-type vrf")
|
|
|
|
- result.diff.prepared is search("\- *interface ge-0/0/4.0")
|
|
|
|
- result.diff.prepared is search("\- *interface ge-0/0/5.0")
|
|
|
|
- result.diff.prepared is search("\- *route-distinguisher 2.2.2.2:10")
|
|
|
|
- result.diff.prepared is search("\- *vrf-target target:65515:114")
|
|
|
|
|
|
|
|
- name: Delete vrf configuration using aggregate (idempotent)
|
|
|
|
junos_vrf:
|
|
|
|
aggregate:
|
|
|
|
- name: test-1
|
|
|
|
- name: test-2
|
|
|
|
state: absent
|
|
|
|
provider: "{{ netconf }}"
|
|
|
|
register: result
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "result.changed == false"
|
|
|
|
|
|
|
|
- debug: msg="END junos_vrf netconf/basic.yaml on connection={{ ansible_connection }}"
|