|
|
|
@ -3,6 +3,9 @@
|
|
|
|
|
- debug: msg="Using provider={{ connection.transport }}"
|
|
|
|
|
when: ansible_connection == "local"
|
|
|
|
|
|
|
|
|
|
- set_fact: soft_reconfiguration_ina="always"
|
|
|
|
|
when: imagetag and (imagetag is version_compare('D1', 'ne'))
|
|
|
|
|
|
|
|
|
|
- name: "Disable feature BGP"
|
|
|
|
|
nxos_feature: &disable_bgp
|
|
|
|
|
feature: bgp
|
|
|
|
@ -18,48 +21,32 @@
|
|
|
|
|
ignore_errors: yes
|
|
|
|
|
|
|
|
|
|
- block:
|
|
|
|
|
- name: "Configure BGP neighbor address-family defaults"
|
|
|
|
|
nxos_bgp_neighbor_af: &configure_default
|
|
|
|
|
- name: "Configure BGP neighbor address-family"
|
|
|
|
|
nxos_bgp_neighbor_af: &configure1
|
|
|
|
|
asn: 65535
|
|
|
|
|
neighbor: '3.3.3.3'
|
|
|
|
|
afi: ipv4
|
|
|
|
|
safi: unicast
|
|
|
|
|
additional_paths_receive: 'inherit'
|
|
|
|
|
additional_paths_send: 'inherit'
|
|
|
|
|
advertise_map_exist: 'default'
|
|
|
|
|
# -----------------------------------------------
|
|
|
|
|
# advertise_map_exist and advertise_map_non_exist
|
|
|
|
|
# are mutually exclusive
|
|
|
|
|
#advertise_map_non_exist: 'default'
|
|
|
|
|
# -----------------------------------------------
|
|
|
|
|
allowas_in: 'false'
|
|
|
|
|
allowas_in_max: 'default'
|
|
|
|
|
as_override: 'false'
|
|
|
|
|
default_originate: 'false'
|
|
|
|
|
default_originate_route_map: 'default'
|
|
|
|
|
filter_list_in: 'default'
|
|
|
|
|
filter_list_out: 'default'
|
|
|
|
|
# ------------------------------------------
|
|
|
|
|
# max_prefix* properities are off by default
|
|
|
|
|
max_prefix_limit: 'default'
|
|
|
|
|
# For the default case, only max_prefix_limit
|
|
|
|
|
# is set. The rest should be left unset.
|
|
|
|
|
#max_prefix_interval: 'default'
|
|
|
|
|
#max_prefix_threshold: 'default'
|
|
|
|
|
#max_prefix_warning: 'false'
|
|
|
|
|
# ------------------------------------------
|
|
|
|
|
next_hop_self: 'false'
|
|
|
|
|
next_hop_third_party: 'true'
|
|
|
|
|
prefix_list_in: 'default'
|
|
|
|
|
prefix_list_out: 'default'
|
|
|
|
|
route_map_in: 'default'
|
|
|
|
|
route_map_out: 'default'
|
|
|
|
|
route_reflector_client: 'false'
|
|
|
|
|
send_community: 'default'
|
|
|
|
|
soft_reconfiguration_in: 'inherit'
|
|
|
|
|
suppress_inactive: 'false'
|
|
|
|
|
unsuppress_map: 'default'
|
|
|
|
|
weight: 'default'
|
|
|
|
|
additional_paths_receive: 'enable'
|
|
|
|
|
additional_paths_send: 'enable'
|
|
|
|
|
advertise_map_exist: ['ansible_rm', 'my_exist_map']
|
|
|
|
|
allowas_in: True
|
|
|
|
|
default_originate: True
|
|
|
|
|
disable_peer_as_check: True
|
|
|
|
|
filter_list_in: 'my_filter_list_in'
|
|
|
|
|
filter_list_out: 'my_filter_list_out'
|
|
|
|
|
max_prefix_limit: 100
|
|
|
|
|
max_prefix_threshold: 50
|
|
|
|
|
max_prefix_warning: 'true'
|
|
|
|
|
next_hop_self: True
|
|
|
|
|
next_hop_third_party: False
|
|
|
|
|
prefix_list_in: 'pfx_in'
|
|
|
|
|
prefix_list_out: 'pfx_out'
|
|
|
|
|
send_community: 'both'
|
|
|
|
|
soft_reconfiguration_in: 'enable'
|
|
|
|
|
suppress_inactive: True
|
|
|
|
|
unsuppress_map: 'unsup_map'
|
|
|
|
|
weight: '30'
|
|
|
|
|
state: present
|
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
|
register: result
|
|
|
|
@ -69,16 +56,57 @@
|
|
|
|
|
- "result.changed == true"
|
|
|
|
|
|
|
|
|
|
- name: "Check Idempotence"
|
|
|
|
|
nxos_bgp_neighbor_af: *configure_default
|
|
|
|
|
nxos_bgp_neighbor_af: *configure1
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: &false
|
|
|
|
|
that:
|
|
|
|
|
- "result.changed == false"
|
|
|
|
|
|
|
|
|
|
- name: "Configure BGP neighbor address-family def1"
|
|
|
|
|
nxos_bgp_neighbor_af: &configure_def1
|
|
|
|
|
asn: 65535
|
|
|
|
|
neighbor: '3.3.3.3'
|
|
|
|
|
afi: ipv4
|
|
|
|
|
safi: unicast
|
|
|
|
|
additional_paths_receive: 'inherit'
|
|
|
|
|
additional_paths_send: 'inherit'
|
|
|
|
|
advertise_map_exist: default
|
|
|
|
|
allowas_in: False
|
|
|
|
|
default_originate: False
|
|
|
|
|
disable_peer_as_check: False
|
|
|
|
|
filter_list_in: default
|
|
|
|
|
filter_list_out: default
|
|
|
|
|
max_prefix_limit: default
|
|
|
|
|
max_prefix_threshold: default
|
|
|
|
|
max_prefix_warning: False
|
|
|
|
|
next_hop_self: False
|
|
|
|
|
next_hop_third_party: True
|
|
|
|
|
prefix_list_in: default
|
|
|
|
|
prefix_list_out: default
|
|
|
|
|
send_community: 'none'
|
|
|
|
|
soft_reconfiguration_in: 'inherit'
|
|
|
|
|
suppress_inactive: False
|
|
|
|
|
unsuppress_map: default
|
|
|
|
|
weight: default
|
|
|
|
|
state: present
|
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *true
|
|
|
|
|
|
|
|
|
|
- name: "Check Idempotence"
|
|
|
|
|
nxos_bgp_neighbor_af: *configure_def1
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *false
|
|
|
|
|
|
|
|
|
|
- name: "Setup: Remove BGP config"
|
|
|
|
|
nxos_bgp: &remove
|
|
|
|
|
nxos_bgp_neighbor_af: &removenaf
|
|
|
|
|
asn: 65535
|
|
|
|
|
neighbor: '3.3.3.3'
|
|
|
|
|
afi: ipv4
|
|
|
|
|
safi: unicast
|
|
|
|
|
state: absent
|
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
|
register: result
|
|
|
|
@ -86,12 +114,76 @@
|
|
|
|
|
- assert: *true
|
|
|
|
|
|
|
|
|
|
- name: "Check Idempotence"
|
|
|
|
|
nxos_bgp: *remove
|
|
|
|
|
nxos_bgp_neighbor_af: *removenaf
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *false
|
|
|
|
|
|
|
|
|
|
- name: "Configure BGP neighbor address-family"
|
|
|
|
|
nxos_bgp_neighbor_af: &configure2
|
|
|
|
|
asn: 65535
|
|
|
|
|
neighbor: '3.3.3.3'
|
|
|
|
|
afi: ipv4
|
|
|
|
|
safi: unicast
|
|
|
|
|
allowas_in_max: '5'
|
|
|
|
|
advertise_map_non_exist: ['ansible_rm', 'my_non_exist_map']
|
|
|
|
|
default_originate_route_map: 'my_route_map'
|
|
|
|
|
max_prefix_limit: 100
|
|
|
|
|
max_prefix_interval: 30
|
|
|
|
|
max_prefix_threshold: 50
|
|
|
|
|
route_map_in: 'rm_in'
|
|
|
|
|
route_map_out: 'rm_out'
|
|
|
|
|
state: present
|
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *true
|
|
|
|
|
|
|
|
|
|
- name: "Check Idempotence"
|
|
|
|
|
nxos_bgp_neighbor_af: *configure2
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *false
|
|
|
|
|
|
|
|
|
|
- name: "Configure BGP neighbor address-family def2"
|
|
|
|
|
nxos_bgp_neighbor_af: &configure_def2
|
|
|
|
|
asn: 65535
|
|
|
|
|
neighbor: '3.3.3.3'
|
|
|
|
|
afi: ipv4
|
|
|
|
|
safi: unicast
|
|
|
|
|
allowas_in_max: default
|
|
|
|
|
advertise_map_non_exist: default
|
|
|
|
|
default_originate_route_map: default
|
|
|
|
|
max_prefix_limit: default
|
|
|
|
|
max_prefix_interval: default
|
|
|
|
|
max_prefix_threshold: default
|
|
|
|
|
route_map_in: default
|
|
|
|
|
route_map_out: default
|
|
|
|
|
state: present
|
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *true
|
|
|
|
|
|
|
|
|
|
- name: "Check Idempotence"
|
|
|
|
|
nxos_bgp_neighbor_af: *configure_def2
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *false
|
|
|
|
|
|
|
|
|
|
- name: "Configure eBGP setting remote_as 2 prior to non-defaults test"
|
|
|
|
|
- name: "Setup: Remove BGP config"
|
|
|
|
|
nxos_bgp_neighbor_af: *removenaf
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *true
|
|
|
|
|
|
|
|
|
|
- name: "Check Idempotence"
|
|
|
|
|
nxos_bgp_neighbor_af: *removenaf
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *false
|
|
|
|
|
|
|
|
|
|
- name: "Configure eBGP"
|
|
|
|
|
nxos_bgp_neighbor:
|
|
|
|
|
asn: 65535
|
|
|
|
|
vrf: 'blue'
|
|
|
|
@ -99,46 +191,19 @@
|
|
|
|
|
remote_as: 2
|
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
|
|
|
|
|
|
- name: "Configure BGP neighbor non-defaults"
|
|
|
|
|
nxos_bgp_neighbor_af: &configure_non_default
|
|
|
|
|
- name: "Configure BGP neighbor 3"
|
|
|
|
|
nxos_bgp_neighbor_af: &configure3
|
|
|
|
|
asn: 65535
|
|
|
|
|
vrf: 'blue'
|
|
|
|
|
neighbor: '3.3.3.3'
|
|
|
|
|
afi: ipv4
|
|
|
|
|
safi: unicast
|
|
|
|
|
additional_paths_receive: 'enable'
|
|
|
|
|
additional_paths_receive: 'disable'
|
|
|
|
|
additional_paths_send: 'disable'
|
|
|
|
|
advertise_map_non_exist: ['ansible_rm', 'my_non_exist_map']
|
|
|
|
|
# -----------------------------------------------
|
|
|
|
|
# advertise_map_exist and advertise_map_non_exist
|
|
|
|
|
# are mutually exclusive
|
|
|
|
|
#advertise_map_exist: 'my_map'
|
|
|
|
|
# -----------------------------------------------
|
|
|
|
|
allowas_in: 'true'
|
|
|
|
|
allowas_in_max: '5'
|
|
|
|
|
as_override: 'true'
|
|
|
|
|
default_originate: 'true'
|
|
|
|
|
default_originate_route_map: 'my_route_map'
|
|
|
|
|
filter_list_in: 'my_filter_list_in'
|
|
|
|
|
filter_list_out: 'my_filter_list_out'
|
|
|
|
|
max_prefix_limit: 100
|
|
|
|
|
# max_prefix_interval and max_prefix_warning
|
|
|
|
|
# are mutually exclusive.
|
|
|
|
|
max_prefix_interval: 30
|
|
|
|
|
max_prefix_threshold: 50
|
|
|
|
|
#max_prefix_warning: 'true'
|
|
|
|
|
next_hop_self: 'true'
|
|
|
|
|
next_hop_third_party: 'false'
|
|
|
|
|
prefix_list_in: 'pfx_in'
|
|
|
|
|
prefix_list_out: 'pfx_out'
|
|
|
|
|
route_map_in: 'rm_in'
|
|
|
|
|
route_map_out: 'rm_out'
|
|
|
|
|
send_community: 'extended'
|
|
|
|
|
soft_reconfiguration_in: 'enable'
|
|
|
|
|
send_community: 'standard'
|
|
|
|
|
soft_reconfiguration_in: "{{soft_reconfiguration_ina|default(omit)}}"
|
|
|
|
|
soo: '3:3'
|
|
|
|
|
suppress_inactive: 'true'
|
|
|
|
|
unsuppress_map: 'unsup_map'
|
|
|
|
|
weight: '30'
|
|
|
|
|
state: present
|
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
|
register: result
|
|
|
|
@ -146,13 +211,40 @@
|
|
|
|
|
- assert: *true
|
|
|
|
|
|
|
|
|
|
- name: "Check Idempotence"
|
|
|
|
|
nxos_bgp_neighbor_af: *configure_non_default
|
|
|
|
|
nxos_bgp_neighbor_af: *configure3
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *false
|
|
|
|
|
|
|
|
|
|
- name: "Remove BGP"
|
|
|
|
|
nxos_bgp: *remove
|
|
|
|
|
- name: "Configure BGP neighbor def3"
|
|
|
|
|
nxos_bgp_neighbor_af: &configure_def3
|
|
|
|
|
asn: 65535
|
|
|
|
|
vrf: 'blue'
|
|
|
|
|
neighbor: '3.3.3.3'
|
|
|
|
|
afi: ipv4
|
|
|
|
|
safi: unicast
|
|
|
|
|
additional_paths_receive: 'inherit'
|
|
|
|
|
additional_paths_send: 'inherit'
|
|
|
|
|
as_override: False
|
|
|
|
|
send_community: default
|
|
|
|
|
soo: default
|
|
|
|
|
state: present
|
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *true
|
|
|
|
|
|
|
|
|
|
- name: "Check Idempotence"
|
|
|
|
|
nxos_bgp_neighbor_af: *configure_def3
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *false
|
|
|
|
|
|
|
|
|
|
- name: "Setup: Remove BGP config"
|
|
|
|
|
nxos_bgp: &remove
|
|
|
|
|
asn: 65535
|
|
|
|
|
state: absent
|
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *true
|
|
|
|
@ -164,33 +256,38 @@
|
|
|
|
|
remote_as: 65535
|
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
|
|
|
|
|
|
- name: "Configure BGP neighbor af route_reflector_client"
|
|
|
|
|
nxos_bgp_neighbor_af: &configure_rr_client
|
|
|
|
|
- name: "Configure BGP neighbor 4"
|
|
|
|
|
nxos_bgp_neighbor_af: &configure4
|
|
|
|
|
asn: 65535
|
|
|
|
|
neighbor: '2.2.2.2'
|
|
|
|
|
afi: ipv4
|
|
|
|
|
safi: unicast
|
|
|
|
|
route_reflector_client: 'true'
|
|
|
|
|
#advertise_map_non_exist: ['ansible_rm', 'my_non_exist_map']
|
|
|
|
|
# -----------------------------------------------
|
|
|
|
|
# advertise_map_exist and advertise_map_non_exist
|
|
|
|
|
# are mutually exclusive
|
|
|
|
|
advertise_map_exist: ['ansible_rm', 'my_exist_map']
|
|
|
|
|
# -----------------------------------------------
|
|
|
|
|
# max_prefix_interval and max_prefix_warning
|
|
|
|
|
# are mutually exclusive. Add testing for
|
|
|
|
|
# warning since interval is tested above.
|
|
|
|
|
max_prefix_limit: 100
|
|
|
|
|
#max_prefix_interval: 30
|
|
|
|
|
max_prefix_threshold: 50
|
|
|
|
|
max_prefix_warning: 'true'
|
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *true
|
|
|
|
|
|
|
|
|
|
- name: "Check Idempotence"
|
|
|
|
|
nxos_bgp_neighbor_af: *configure_rr_client
|
|
|
|
|
nxos_bgp_neighbor_af: *configure4
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *false
|
|
|
|
|
|
|
|
|
|
- name: "Configure BGP neighbor def4"
|
|
|
|
|
nxos_bgp_neighbor_af: &configure_def4
|
|
|
|
|
asn: 65535
|
|
|
|
|
neighbor: '2.2.2.2'
|
|
|
|
|
afi: ipv4
|
|
|
|
|
safi: unicast
|
|
|
|
|
route_reflector_client: False
|
|
|
|
|
provider: "{{ connection }}"
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *true
|
|
|
|
|
|
|
|
|
|
- name: "Check Idempotence"
|
|
|
|
|
nxos_bgp_neighbor_af: *configure_def4
|
|
|
|
|
register: result
|
|
|
|
|
|
|
|
|
|
- assert: *false
|
|
|
|
|