Creating Device configuration snippets [CREATED] dut: initial,ospf,bgp [CREATED] x1: initial,ospf,bgp,bgp-xact [CREATED] x2: initial,bgp,bgp-xact Checking Are lab devices ready to be configured? [INFO] Checking SSH server(s) on dut [SSH] SSH server on node dut (device vjunos-router) is ready after 103.8 seconds [INFO] Checking lab devices with an Ansible playbook [WARNING]: Found variable using reserved name: hosts PLAY [Wait for SSH servers] **************************************************** PLAY [Wait for device-specific conditions] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [dut] TASK [Find device readiness script] ******************************************** ok: [dut] TASK [Wait for device to become ready] ***************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/readiness-check/junos.yml for dut TASK [set_fact] **************************************************************** ok: [dut] TASK [Wait for first interface (ge-0/0/0)] ************************************* ok: [dut] PLAY RECAP ********************************************************************* dut : ok=5 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 Config Deploying device configurations [INFO] Executing initial configuration for node x1 [INFO] Executing initial configuration for node x2 [INFO] Executing ospf configuration for node x1 [INFO] Executing bgp configuration for node x2 [INFO] Executing bgp configuration for node x1 [INFO] Executing bgp-xact configuration for node x2 [INFO] Executing bgp-xact configuration for node x1 [INFO] Starting Ansible playbook to deploy the rest of the configurations [WARNING]: Found variable using reserved name: hosts PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [dut] TASK [Normalize config on bridge-like devices] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [dut] TASK [Find configuration template for normalize] ******************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut] TASK [Deploy normalize configuration] ****************************************** skipping: [dut] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut TASK [Figure out whether to deploy the module initial on current device] ******* ok: [dut] TASK [Find configuration template for initial] ********************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "initial configuration for dut\n=========================================\nsystem {\n host-name dut;\n static-host-mapping {\n x1 inet 10.0.0.2;\n x2 inet 10.0.0.3;\n }\n}\n\n\ninterfaces {\n ge-0/0/0 {\n mtu 1514;\n }\n ge-0/0/1 {\n mtu 1514;\n }\n\n lo0.0 {\n \n family inet {\n address 10.0.0.1/32;\n }\n family inet6 {\n address 2001:db8:1:1::1/64;\n }\n \n }\n ge-0/0/0.0 {\n description \"dut -> x1\";\n \n family inet {\n address 10.1.0.1/30;\n }\n family inet6 {\n address 2001:db8:3::1/64;\n }\n \n }\n ge-0/0/1.0 {\n description \"dut -> x2 [external]\";\n \n family inet {\n address 10.1.0.5/30;\n }\n family inet6 {\n address 2001:db8:3:1::1/64;\n }\n \n }\n}\nprotocols {\n lldp {\n interface fxp0 {\n disable;\n }\n interface all;\n }\n router-advertisement {\n interface ge-0/0/0.0;\n interface ge-0/0/1.0;\n }\n}\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/junos.yml for dut TASK [junos_config: deploying initial from /work/netlab_cicd/junos_c/node_files/dut/initial] *** changed: [dut] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [dut] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=ospf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=bgp) TASK [Figure out whether to deploy the module ospf on current device] ********** ok: [dut] TASK [Find configuration template for ospf] ************************************ ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for ospf] ******************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "ospf configuration for dut\n=========================================\nrouting-options {\n router-id 10.0.0.1\n}\nprotocols {\n delete: ospf;\n}\n\nprotocols {\n ospf {\n area 0.0.0.0 {\n interface lo0.0 {\n }\n }\n area 0.0.0.0 {\n interface ge-0/0/0.0 {\n interface-type p2p;\n }\n }\n }\n}\n\nprotocols {\n delete: ospf3;\n}\n\nprotocols {\n ospf3 {\n area 0.0.0.0 {\n interface lo0.0 {\n }\n }\n area 0.0.0.0 {\n interface ge-0/0/0.0 {\n interface-type p2p;\n }\n }\n }\n}\n\n" } TASK [Deploy ospf configuration] *********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/junos.yml for dut TASK [junos_config: deploying ospf from /work/netlab_cicd/junos_c/node_files/dut/ospf] *** [WARNING]: statement not found changed: [dut] TASK [Figure out whether to deploy the module bgp on current device] *********** ok: [dut] TASK [Find configuration template for bgp] ************************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for bgp] ********************* ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "bgp configuration for dut\n=========================================\n\nrouting-options {\n autonomous-system 65000;\n router-id 10.0.0.1\n}\n\n\npolicy-options {\n delete: policy-statement next-hop-ebgp-ipv4;\n delete: policy-statement next-hop-all-ipv4;\n delete: policy-statement next-hop-ebgp-ipv6;\n delete: policy-statement next-hop-all-ipv6;\n\n delete: policy-statement bgp-default-redistribute;\n delete: route-filter-list bgp-default-announce-ipv4;\n delete: route-filter-list bgp-default-announce-ipv6;\n\n community x-route-permit-mark members large:65535:0:65536;\n\n policy-statement bgp-final {\n term final-option {\n from community x-route-permit-mark;\n then {\n community delete x-route-permit-mark;\n accept;\n }\n }\n term default-reject {\n then reject;\n }\n }\n\n route-filter-list bgp-default-announce-ipv4 {\n 10.0.0.1/32 exact;\n }\n route-filter-list bgp-default-announce-ipv6 {\n 2001:db8:1:1::/64 exact;\n }\n\n policy-statement bgp-default-redistribute {\n term advertise-ipv4 {\n from {\n route-filter-list bgp-default-announce-ipv4;\n }\n then {\n community add x-route-permit-mark;\n next policy;\n }\n }\n term advertise-ipv6 {\n from {\n route-filter-list bgp-default-announce-ipv6;\n }\n then {\n community add x-route-permit-mark;\n next policy;\n }\n }\n\n term redis_bgp {\n from protocol bgp;\n then {\n community add x-route-permit-mark;\n next policy;\n }\n }\n\n term default {\n then reject;\n }\n }\n\n\n policy-statement next-hop-ebgp-ipv4 {\n term next-hop-self-ipv4 {\n from {\n family inet;\n route-type external;\n }\n then {\n next-hop self;\n }\n }\n }\n policy-statement next-hop-all-ipv4 {\n term next-hop-self-ipv4 {\n from {\n family inet;\n }\n then {\n next-hop self;\n }\n }\n }\n policy-statement next-hop-ebgp-ipv6 {\n term next-hop-self-ipv6 {\n from {\n family inet6;\n route-type external;\n }\n then {\n next-hop self;\n }\n }\n }\n policy-statement next-hop-all-ipv6 {\n term next-hop-self-ipv6 {\n from {\n family inet6;\n }\n then {\n next-hop self;\n }\n }\n }\n\n policy-statement bgp-initial {\n term initial-cleanup {\n from community x-route-permit-mark;\n then {\n community delete x-route-permit-mark;\n next policy;\n }\n }\n }\n\n}\nprotocols {\n delete: bgp;\n}\nprotocols {\n bgp {\n group ibgp-peers-ipv4 {\n type internal;\n export [ \n next-hop-ebgp-ipv4 next-hop-ebgp-ipv6 bgp-default-redistribute bgp-final\n ];\n advertise-inactive;\n neighbor 10.0.0.2 {\n\n local-address 10.0.0.1;\n description x1;\n shutdown;\n }\n }\n group ibgp-peers-ipv6 {\n type internal;\n export [ \n next-hop-ebgp-ipv4 next-hop-ebgp-ipv6 bgp-default-redistribute bgp-final\n ];\n advertise-inactive;\n neighbor 2001:db8:1:2::1 {\n\n local-address 2001:db8:1:1::1;\n description x1;\n family inet6 {\n unicast;\n }\n }\n }\n group ebgp-peers {\n export [ \n bgp-default-redistribute bgp-final\n ];\n advertise-inactive;\n neighbor 10.1.0.6 {\n\n peer-as 65100;\n description x2;\n family inet {\n unicast;\n }\n }\n neighbor 2001:db8:3:1::2 {\n\n peer-as 65100;\n description x2;\n shutdown;\n }\n }\n }\n}\n" } TASK [Deploy bgp configuration] ************************************************ included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/junos.yml for dut TASK [junos_config: deploying bgp from /work/netlab_cicd/junos_c/node_files/dut/bgp] *** changed: [dut] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut : ok=27 changed=3 unreachable=0 failed=0 skipped=6 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ x1 Script: initial,ospf,bgp,bgp-xact x2 Script: initial,bgp,bgp-xact Use this topology to test the selective activation of IPv4 and IPv6 address families on IPv4 and IPv6 IBGP and EBGP sessions. The 'session should not be established' error could be triggered by overly generous activation of address families on the tested device.