[WARNING]: Could not match supplied host pattern, ignoring: unprovisioned PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [server] ok: [c1] ok: [c2] ok: [relay] TASK [Find device readiness script] ******************************************** ok: [server] ok: [c1] ok: [c2] ok: [relay] TASK [Wait for device to become ready] ***************************************** skipping: [server] included: /home/pipi/net101/tools/netsim/ansible/tasks/readiness-check/iol-clab.yml for c1, c2 included: /home/pipi/net101/tools/netsim/ansible/tasks/readiness-check/eos-clab.yml for relay TASK [Check if 'sshpass' is installed] ***************************************** changed: [c1 -> localhost] TASK [Execute local ssh command to check iol readiness] ************************ changed: [c1 -> localhost] changed: [c2 -> localhost] TASK [Confirm c1 SSH server works] ********************************************* ok: [c1] => msg: Node c1 is ready. ok: [c2] => msg: Node c2 is ready. TASK [Wait for cEOS SSH daemon to start] *************************************** ok: [relay] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for c1, c2, server, relay TASK [Figure out whether to deploy the module initial on current device] ******* ok: [server] ok: [c1] ok: [c2] ok: [relay] TASK [Find configuration template for initial] ********************************* ok: [server] ok: [c1] ok: [c2] ok: [relay] TASK [Print deployed configuration when running in verbose mode] *************** ok: [server] => msg: |- initial configuration for server ========================================= #!/bin/bash # # This script contains the 'ip' commands needed to set up container # interfaces and route table. It's executed within the container # network namespace on the container host. # # /etc/hosts file is generated as a clab bind. # set -e ### One-Shot configuration (non-Ubuntu VM or container) # # Disable IPv4 and IPv6 forwarding # sysctl -w net.ipv4.ip_forward=0 sysctl -w net.ipv6.conf.all.forwarding=0 # # Interface addressing # ip link set dev eth1 up set +e ip addr del 172.16.1.4/24 dev eth1 2>/dev/null set -e ip addr add 172.16.1.4/24 dev eth1 ip link set eth1 mtu 1500 # # Add routes to IPv4 address pools pointing to the first neighbor on the first link # # If you need anything better, use FRR instead of Linux and start routing (or use IPv6) # # lan prefix: 172.16.0.0/16 local subnet: 172.16.1.0/24 set +e ip route del 172.16.0.0/16 2>/dev/null set -e ip route add 172.16.0.0/16 via 172.16.1.1 # loopback prefix: 10.0.0.0/24 local subnet: 172.16.1.0/24 set +e ip route del 10.0.0.0/24 2>/dev/null set -e ip route add 10.0.0.0/24 via 172.16.1.1 # mgmt prefix: 192.168.17.0/24 local subnet: 172.16.1.0/24 # p2p prefix: 10.1.0.0/16 local subnet: 172.16.1.0/24 set +e ip route del 10.1.0.0/16 2>/dev/null set -e ip route add 10.1.0.0/16 via 172.16.1.1 # router_id prefix: 10.0.0.0/24 local subnet: 172.16.1.0/24 # vrf_loopback prefix: 10.2.0.0/24 local subnet: 172.16.1.0/24 set +e ip route del 10.2.0.0/24 2>/dev/null set -e ip route add 10.2.0.0/24 via 172.16.1.1 # # Print the final routing table ip route ok: [c1] => msg: |- initial configuration for c1 ========================================= hostname c1 ! no ip domain lookup ! lldp run ! ip host c2 10.0.0.3 ip host relay 10.0.0.1 172.16.0.1 172.16.1.1 ip host server 172.16.1.4 ! ip routing ! ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 ! interface Ethernet0/0 no lldp transmit no lldp receive ! interface Ethernet0/1 no shutdown description c1 -> [c2,relay] mtu 1500 ! ! line vty 0 4 exec-timeout 0 0 ! no banner exec no banner login no banner incoming ok: [c2] => msg: |- initial configuration for c2 ========================================= hostname c2 ! no ip domain lookup ! lldp run ! ip host c1 10.0.0.2 ip host relay 10.0.0.1 172.16.0.1 172.16.1.1 ip host server 172.16.1.4 ! ip routing ! ! interface Loopback0 ip address 10.0.0.3 255.255.255.255 ! interface Ethernet0/0 no lldp transmit no lldp receive ! interface Ethernet0/1 no shutdown description c2 -> [c1,relay] mtu 1500 ! ! line vty 0 4 exec-timeout 0 0 ! no banner exec no banner login no banner incoming ok: [relay] => msg: |- initial configuration for relay ========================================= hostname relay ! logging monitor debugging aaa authorization exec default local ! lldp run ip routing ! ! ip host c1 10.0.0.2 ip host c2 10.0.0.3 ip host server 172.16.1.4 ! interface Management0 no lldp transmit no lldp receive ! interface Loopback0 no shutdown ip address 10.0.0.1/32 ! interface Ethernet1 no shutdown no switchport description relay -> [c1,c2] ip address 172.16.0.1/24 ! mac-address 52dc.cafe.0101 ! interface Ethernet2 no shutdown no switchport description relay -> server ip address 172.16.1.1/24 ! mac-address 52dc.cafe.0102 ! TASK [Find configuration deployment deploy_script for initial] ***************** ok: [server] ok: [c1] ok: [c2] ok: [relay] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/ios.yml for c1, c2 included: /home/pipi/net101/tools/netsim/ansible/tasks/linux/initial-clab.yml for server included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for relay TASK [ios_config: deploying initial from /home/pipi/net101/tools/netsim/ansible/templates/initial/ios.j2] *** [WARNING]: To ensure idempotency and correct diff the input configuration lines should be similar to how they appear if present in the running configuration on device including the indentation changed: [c2] changed: [c1] TASK [set_fact] **************************************************************** ok: [server] TASK [Create initial container setup from /home/pipi/net101/tools/netsim/ansible/templates/initial/linux-clab.j2] *** changed: [server -> localhost] TASK [Initial container configuration via /tmp/config-GNjjEPNM-server.sh] ****** changed: [server -> localhost] TASK [file] ******************************************************************** changed: [server -> localhost] TASK [eos_config: deploying initial from /home/pipi/net101/tools/netsim/ansible/templates/initial/eos.j2] *** changed: [relay] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [server] ok: [c1] ok: [c2] ok: [relay] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for c1, c2, relay, server => (item=dhcp) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for c1, c2, relay, server => (item=ospf) TASK [Figure out whether to deploy the module dhcp on current device] ********** ok: [server] ok: [c1] ok: [c2] ok: [relay] TASK [Find configuration template for dhcp] ************************************ skipping: [server] ok: [c1] ok: [c2] ok: [relay] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [server] ok: [c1] => msg: |- dhcp configuration for c1 ========================================= interface Ethernet0/1 ip address dhcp ok: [c2] => msg: |- dhcp configuration for c2 ========================================= interface Ethernet0/1 ip address dhcp ok: [relay] => msg: |- dhcp configuration for relay ========================================= interface Ethernet1 ip helper-address 172.16.1.4 TASK [Find configuration deployment deploy_script for dhcp] ******************** skipping: [server] ok: [c1] ok: [c2] ok: [relay] TASK [Deploy dhcp configuration] *********************************************** skipping: [server] included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/ios.yml for c1, c2 included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for relay TASK [ios_config: deploying dhcp from /home/pipi/net101/tools/netsim/ansible/templates/dhcp/ios.j2] *** changed: [c1] changed: [c2] TASK [eos_config: deploying dhcp from /home/pipi/net101/tools/netsim/ansible/templates/dhcp/eos.j2] *** changed: [relay] TASK [Figure out whether to deploy the module ospf on current device] ********** ok: [server] ok: [c1] ok: [c2] ok: [relay] TASK [Find configuration template for ospf] ************************************ skipping: [c1] skipping: [c2] skipping: [server] ok: [relay] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [c1] skipping: [c2] skipping: [server] ok: [relay] => msg: |- ospf configuration for relay ========================================= ! ! OSPFv2 configuration ! router ospf 1 router-id 10.0.0.1 interface unnumbered hello mask tx 0.0.0.0 timers spf delay initial 100 200 500 timers lsa rx min interval 100 timers lsa tx delay initial 100 200 500 ! interface Loopback0 ! ip ospf area 0.0.0.0 ! interface Ethernet1 ! relay -> [c1,c2] ip ospf area 0.0.0.0 ! interface Ethernet2 ! relay -> server ip ospf area 0.0.0.0 ip ospf network point-to-point ! TASK [Find configuration deployment deploy_script for ospf] ******************** skipping: [c1] skipping: [c2] skipping: [server] ok: [relay] TASK [Deploy ospf configuration] *********************************************** skipping: [c1] skipping: [c2] skipping: [server] included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for relay TASK [eos_config: deploying ospf from /home/pipi/net101/tools/netsim/ansible/templates/ospf/eos.j2] *** changed: [relay] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* c1 : ok=23 changed=4 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0 c2 : ok=22 changed=3 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0 relay : ok=26 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 server : ok=17 changed=3 unreachable=0 failed=0 skipped=9 rescued=0 ignored=0 Use this topology to test the OSPF over interfaces using dynamic DHCP addresses. Use 'netlab validate' to check whether your devices acquired dynamic IPv4 addresses and whether they established OSPF adjacency with the DHCP relay.