You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/targets/eos_bgp/tests/cli/basic.yaml

373 lines
9.4 KiB
YAML

- debug: msg="START eos cli/eos_bgp.yaml on connection={{ ansible_connection }}"
- name: Clear existing BGP config
eos_bgp:
operation: delete
ignore_errors: yes
- name: Configure BGP with AS 64496 and a router-id
eos_bgp: &config
operation: merge
config:
bgp_as: 64496
router_id: 192.0.2.2
register: result
- assert:
that:
- 'result.changed == true'
- "'router bgp 64496' in result.commands"
- "'router-id 192.0.2.2' in result.commands"
- name: Configure BGP with AS 64496 and a router-id (idempotent)
eos_bgp: *config
register: result
- assert:
that:
- 'result.changed == false'
- name: Configure BGP neighbors
eos_bgp: &nbr
operation: merge
config:
bgp_as: 64496
neighbors:
- neighbor: 192.0.2.10
remote_as: 64496
description: IBGP_NBR_1
ebgp_multihop: 100
timers:
keepalive: 300
holdtime: 360
- neighbor: 192.0.2.15
remote_as: 64496
description: IBGP_NBR_2
ebgp_multihop: 150
register: result
- assert:
that:
- 'result.changed == true'
- "'router bgp 64496' in result.commands"
- "'neighbor 192.0.2.10 remote-as 64496' in result.commands"
- "'neighbor 192.0.2.10 description IBGP_NBR_1' in result.commands"
- "'neighbor 192.0.2.10 ebgp-multihop 100' in result.commands"
- "'neighbor 192.0.2.10 timers 300 360' in result.commands"
- "'neighbor 192.0.2.15 remote-as 64496' in result.commands"
- "'neighbor 192.0.2.15 description IBGP_NBR_2' in result.commands"
- "'neighbor 192.0.2.15 ebgp-multihop 150' in result.commands"
- name: Configure BGP neighbors (idempotent)
eos_bgp: *nbr
register: result
- assert:
that:
- 'result.changed == false'
- name: Configure BGP neighbors with operation replace
eos_bgp: &nbr_rplc
operation: replace
config:
bgp_as: 64496
neighbors:
- neighbor: 192.0.2.15
remote_as: 64496
description: IBGP_NBR_2
ebgp_multihop: 150
- neighbor: 203.0.113.10
remote_as: 64511
description: EBGP_NBR_1
register: result
- assert:
that:
- 'result.changed == true'
- "'neighbor 203.0.113.10 remote-as 64511' in result.commands"
- "'neighbor 203.0.113.10 description EBGP_NBR_1' in result.commands"
- "'no neighbor 192.0.2.10' in result.commands"
- name: Configure BGP neighbors with operation replace (idempotent)
eos_bgp: *nbr_rplc
register: result
- assert:
that:
- 'result.changed == false'
- name: Configure root-level networks for BGP
eos_bgp: &net
operation: merge
config:
bgp_as: 64496
networks:
- prefix: 203.0.113.0
masklen: 27
route_map: RMAP_1
- prefix: 203.0.113.32
masklen: 27
route_map: RMAP_2
register: result
- assert:
that:
- 'result.changed == True'
- "'router bgp 64496' in result.commands"
- "'network 203.0.113.0/27 route-map RMAP_1' in result.commands"
- "'network 203.0.113.32/27 route-map RMAP_2' in result.commands"
- name: Configure root-level networks for BGP (idempotent)
eos_bgp: *net
register: result
- assert:
that:
- 'result.changed == false'
- name: Configure root-level networks for BGP with operation replace
eos_bgp: &net_rplc
operation: replace
config:
bgp_as: 64496
networks:
- prefix: 203.0.113.0
masklen: 27
route_map: RMAP_1
- prefix: 198.51.100.16
masklen: 28
register: result
- assert:
that:
- 'result.changed == True'
- "'router bgp 64496' in result.commands"
- "'network 198.51.100.16/28' in result.commands"
- "'no network 203.0.113.32/27' in result.commands"
- name: Configure root-level networks for BGP with operation replace (idempotent)
eos_bgp: *net_rplc
register: result
- assert:
that:
- 'result.changed == false'
- name: Configure BGP route redistribute information
eos_bgp: &rdr
operation: merge
config:
bgp_as: 64496
redistribute:
- protocol: ospf
route_map: RMAP_1
- protocol: rip
register: result
- assert:
that:
- 'result.changed == true'
- "'router bgp 64496' in result.commands"
- "'redistribute ospf route-map RMAP_1' in result.commands"
- "'redistribute rip' in result.commands"
- name: Configure BGP route redistribute information (idempotent)
eos_bgp: *rdr
register: result
- assert:
that:
- 'result.changed == false'
- name: Configure BGP route redistribute information with operation replace
eos_bgp: &rdr_rplc
operation: replace
config:
bgp_as: 64496
redistribute:
- protocol: ospf
route_map: RMAP_1
- protocol: static
route_map: RMAP_2
register: result
- assert:
that:
- 'result.changed == true'
- "'redistribute static route-map RMAP_2' in result.commands"
- "'no redistribute rip' in result.commands"
- name: Configure BGP route redistribute information with operation replace (idempotent)
eos_bgp: *rdr_rplc
register: result
- assert:
that:
- 'result.changed == false'
- name: Configure BGP neighbors under address family mode
eos_bgp: &af_nbr
operation: merge
config:
bgp_as: 64496
address_family:
- afi: ipv4
neighbors:
- neighbor: 203.0.113.10
activate: yes
default_originate: True
- neighbor: 192.0.2.15
activate: yes
graceful_restart: True
register: result
- assert:
that:
- 'result.changed == true'
- "'router bgp 64496' in result.commands"
- "'address-family ipv4' in result.commands"
- "'neighbor 203.0.113.10 activate' in result.commands"
- "'neighbor 203.0.113.10 default-originate' in result.commands"
- "'neighbor 192.0.2.15 activate' in result.commands"
- "'neighbor 192.0.2.15 graceful-restart' in result.commands"
- name: Configure BGP neighbors under address family mode (idempotent)
eos_bgp: *af_nbr
register: result
- assert:
that:
- 'result.changed == false'
- name: Configure networks under address family
eos_bgp: &af_net
operation: merge
config:
bgp_as: 64496
address_family:
- afi: ipv4
networks:
- prefix: 198.51.100.48
masklen: 28
route_map: RMAP_1
- prefix: 192.0.2.64
masklen: 27
- prefix: 203.0.113.160
masklen: 27
route_map: RMAP_2
- afi: ipv6
networks:
- prefix: "2001:db8::"
masklen: 33
register: result
- assert:
that:
- 'result.changed == true'
- "'router bgp 64496' in result.commands"
- "'address-family ipv4' in result.commands"
- "'network 198.51.100.48/28 route-map RMAP_1' in result.commands"
- "'network 192.0.2.64/27' in result.commands"
- "'network 203.0.113.160/27 route-map RMAP_2' in result.commands"
- "'address-family ipv6' in result.commands"
- "'network 2001:db8::/33' in result.commands"
- name: Configure networks under address family (idempotent)
eos_bgp: *af_net
register: result
- assert:
that:
- 'result.changed == false'
- name: Configure networks under address family with operation replace
eos_bgp: &af_net_rplc
operation: replace
config:
bgp_as: 64496
address_family:
- afi: ipv4
networks:
- prefix: 198.51.100.80
masklen: 28
- prefix: 192.0.2.64
masklen: 27
- prefix: 203.0.113.192
masklen: 27
- afi: ipv6
networks:
- prefix: "2001:db8:1000::"
masklen: 37
register: result
- assert:
that:
- 'result.changed == true'
- '"router bgp 64496" in result.commands'
- '"address-family ipv4" in result.commands'
- '"network 198.51.100.80/28" in result.commands'
- '"network 203.0.113.192/27" in result.commands'
- '"no network 198.51.100.48/28" in result.commands'
- '"no network 203.0.113.160/27" in result.commands'
- '"address-family ipv6" in result.commands'
- '"network 2001:db8:1000::/37" in result.commands'
- '"no network 2001:db8::/33" in result.commands'
- name: Configure networks under address family with operation replace (idempotent)
eos_bgp: *af_net_rplc
register: result
- assert:
that:
- 'result.changed == false'
- name: Override all the exisiting BGP config
eos_bgp:
operation: override
config:
bgp_as: 64497
router_id: 192.0.2.10
log_neighbor_changes: True
register: result
- assert:
that:
- 'result.changed == true'
- "'no router bgp 64496' in result.commands"
- "'router bgp 64497' in result.commands"
- "'router-id 192.0.2.10' in result.commands"
- "'bgp log-neighbor-changes' in result.commands"
- name: Teardown
eos_bgp: &rm
operation: delete
register: result
- assert:
that:
- 'result.changed == true'
- "'no router bgp 64497' in result.commands"
- name: Teardown again (idempotent)
eos_bgp: *rm
register: result
- assert:
that:
- 'result.changed == false'
- debug: msg="END eos cli/eos_bgp.yaml on connection={{ ansible_connection }}"