Skip to content
Snippets Groups Projects
Commit 02964159 authored by Aleksandr Kurbatov's avatar Aleksandr Kurbatov
Browse files

Merge branch 'feature/nat-666-p-to-pe' into 'develop'

promote-p-to-pe role

See merge request !162
parents 59c2fe74 103cb902
No related branches found
No related tags found
1 merge request!162promote-p-to-pe role
Pipeline #88659 passed
Showing
with 152 additions and 68 deletions
- name: Check L3 VPRN
hosts: all
gather_facts: false
roles:
- ../roles/promote_p_to_pe
- name: Promote P router to PE
hosts: all
gather_facts: false
roles:
- ../roles/promote_p_to_pe
- name: Update SDP mesh
hosts: all
gather_facts: false
roles:
- ../roles/promote_p_to_pe
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
ansible_network_os: nokia.sros.md ansible_network_os: nokia.sros.md
ansible_connection: netconf ansible_connection: netconf
- name: Nokia P - check BGP status - name: Check BGP status
block: block:
- name: Get BGP group status - name: Get BGP group status
ansible.netcommon.netconf_rpc: ansible.netcommon.netconf_rpc:
......
--- ---
# tasks file for ibg_update # tasks file for ibg_update
- name: Print the usage - name: Print the usage
when: (verb is not defined) or (verb not in verbs)
ansible.builtin.debug: ansible.builtin.debug:
msg: msg:
- "Allowed verbs: 'add_pe_to_p' and 'add_p_to_pe'. Use: -e 'verb=$verb'." - "'verb' keyword is mandatory. Usage: -e verb=$verb"
- name: Print defined verbs
when: (verb is not defined) or (verb not in verbs) when: (verb is not defined) or (verb not in verbs)
ansible.builtin.debug:
msg:
- "Allowed verb: {{ item }}"
loop: "{{ verbs }}"
- name: Fail if arguments are missing - name: Fail if arguments are missing
ansible.legacy.meta: end_play ansible.legacy.meta: end_play
...@@ -27,21 +35,18 @@ ...@@ -27,21 +35,18 @@
ansible.builtin.debug: ansible.builtin.debug:
msg: "{{ opid }}" msg: "{{ opid }}"
- name: Include PE mesh modification tasks - name: Include list of routers modification tasks
ansible.builtin.include_tasks: modify_pe_mesh.yaml ansible.builtin.include_tasks: modify_router_list.yaml
when: >
verb in [ "add_p_to_pe", "remove_pe_from_pe", "remove_p_from_pe" ]
- name: Include PE into P tasks if selected
ansible.builtin.include_tasks: add_pe_to_p.yaml
when: > when: >
verb in [ "add_pe_to_p", "verify_p_ibgp" ] verb in [ "add_p_to_pe", "add_pe_to_pe_mesh", "add_pe_to_all_p",
"remove_p_from_pe", "remove_pe_from_pe" ]
- name: Include PE removal from P tasks if selected - name: Include single router modification tasks
ansible.builtin.include_tasks: remove_pe_from_p.yaml ansible.builtin.include_tasks: modify_subscription_router.yaml
when: > when: >
verb in [ "remove_pe_from_p" ] verb in [ "add_pe_to_p", "verify_p_ibgp", "add_pe_mesh_to_pe",
"add_all_p_to_pe", "remove_pe_from_p" ]
- name: Check status of iBGP on P router - name: Check status of iBGP on Nokia router
ansible.builtin.include_tasks: check_p_ibgp.yaml ansible.builtin.include_tasks: check_nokia_ibgp.yaml
when: verb == "check_p_ibgp" when: verb in [ "check_p_ibgp", "check_pe_ibgp" ]
...@@ -5,18 +5,18 @@ ...@@ -5,18 +5,18 @@
# FIX: Load ansible_network_os via group_vars # FIX: Load ansible_network_os via group_vars
# #
- name: Set variable to connect to nokia - name: Set variable to connect to nokia
ansible.legacy.set_fact: ansible.builtin.set_fact:
ansible_network_os: geant.gap_ansible.sros ansible_network_os: geant.gap_ansible.sros
ansible_connection: netconf ansible_connection: netconf
- name: Set ansible_host to terminal server when router is offline - name: Set ansible_host to terminal server when router is offline
ansible.legacy.set_fact: ansible.builtin.set_fact:
ansible_host: "{{ subscription.router.router_site.site_ts_address }}" ansible_host: "{{ subscription.router.router_site.site_ts_address }}"
ansible_port: "{{ subscription.router.router_ts_port }}" ansible_port: "{{ subscription.router.router_ts_port }}"
when: ( subscription.router.router_access_via_ts | ansible.builtin.bool ) is true when: ( subscription.router.router_access_via_ts | ansible.builtin.bool ) is true
- name: Set the vendor variable to select correct template - name: Set the vendor variable to select correct template
ansible.legacy.set_fact: ansible.builtin.set_fact:
vendor: "{{ subscription.router.vendor }}" vendor: "{{ subscription.router.vendor }}"
- name: Include compile tasks - name: Include compile tasks
......
# PE to P tasks:
# This is th case of decomm of a PE router <- remove it from all Ps.
# P routers will always be NOKIA
# FIX: Load ansible_network_os via group_vars
#
- name: Set variable to connect to nokia
ansible.legacy.set_fact:
ansible_network_os: geant.gap_ansible.sros
ansible_connection: netconf
# - name: Set ansible_host to terminal server when router is offline
# ansible.legacy.set_fact:
# ansible_host: "{{ subscription.router.router_site.site_ts_address }}"
# ansible_port: "{{ subscription.router.router_ts_port }}"
# when: ( subscription.router.router_access_via_ts | ansible.builtin.bool ) is true
- name: Set vendor var for "remove_pe_from_p" case
ansible.builtin.set_fact:
vendor: "nokia"
- name: Include compile tasks
ansible.builtin.include_tasks: compile.yaml
- name: Include deploy tasks
ansible.builtin.include_tasks: deploy.yaml
set protocols bgp group iGEANT6-P-ONLY neighbor {{ p_lo_ipv6_address }} description {{ p_router_fqdn }} set protocols bgp group {{ geant_bgp_groups.p_only.ipv6 }} neighbor {{ p_lo_ipv6_address }} description {{ p_router_fqdn }}
set protocols bgp group iGEANT-P-ONLY neighbor {{ p_lo_ipv4_address }} description {{ p_router_fqdn }} set protocols bgp group {{ geant_bgp_groups.p_only.ipv4 }} neighbor {{ p_lo_ipv4_address }} description {{ p_router_fqdn }}
set protocols bgp group {{ geant_bgp_groups.pe_mesh.ipv6 }} neighbor {{ subscription_lo_ipv6 }} description {{ subscription_fqdn }}
set protocols bgp group {{ geant_bgp_groups.pe_mesh.ipv4 }} neighbor {{ subscription_lo_ipv4 }} description {{ subscription_fqdn }}
delete protocols bgp group iGEANT6-P-ONLY neighbor {{ p_lo_ipv6_address }} delete protocols bgp group {{ geant_bgp_groups.p_only.ipv6 }} neighbor {{ p_lo_ipv6_address }}
delete protocols bgp group iGEANT-P-ONLY neighbor {{ p_lo_ipv4_address }} delete protocols bgp group {{ geant_bgp_groups.p_only.ipv4 }} neighbor {{ p_lo_ipv4_address }}
delete protocols bgp group iGEANT6 neighbor {{ subscription.router.router_lo_ipv6_address }} delete protocols bgp group {{ geant_bgp_groups.pe_mesh.ipv6 }} neighbor {{ subscription.router.router_lo_ipv6_address }}
delete protocols bgp group iGEANT neighbor {{ subscription.router.router_lo_ipv4_address }} delete protocols bgp group {{ geant_bgp_groups.pe_mesh.ipv4 }} neighbor {{ subscription.router.router_lo_ipv4_address }}
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:alu="urn:ietf:params:xml:ns:netconf:base:1.0">
<configure xmlns="urn:nokia.com:sros:ns:yang:sr:conf">
<router>
<router-name>Base</router-name>
<bgp>
{% for p_fqdn, p_ipadd in p_router_list.items() %}
<neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes">
<ip-address>{{ p_ipadd.lo4 }}</ip-address>
<description>{{ p_fqdn }}</description>
<group>{{ geant_bgp_groups.p_only.ipv4 }}</group>
</neighbor>
<neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes">
<ip-address>{{ p_ipadd.lo4 }}</ip-address>
<description>{{ p_fqdn }}</description>
<group>{{ geant_bgp_groups.p_only.ipv6 }}</group>
</neighbor>
{% endfor %}
</bgp>
</router>
</configure>
</config>
<router> <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:alu="urn:ietf:params:xml:ns:netconf:base:1.0">
<bgp> <configure xmlns="urn:nokia.com:sros:ns:yang:sr:conf">
<neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes"> <router>
<ip-address>{{ p_lo_ipv4_address }}</ip-address> <router-name>Base</router-name>
<description>{{ p_router_fqdn }}</description> <bgp>
<group>iGEANT-P-ONLY</group> <neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes">
</neighbor> <ip-address>{{ p_lo_ipv4_address }}</ip-address>
<neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes"> <description>{{ p_router_fqdn }}</description>
<ip-address>{{ p_lo_ipv6_address }}</ip-address> <group>{{ geant_bgp_groups.p_only.ipv4 }}</group>
<description>{{ p_router_fqdn }}</description> </neighbor>
<group>iGEANT-P-ONLY-v6</group> <neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes">
</neighbor> <ip-address>{{ p_lo_ipv6_address }}</ip-address>
</bgp> <description>{{ p_router_fqdn }}</description>
</router> <group>{{ geant_bgp_groups.p_only.ipv6 }}</group>
</neighbor>
</bgp>
</router>
</configure>
</config>
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:alu="urn:ietf:params:xml:ns:netconf:base:1.0">
<configure xmlns="urn:nokia.com:sros:ns:yang:sr:conf">
<router>
<router-name>Base</router-name>
<bgp>
{% for pe_fqdn, pe_ipadd in pe_router_list.items() %}
<neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes" alu:operation="replace">
<ip-address>{{ pe_ipadd.lo4 }}</ip-address>
<description>{{ pe_fqdn }}</description>
<group>{{ geant_bgp_groups.pe_mesh.ipv4 }}</group>
</neighbor>
<neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes" alu:operation="replace">
<ip-address>{{ pe_ipadd.lo6 }}</ip-address>
<description>{{ pe_fqdn }}</description>
<group>{{ geant_bgp_groups.pe_mesh.ipv6 }}</group>
</neighbor>
{% endfor %}
</bgp>
</router>
</configure>
</config>
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:alu="urn:ietf:params:xml:ns:netconf:base:1.0">
<configure xmlns="urn:nokia.com:sros:ns:yang:sr:conf">
<router>
<router-name>Base</router-name>
<bgp>
<neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes" alu:operation="replace">
<ip-address>{{ subscription_lo_ipv4 }}</ip-address>
<description>{{ subscription_fqdn }}</description>
<group>{{ geant_bgp_groups.p_only.ipv4 }}</group>
</neighbor>
<neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes" alu:operation="replace">
<ip-address>{{ subscription_lo_ipv6 }}</ip-address>
<description>{{ subscription_fqdn }}</description>
<group>{{ geant_bgp_groups.p_only.ipv6 }}</group>
</neighbor>
</bgp>
</router>
</configure>
</config>
...@@ -7,12 +7,12 @@ ...@@ -7,12 +7,12 @@
<neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes" alu:operation="replace"> <neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes" alu:operation="replace">
<ip-address>{{ pe_ipadd.lo4 }}</ip-address> <ip-address>{{ pe_ipadd.lo4 }}</ip-address>
<description>{{ pe_fqdn }}</description> <description>{{ pe_fqdn }}</description>
<group>iGEANT-P-ONLY</group> <group>{{ geant_bgp_groups.p_only.ipv4 }}</group>
</neighbor> </neighbor>
<neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes" alu:operation="replace"> <neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes" alu:operation="replace">
<ip-address>{{ pe_ipadd.lo6 }}</ip-address> <ip-address>{{ pe_ipadd.lo6 }}</ip-address>
<description>{{ pe_fqdn }}</description> <description>{{ pe_fqdn }}</description>
<group>iGEANT6-P-ONLY</group> <group>{{ geant_bgp_groups.p_only.ipv6 }}</group>
</neighbor> </neighbor>
{% endfor %} {% endfor %}
</bgp> </bgp>
......
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:alu="urn:ietf:params:xml:ns:netconf:base:1.0">
<configure xmlns="urn:nokia.com:sros:ns:yang:sr:conf">
<router>
<router-name>Base</router-name>
<bgp>
<neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes" alu:operation="replace">
<ip-address>{{ subscription_lo_ipv4 }}</ip-address>
<description>{{ subscription_fqdn }}</description>
<group>{{ geant_bgp_groups.pe_mesh.ipv4 }}</group>
</neighbor>
<neighbor xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes" alu:operation="replace">
<ip-address>{{ subscription_lo_ipv6 }}</ip-address>
<description>{{ subscription_fqdn }}</description>
<group>{{ geant_bgp_groups.pe_mesh.ipv6 }}</group>
</neighbor>
</bgp>
</router>
</configure>
</config>
...@@ -5,9 +5,11 @@ ...@@ -5,9 +5,11 @@
<bgp xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes"> <bgp xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes">
<neighbor alu:operation="delete"> <neighbor alu:operation="delete">
<ip-address>{{ subscription.router.router_lo_ipv4_address }}</ip-address> <ip-address>{{ subscription.router.router_lo_ipv4_address }}</ip-address>
<group>{{ geant_bgp_groups.p_only.ipv4 }}</group>
</neighbor> </neighbor>
<neighbor alu:operation="delete"> <neighbor alu:operation="delete">
<ip-address>{{ subscription.router.router_lo_ipv6_address }}</ip-address> <ip-address>{{ subscription.router.router_lo_ipv6_address }}</ip-address>
<group>{{ geant_bgp_groups.p_only.ipv6 }}</group>
</neighbor> </neighbor>
</bgp> </bgp>
</router> </router>
......
...@@ -5,11 +5,11 @@ ...@@ -5,11 +5,11 @@
<bgp xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes"> <bgp xmlns="urn:nokia.com:sros:ns:yang:sr:conf" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nokia-attr="urn:nokia.com:sros:ns:yang:sr:attributes">
<neighbor alu:operation="delete"> <neighbor alu:operation="delete">
<ip-address>{{ subscription.router.router_lo_ipv4_address }}</ip-address> <ip-address>{{ subscription.router.router_lo_ipv4_address }}</ip-address>
<group>iGEANT</group> <group>{{ geant_bgp_groups.pe_mesh.ipv4 }}</group>
</neighbor> </neighbor>
<neighbor alu:operation="delete"> <neighbor alu:operation="delete">
<ip-address>{{ subscription.router.router_lo_ipv6_address }}</ip-address> <ip-address>{{ subscription.router.router_lo_ipv6_address }}</ip-address>
<group>iGEANT6</group> <group>{{ geant_bgp_groups.pe_mesh.ipv6 }}</group>
</neighbor> </neighbor>
</bgp> </bgp>
</router> </router>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment