From f51c0c8bfebcd0b7fa606821b592b36740d9d5aa Mon Sep 17 00:00:00 2001 From: Karl Newell Date: Sat, 7 Sep 2019 23:07:03 -0400 Subject: [PATCH] Further abstract Ansible playbooks --- dhcpd-config.yml | 2 +- files/ksr-config/ksr-vmx1-config.txt | 166 ++++++++++++++++++++++ files/ksr-config/ksr-vmx2-config.txt | 148 ++++++++++++++++++++ files/ksr-config/ksr-vmx3-config.txt | 148 ++++++++++++++++++++ files/ksr-config/ksr-vmx4-config.txt | 184 ++++++++++++++++++++++++ files/ksr-config/ksr-vmx5-config.txt | 183 ++++++++++++++++++++++++ files/ksr-config/ksr-vmx6-config.txt | 202 +++++++++++++++++++++++++++ files/ksr-config/ksr-vmx7-config.txt | 183 ++++++++++++++++++++++++ files/ksr-config/ksr-vmx8-config.txt | 148 ++++++++++++++++++++ files/ksr-config/ksr-vmx9-config.txt | 148 ++++++++++++++++++++ files/ksr-tasks/ksr-vmx1_task.yml | 32 +++++ files/ksr-tasks/ksr-vmx2_task.yml | 32 +++++ files/ksr-tasks/ksr-vmx3_task.yml | 32 +++++ files/ksr-tasks/ksr-vmx4_task.yml | 32 +++++ files/ksr-tasks/ksr-vmx5_task.yml | 32 +++++ files/ksr-tasks/ksr-vmx6_task.yml | 32 +++++ files/ksr-tasks/ksr-vmx7_task.yml | 32 +++++ files/ksr-tasks/ksr-vmx8_task.yml | 32 +++++ files/ksr-tasks/ksr-vmx9_task.yml | 32 +++++ files/ksr_nodes.yml | 168 ++++++++++++++++++++++ group_vars/ksr | 7 +- hosts.ini | 2 +- lab-config.yml | 11 +- lab-deploy.yml | 25 ++-- lab-poweron.yml | 2 +- lab-reboot.yml | 10 ++ lab-snapshot.yml | 2 +- lab-teardown.yml | 14 +- lab-tilfa.yml | 2 +- templates/junos.j2 | 18 ++- templates/vmx_base.conf.j2 | 1 + vars_files/core-model-ksr.yml | 114 +++++++-------- 32 files changed, 2083 insertions(+), 93 deletions(-) create mode 100644 files/ksr-config/ksr-vmx1-config.txt create mode 100644 files/ksr-config/ksr-vmx2-config.txt create mode 100644 files/ksr-config/ksr-vmx3-config.txt create mode 100644 files/ksr-config/ksr-vmx4-config.txt create mode 100644 files/ksr-config/ksr-vmx5-config.txt create mode 100644 files/ksr-config/ksr-vmx6-config.txt create mode 100644 files/ksr-config/ksr-vmx7-config.txt create mode 100644 files/ksr-config/ksr-vmx8-config.txt create mode 100644 files/ksr-config/ksr-vmx9-config.txt create mode 100644 files/ksr-tasks/ksr-vmx1_task.yml create mode 100644 files/ksr-tasks/ksr-vmx2_task.yml create mode 100644 files/ksr-tasks/ksr-vmx3_task.yml create mode 100644 files/ksr-tasks/ksr-vmx4_task.yml create mode 100644 files/ksr-tasks/ksr-vmx5_task.yml create mode 100644 files/ksr-tasks/ksr-vmx6_task.yml create mode 100644 files/ksr-tasks/ksr-vmx7_task.yml create mode 100644 files/ksr-tasks/ksr-vmx8_task.yml create mode 100644 files/ksr-tasks/ksr-vmx9_task.yml create mode 100644 files/ksr_nodes.yml create mode 100644 lab-reboot.yml diff --git a/dhcpd-config.yml b/dhcpd-config.yml index 9d52731..0cedb87 100644 --- a/dhcpd-config.yml +++ b/dhcpd-config.yml @@ -1,6 +1,6 @@ --- - name: generate dhcpd.hosts entries - hosts: srlab + hosts: "{{ variable_hosts }}" gather_facts: no vars_files: group_vars/vmware tasks: diff --git a/files/ksr-config/ksr-vmx1-config.txt b/files/ksr-config/ksr-vmx1-config.txt new file mode 100644 index 0000000..46b165b --- /dev/null +++ b/files/ksr-config/ksr-vmx1-config.txt @@ -0,0 +1,166 @@ + +version VERSION +system { + host-name ksr-vmx1; + no-redirects; + root-authentication { + encrypted-password "$5$mcE0Hfiq$JfBeC3QSAvnd1tjqlOhlYXDgVrwvd6S4G3oVj5wiMO7"; ## SECRET-DATA + } + login { + user salt { + uid 2001; + class super-user; + authentication { + encrypted-password "$5$yp7ziGTI$F5F.6AUlR8hDK2JIsw5WRrTLex/yTCWH3iSR1Auk293"; ## SECRET-DATA + ssh-rsa "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjxY2hLZ+ju5wdK4GYNhKGgnS8EWLBoEVpo+xQkhDzkTiBx3HGAnmARcVV0B9MqrHZl1omdnirJeygWzVbVY4yPUqGgEcUsTTq9fvK4AjTwtaoB5txAosaOnZq0zewmuZ6EMi6E3RND6A3FGXkf1Il2jg3I8k/dGqdyFI80B7sWy90fk+EqsGMPxVc+l5vAtY2jm84ellxxzBsulxfCSKPH86hZ1GqZ8A1ZBWITu15NjQw0aGssSYGMMTa1T8eFyY4hHWqqdwgOlODg9mZwwP1JdJH79SRoTOjqGGixuAFDGAgH3fNX6u8wTmYya/z7WXH6B2XwiiaZYdcyEbMLPZt"; ## SECRET-DATA + } + } + } + services { + ssh { + root-login allow; + } + netconf { + ssh; + traceoptions { + file nc.txt size 1m world-readable; + flag all; + } + } + } + syslog { + user * { + any emergency; + } + file messages { + any any; + authorization info; + } + file interactive-commands { + interactive-commands any; + } + } +} +chassis { + network-services enhanced-ip; +} +interfaces { + ge-0/0/0 { + description "ksr-vmx2" + unit 0 { + family inet { + address 10.0.0.0/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/1 { + description "ksr-vmx4" + unit 0 { + family inet { + address 10.0.0.2/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/2 { + description "ksr-vmx3" + unit 0 { + family inet { + address 10.0.0.22/31 + } + family inet6; + family mpls; + family iso; + } + } + + fxp0 { + description "OOB to MGMT Network"; + unit 0 { + family inet { + address 10.39.0.201/20; + } + } + } + lo0 { + unit 0 { + family inet { + address 192.168.0.1/32; + } + family inet6 { + address fec0:0:0:1111::1/128; + } + + family iso { + address 49.0001.0010.0100.1001.00; + } + + } + } +} +routing-options { + router-id 192.168.0.1; + autonomous-system 65000; + forwarding-table { + export LOAD-BALANCE; + } + static { + route 0.0.0.0/0 { + next-hop 10.39.0.1; + no-readvertise; + preference 255; + } + } +} +protocols { + isis { + source-packet-routing { + srgb start-label 16000 index-range 8000; + node-segment { + ipv4-index 401; + ipv6-index 601; + } + } + level 1 disable; + level 2 wide-metrics-only; + interface ge-0/0/0.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/1.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/2.0 { + point-to-point; + level 2 metric 1000; + } + interface lo0.0 { + passive; + } + } + mpls { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + } + lldp { + interface ge-0/0/0; + interface ge-0/0/1; + interface ge-0/0/2; + } +} +policy-options { + policy-statement LOAD-BALANCE { + then { + load-balance per-packet; + } + } +} diff --git a/files/ksr-config/ksr-vmx2-config.txt b/files/ksr-config/ksr-vmx2-config.txt new file mode 100644 index 0000000..bedfaa5 --- /dev/null +++ b/files/ksr-config/ksr-vmx2-config.txt @@ -0,0 +1,148 @@ + +version VERSION +system { + host-name ksr-vmx2; + no-redirects; + root-authentication { + encrypted-password "$5$mcE0Hfiq$JfBeC3QSAvnd1tjqlOhlYXDgVrwvd6S4G3oVj5wiMO7"; ## SECRET-DATA + } + login { + user salt { + uid 2001; + class super-user; + authentication { + encrypted-password "$5$yp7ziGTI$F5F.6AUlR8hDK2JIsw5WRrTLex/yTCWH3iSR1Auk293"; ## SECRET-DATA + ssh-rsa "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjxY2hLZ+ju5wdK4GYNhKGgnS8EWLBoEVpo+xQkhDzkTiBx3HGAnmARcVV0B9MqrHZl1omdnirJeygWzVbVY4yPUqGgEcUsTTq9fvK4AjTwtaoB5txAosaOnZq0zewmuZ6EMi6E3RND6A3FGXkf1Il2jg3I8k/dGqdyFI80B7sWy90fk+EqsGMPxVc+l5vAtY2jm84ellxxzBsulxfCSKPH86hZ1GqZ8A1ZBWITu15NjQw0aGssSYGMMTa1T8eFyY4hHWqqdwgOlODg9mZwwP1JdJH79SRoTOjqGGixuAFDGAgH3fNX6u8wTmYya/z7WXH6B2XwiiaZYdcyEbMLPZt"; ## SECRET-DATA + } + } + } + services { + ssh { + root-login allow; + } + netconf { + ssh; + traceoptions { + file nc.txt size 1m world-readable; + flag all; + } + } + } + syslog { + user * { + any emergency; + } + file messages { + any any; + authorization info; + } + file interactive-commands { + interactive-commands any; + } + } +} +chassis { + network-services enhanced-ip; +} +interfaces { + ge-0/0/0 { + description "ksr-vmx1" + unit 0 { + family inet { + address 10.0.0.1/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/1 { + description "ksr-vmx5" + unit 0 { + family inet { + address 10.0.0.4/31 + } + family inet6; + family mpls; + family iso; + } + } + + fxp0 { + description "OOB to MGMT Network"; + unit 0 { + family inet { + address 10.39.0.202/20; + } + } + } + lo0 { + unit 0 { + family inet { + address 192.168.0.2/32; + } + family inet6 { + address fec0:0:0:1111::2/128; + } + + family iso { + address 49.0001.0010.0100.1002.00; + } + + } + } +} +routing-options { + router-id 192.168.0.2; + autonomous-system 65000; + forwarding-table { + export LOAD-BALANCE; + } + static { + route 0.0.0.0/0 { + next-hop 10.39.0.1; + no-readvertise; + preference 255; + } + } +} +protocols { + isis { + source-packet-routing { + srgb start-label 16000 index-range 8000; + node-segment { + ipv4-index 402; + ipv6-index 602; + } + } + level 1 disable; + level 2 wide-metrics-only; + interface ge-0/0/0.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/1.0 { + point-to-point; + level 2 metric 1000; + } + interface lo0.0 { + passive; + } + } + mpls { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + } + lldp { + interface ge-0/0/0; + interface ge-0/0/1; + } +} +policy-options { + policy-statement LOAD-BALANCE { + then { + load-balance per-packet; + } + } +} diff --git a/files/ksr-config/ksr-vmx3-config.txt b/files/ksr-config/ksr-vmx3-config.txt new file mode 100644 index 0000000..5fd4aa5 --- /dev/null +++ b/files/ksr-config/ksr-vmx3-config.txt @@ -0,0 +1,148 @@ + +version VERSION +system { + host-name ksr-vmx3; + no-redirects; + root-authentication { + encrypted-password "$5$mcE0Hfiq$JfBeC3QSAvnd1tjqlOhlYXDgVrwvd6S4G3oVj5wiMO7"; ## SECRET-DATA + } + login { + user salt { + uid 2001; + class super-user; + authentication { + encrypted-password "$5$yp7ziGTI$F5F.6AUlR8hDK2JIsw5WRrTLex/yTCWH3iSR1Auk293"; ## SECRET-DATA + ssh-rsa "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjxY2hLZ+ju5wdK4GYNhKGgnS8EWLBoEVpo+xQkhDzkTiBx3HGAnmARcVV0B9MqrHZl1omdnirJeygWzVbVY4yPUqGgEcUsTTq9fvK4AjTwtaoB5txAosaOnZq0zewmuZ6EMi6E3RND6A3FGXkf1Il2jg3I8k/dGqdyFI80B7sWy90fk+EqsGMPxVc+l5vAtY2jm84ellxxzBsulxfCSKPH86hZ1GqZ8A1ZBWITu15NjQw0aGssSYGMMTa1T8eFyY4hHWqqdwgOlODg9mZwwP1JdJH79SRoTOjqGGixuAFDGAgH3fNX6u8wTmYya/z7WXH6B2XwiiaZYdcyEbMLPZt"; ## SECRET-DATA + } + } + } + services { + ssh { + root-login allow; + } + netconf { + ssh; + traceoptions { + file nc.txt size 1m world-readable; + flag all; + } + } + } + syslog { + user * { + any emergency; + } + file messages { + any any; + authorization info; + } + file interactive-commands { + interactive-commands any; + } + } +} +chassis { + network-services enhanced-ip; +} +interfaces { + ge-0/0/0 { + description "ksr-vmx1" + unit 0 { + family inet { + address 10.0.0.23/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/1 { + description "ksr-vmx6" + unit 0 { + family inet { + address 10.0.0.24/31 + } + family inet6; + family mpls; + family iso; + } + } + + fxp0 { + description "OOB to MGMT Network"; + unit 0 { + family inet { + address 10.39.0.203/20; + } + } + } + lo0 { + unit 0 { + family inet { + address 192.168.0.3/32; + } + family inet6 { + address fec0:0:0:1111::3/128; + } + + family iso { + address 49.0001.0010.0100.1003.00; + } + + } + } +} +routing-options { + router-id 192.168.0.3; + autonomous-system 65000; + forwarding-table { + export LOAD-BALANCE; + } + static { + route 0.0.0.0/0 { + next-hop 10.39.0.1; + no-readvertise; + preference 255; + } + } +} +protocols { + isis { + source-packet-routing { + srgb start-label 16000 index-range 8000; + node-segment { + ipv4-index 403; + ipv6-index 603; + } + } + level 1 disable; + level 2 wide-metrics-only; + interface ge-0/0/0.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/1.0 { + point-to-point; + level 2 metric 1000; + } + interface lo0.0 { + passive; + } + } + mpls { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + } + lldp { + interface ge-0/0/0; + interface ge-0/0/1; + } +} +policy-options { + policy-statement LOAD-BALANCE { + then { + load-balance per-packet; + } + } +} diff --git a/files/ksr-config/ksr-vmx4-config.txt b/files/ksr-config/ksr-vmx4-config.txt new file mode 100644 index 0000000..49566bc --- /dev/null +++ b/files/ksr-config/ksr-vmx4-config.txt @@ -0,0 +1,184 @@ + +version VERSION +system { + host-name ksr-vmx4; + no-redirects; + root-authentication { + encrypted-password "$5$mcE0Hfiq$JfBeC3QSAvnd1tjqlOhlYXDgVrwvd6S4G3oVj5wiMO7"; ## SECRET-DATA + } + login { + user salt { + uid 2001; + class super-user; + authentication { + encrypted-password "$5$yp7ziGTI$F5F.6AUlR8hDK2JIsw5WRrTLex/yTCWH3iSR1Auk293"; ## SECRET-DATA + ssh-rsa "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjxY2hLZ+ju5wdK4GYNhKGgnS8EWLBoEVpo+xQkhDzkTiBx3HGAnmARcVV0B9MqrHZl1omdnirJeygWzVbVY4yPUqGgEcUsTTq9fvK4AjTwtaoB5txAosaOnZq0zewmuZ6EMi6E3RND6A3FGXkf1Il2jg3I8k/dGqdyFI80B7sWy90fk+EqsGMPxVc+l5vAtY2jm84ellxxzBsulxfCSKPH86hZ1GqZ8A1ZBWITu15NjQw0aGssSYGMMTa1T8eFyY4hHWqqdwgOlODg9mZwwP1JdJH79SRoTOjqGGixuAFDGAgH3fNX6u8wTmYya/z7WXH6B2XwiiaZYdcyEbMLPZt"; ## SECRET-DATA + } + } + } + services { + ssh { + root-login allow; + } + netconf { + ssh; + traceoptions { + file nc.txt size 1m world-readable; + flag all; + } + } + } + syslog { + user * { + any emergency; + } + file messages { + any any; + authorization info; + } + file interactive-commands { + interactive-commands any; + } + } +} +chassis { + network-services enhanced-ip; +} +interfaces { + ge-0/0/0 { + description "ksr-vmx5" + unit 0 { + family inet { + address 10.0.0.6/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/1 { + description "ksr-vmx1" + unit 0 { + family inet { + address 10.0.0.3/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/2 { + description "ksr-vmx6" + unit 0 { + family inet { + address 10.0.0.8/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/3 { + description "ksr-vmx6" + unit 0 { + family inet { + address 10.0.0.10/31 + } + family inet6; + family mpls; + family iso; + } + } + + fxp0 { + description "OOB to MGMT Network"; + unit 0 { + family inet { + address 10.39.0.204/20; + } + } + } + lo0 { + unit 0 { + family inet { + address 192.168.0.4/32; + } + family inet6 { + address fec0:0:0:1111::4/128; + } + + family iso { + address 49.0001.0010.0100.1004.00; + } + + } + } +} +routing-options { + router-id 192.168.0.4; + autonomous-system 65000; + forwarding-table { + export LOAD-BALANCE; + } + static { + route 0.0.0.0/0 { + next-hop 10.39.0.1; + no-readvertise; + preference 255; + } + } +} +protocols { + isis { + source-packet-routing { + srgb start-label 16000 index-range 8000; + node-segment { + ipv4-index 404; + ipv6-index 604; + } + } + level 1 disable; + level 2 wide-metrics-only; + interface ge-0/0/0.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/1.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/2.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/3.0 { + point-to-point; + level 2 metric 1000; + } + interface lo0.0 { + passive; + } + } + mpls { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + } + lldp { + interface ge-0/0/0; + interface ge-0/0/1; + interface ge-0/0/2; + interface ge-0/0/3; + } +} +policy-options { + policy-statement LOAD-BALANCE { + then { + load-balance per-packet; + } + } +} diff --git a/files/ksr-config/ksr-vmx5-config.txt b/files/ksr-config/ksr-vmx5-config.txt new file mode 100644 index 0000000..e83a353 --- /dev/null +++ b/files/ksr-config/ksr-vmx5-config.txt @@ -0,0 +1,183 @@ + +version VERSION +system { + host-name ksr-vmx5; + no-redirects; + root-authentication { + encrypted-password "$5$mcE0Hfiq$JfBeC3QSAvnd1tjqlOhlYXDgVrwvd6S4G3oVj5wiMO7"; ## SECRET-DATA + } + login { + user salt { + uid 2001; + class super-user; + authentication { + encrypted-password "$5$yp7ziGTI$F5F.6AUlR8hDK2JIsw5WRrTLex/yTCWH3iSR1Auk293"; ## SECRET-DATA + ssh-rsa "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjxY2hLZ+ju5wdK4GYNhKGgnS8EWLBoEVpo+xQkhDzkTiBx3HGAnmARcVV0B9MqrHZl1omdnirJeygWzVbVY4yPUqGgEcUsTTq9fvK4AjTwtaoB5txAosaOnZq0zewmuZ6EMi6E3RND6A3FGXkf1Il2jg3I8k/dGqdyFI80B7sWy90fk+EqsGMPxVc+l5vAtY2jm84ellxxzBsulxfCSKPH86hZ1GqZ8A1ZBWITu15NjQw0aGssSYGMMTa1T8eFyY4hHWqqdwgOlODg9mZwwP1JdJH79SRoTOjqGGixuAFDGAgH3fNX6u8wTmYya/z7WXH6B2XwiiaZYdcyEbMLPZt"; ## SECRET-DATA + } + } + } + services { + ssh { + root-login allow; + } + netconf { + ssh; + traceoptions { + file nc.txt size 1m world-readable; + flag all; + } + } + } + syslog { + user * { + any emergency; + } + file messages { + any any; + authorization info; + } + file interactive-commands { + interactive-commands any; + } + } +} +chassis { + network-services enhanced-ip; + aggregated-devices { + ethernet { + device-count 10; + } + } +} +interfaces { + ae0 { + description "ksr-vmx7" + unit 0 { + family inet { + address 10.0.0.12/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/0 { + description "ksr-vmx4" + unit 0 { + family inet { + address 10.0.0.7/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/1 { + description "ksr-vmx2" + unit 0 { + family inet { + address 10.0.0.5/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/2 { + description "[ae0]" + gigether-options { + 802.3ad ae0; + } + } + ge-0/0/3 { + description "[ae0]" + gigether-options { + 802.3ad ae0; + } + } + fxp0 { + description "OOB to MGMT Network"; + unit 0 { + family inet { + address 10.39.0.205/20; + } + } + } + lo0 { + unit 0 { + family inet { + address 192.168.0.5/32; + } + family inet6 { + address fec0:0:0:1111::5/128; + } + + family iso { + address 49.0001.0010.0100.1005.00; + } + + } + } +} +routing-options { + router-id 192.168.0.5; + autonomous-system 65000; + forwarding-table { + export LOAD-BALANCE; + } + static { + route 0.0.0.0/0 { + next-hop 10.39.0.1; + no-readvertise; + preference 255; + } + } +} +protocols { + isis { + source-packet-routing { + srgb start-label 16000 index-range 8000; + node-segment { + ipv4-index 405; + ipv6-index 605; + } + } + level 1 disable; + level 2 wide-metrics-only; + interface ae0.0 { + point-to-point; + level 2 metric 500; + } + interface ge-0/0/0.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/1.0 { + point-to-point; + level 2 metric 1000; + } + interface lo0.0 { + passive; + } + } + mpls { + interface ae0.0; + interface ge-0/0/0.0; + interface ge-0/0/1.0; + } + lldp { + interface ae0; + interface ge-0/0/0; + interface ge-0/0/1; + } +} +policy-options { + policy-statement LOAD-BALANCE { + then { + load-balance per-packet; + } + } +} diff --git a/files/ksr-config/ksr-vmx6-config.txt b/files/ksr-config/ksr-vmx6-config.txt new file mode 100644 index 0000000..b75ad12 --- /dev/null +++ b/files/ksr-config/ksr-vmx6-config.txt @@ -0,0 +1,202 @@ + +version VERSION +system { + host-name ksr-vmx6; + no-redirects; + root-authentication { + encrypted-password "$5$mcE0Hfiq$JfBeC3QSAvnd1tjqlOhlYXDgVrwvd6S4G3oVj5wiMO7"; ## SECRET-DATA + } + login { + user salt { + uid 2001; + class super-user; + authentication { + encrypted-password "$5$yp7ziGTI$F5F.6AUlR8hDK2JIsw5WRrTLex/yTCWH3iSR1Auk293"; ## SECRET-DATA + ssh-rsa "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjxY2hLZ+ju5wdK4GYNhKGgnS8EWLBoEVpo+xQkhDzkTiBx3HGAnmARcVV0B9MqrHZl1omdnirJeygWzVbVY4yPUqGgEcUsTTq9fvK4AjTwtaoB5txAosaOnZq0zewmuZ6EMi6E3RND6A3FGXkf1Il2jg3I8k/dGqdyFI80B7sWy90fk+EqsGMPxVc+l5vAtY2jm84ellxxzBsulxfCSKPH86hZ1GqZ8A1ZBWITu15NjQw0aGssSYGMMTa1T8eFyY4hHWqqdwgOlODg9mZwwP1JdJH79SRoTOjqGGixuAFDGAgH3fNX6u8wTmYya/z7WXH6B2XwiiaZYdcyEbMLPZt"; ## SECRET-DATA + } + } + } + services { + ssh { + root-login allow; + } + netconf { + ssh; + traceoptions { + file nc.txt size 1m world-readable; + flag all; + } + } + } + syslog { + user * { + any emergency; + } + file messages { + any any; + authorization info; + } + file interactive-commands { + interactive-commands any; + } + } +} +chassis { + network-services enhanced-ip; +} +interfaces { + ge-0/0/0 { + description "ksr-vmx7" + unit 0 { + family inet { + address 10.0.0.14/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/1 { + description "ksr-vmx8" + unit 0 { + family inet { + address 10.0.0.16/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/2 { + description "ksr-vmx4" + unit 0 { + family inet { + address 10.0.0.9/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/3 { + description "ksr-vmx4" + unit 0 { + family inet { + address 10.0.0.11/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/4 { + description "ksr-vmx3" + unit 0 { + family inet { + address 10.0.0.25/31 + } + family inet6; + family mpls; + family iso; + } + } + + fxp0 { + description "OOB to MGMT Network"; + unit 0 { + family inet { + address 10.39.0.206/20; + } + } + } + lo0 { + unit 0 { + family inet { + address 192.168.0.6/32; + } + family inet6 { + address fec0:0:0:1111::6/128; + } + + family iso { + address 49.0001.0010.0100.1006.00; + } + + } + } +} +routing-options { + router-id 192.168.0.6; + autonomous-system 65000; + forwarding-table { + export LOAD-BALANCE; + } + static { + route 0.0.0.0/0 { + next-hop 10.39.0.1; + no-readvertise; + preference 255; + } + } +} +protocols { + isis { + source-packet-routing { + srgb start-label 16000 index-range 8000; + node-segment { + ipv4-index 406; + ipv6-index 606; + } + } + level 1 disable; + level 2 wide-metrics-only; + interface ge-0/0/0.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/1.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/2.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/3.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/4.0 { + point-to-point; + level 2 metric 1000; + } + interface lo0.0 { + passive; + } + } + mpls { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + interface ge-0/0/2.0; + interface ge-0/0/3.0; + interface ge-0/0/4.0; + } + lldp { + interface ge-0/0/0; + interface ge-0/0/1; + interface ge-0/0/2; + interface ge-0/0/3; + interface ge-0/0/4; + } +} +policy-options { + policy-statement LOAD-BALANCE { + then { + load-balance per-packet; + } + } +} diff --git a/files/ksr-config/ksr-vmx7-config.txt b/files/ksr-config/ksr-vmx7-config.txt new file mode 100644 index 0000000..40b15f9 --- /dev/null +++ b/files/ksr-config/ksr-vmx7-config.txt @@ -0,0 +1,183 @@ + +version VERSION +system { + host-name ksr-vmx7; + no-redirects; + root-authentication { + encrypted-password "$5$mcE0Hfiq$JfBeC3QSAvnd1tjqlOhlYXDgVrwvd6S4G3oVj5wiMO7"; ## SECRET-DATA + } + login { + user salt { + uid 2001; + class super-user; + authentication { + encrypted-password "$5$yp7ziGTI$F5F.6AUlR8hDK2JIsw5WRrTLex/yTCWH3iSR1Auk293"; ## SECRET-DATA + ssh-rsa "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjxY2hLZ+ju5wdK4GYNhKGgnS8EWLBoEVpo+xQkhDzkTiBx3HGAnmARcVV0B9MqrHZl1omdnirJeygWzVbVY4yPUqGgEcUsTTq9fvK4AjTwtaoB5txAosaOnZq0zewmuZ6EMi6E3RND6A3FGXkf1Il2jg3I8k/dGqdyFI80B7sWy90fk+EqsGMPxVc+l5vAtY2jm84ellxxzBsulxfCSKPH86hZ1GqZ8A1ZBWITu15NjQw0aGssSYGMMTa1T8eFyY4hHWqqdwgOlODg9mZwwP1JdJH79SRoTOjqGGixuAFDGAgH3fNX6u8wTmYya/z7WXH6B2XwiiaZYdcyEbMLPZt"; ## SECRET-DATA + } + } + } + services { + ssh { + root-login allow; + } + netconf { + ssh; + traceoptions { + file nc.txt size 1m world-readable; + flag all; + } + } + } + syslog { + user * { + any emergency; + } + file messages { + any any; + authorization info; + } + file interactive-commands { + interactive-commands any; + } + } +} +chassis { + network-services enhanced-ip; + aggregated-devices { + ethernet { + device-count 10; + } + } +} +interfaces { + ae0 { + description "ksr-vmx5" + unit 0 { + family inet { + address 10.0.0.13/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/0 { + description "ksr-vmx6" + unit 0 { + family inet { + address 10.0.0.15/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/1 { + description "ksr-vmx9" + unit 0 { + family inet { + address 10.0.0.18/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/2 { + description "[ae0]" + gigether-options { + 802.3ad ae0; + } + } + ge-0/0/3 { + description "[ae0]" + gigether-options { + 802.3ad ae0; + } + } + fxp0 { + description "OOB to MGMT Network"; + unit 0 { + family inet { + address 10.39.0.207/20; + } + } + } + lo0 { + unit 0 { + family inet { + address 192.168.0.7/32; + } + family inet6 { + address fec0:0:0:1111::7/128; + } + + family iso { + address 49.0001.0010.0100.1007.00; + } + + } + } +} +routing-options { + router-id 192.168.0.7; + autonomous-system 65000; + forwarding-table { + export LOAD-BALANCE; + } + static { + route 0.0.0.0/0 { + next-hop 10.39.0.1; + no-readvertise; + preference 255; + } + } +} +protocols { + isis { + source-packet-routing { + srgb start-label 16000 index-range 8000; + node-segment { + ipv4-index 407; + ipv6-index 607; + } + } + level 1 disable; + level 2 wide-metrics-only; + interface ae0.0 { + point-to-point; + level 2 metric 500; + } + interface ge-0/0/0.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/1.0 { + point-to-point; + level 2 metric 1000; + } + interface lo0.0 { + passive; + } + } + mpls { + interface ae0.0; + interface ge-0/0/0.0; + interface ge-0/0/1.0; + } + lldp { + interface ae0; + interface ge-0/0/0; + interface ge-0/0/1; + } +} +policy-options { + policy-statement LOAD-BALANCE { + then { + load-balance per-packet; + } + } +} diff --git a/files/ksr-config/ksr-vmx8-config.txt b/files/ksr-config/ksr-vmx8-config.txt new file mode 100644 index 0000000..6164474 --- /dev/null +++ b/files/ksr-config/ksr-vmx8-config.txt @@ -0,0 +1,148 @@ + +version VERSION +system { + host-name ksr-vmx8; + no-redirects; + root-authentication { + encrypted-password "$5$mcE0Hfiq$JfBeC3QSAvnd1tjqlOhlYXDgVrwvd6S4G3oVj5wiMO7"; ## SECRET-DATA + } + login { + user salt { + uid 2001; + class super-user; + authentication { + encrypted-password "$5$yp7ziGTI$F5F.6AUlR8hDK2JIsw5WRrTLex/yTCWH3iSR1Auk293"; ## SECRET-DATA + ssh-rsa "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjxY2hLZ+ju5wdK4GYNhKGgnS8EWLBoEVpo+xQkhDzkTiBx3HGAnmARcVV0B9MqrHZl1omdnirJeygWzVbVY4yPUqGgEcUsTTq9fvK4AjTwtaoB5txAosaOnZq0zewmuZ6EMi6E3RND6A3FGXkf1Il2jg3I8k/dGqdyFI80B7sWy90fk+EqsGMPxVc+l5vAtY2jm84ellxxzBsulxfCSKPH86hZ1GqZ8A1ZBWITu15NjQw0aGssSYGMMTa1T8eFyY4hHWqqdwgOlODg9mZwwP1JdJH79SRoTOjqGGixuAFDGAgH3fNX6u8wTmYya/z7WXH6B2XwiiaZYdcyEbMLPZt"; ## SECRET-DATA + } + } + } + services { + ssh { + root-login allow; + } + netconf { + ssh; + traceoptions { + file nc.txt size 1m world-readable; + flag all; + } + } + } + syslog { + user * { + any emergency; + } + file messages { + any any; + authorization info; + } + file interactive-commands { + interactive-commands any; + } + } +} +chassis { + network-services enhanced-ip; +} +interfaces { + ge-0/0/0 { + description "ksr-vmx9" + unit 0 { + family inet { + address 10.0.0.20/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/1 { + description "ksr-vmx6" + unit 0 { + family inet { + address 10.0.0.17/31 + } + family inet6; + family mpls; + family iso; + } + } + + fxp0 { + description "OOB to MGMT Network"; + unit 0 { + family inet { + address 10.39.0.208/20; + } + } + } + lo0 { + unit 0 { + family inet { + address 192.168.0.8/32; + } + family inet6 { + address fec0:0:0:1111::8/128; + } + + family iso { + address 49.0001.0010.0100.1008.00; + } + + } + } +} +routing-options { + router-id 192.168.0.8; + autonomous-system 65000; + forwarding-table { + export LOAD-BALANCE; + } + static { + route 0.0.0.0/0 { + next-hop 10.39.0.1; + no-readvertise; + preference 255; + } + } +} +protocols { + isis { + source-packet-routing { + srgb start-label 16000 index-range 8000; + node-segment { + ipv4-index 408; + ipv6-index 608; + } + } + level 1 disable; + level 2 wide-metrics-only; + interface ge-0/0/0.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/1.0 { + point-to-point; + level 2 metric 1000; + } + interface lo0.0 { + passive; + } + } + mpls { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + } + lldp { + interface ge-0/0/0; + interface ge-0/0/1; + } +} +policy-options { + policy-statement LOAD-BALANCE { + then { + load-balance per-packet; + } + } +} diff --git a/files/ksr-config/ksr-vmx9-config.txt b/files/ksr-config/ksr-vmx9-config.txt new file mode 100644 index 0000000..77fd71a --- /dev/null +++ b/files/ksr-config/ksr-vmx9-config.txt @@ -0,0 +1,148 @@ + +version VERSION +system { + host-name ksr-vmx9; + no-redirects; + root-authentication { + encrypted-password "$5$mcE0Hfiq$JfBeC3QSAvnd1tjqlOhlYXDgVrwvd6S4G3oVj5wiMO7"; ## SECRET-DATA + } + login { + user salt { + uid 2001; + class super-user; + authentication { + encrypted-password "$5$yp7ziGTI$F5F.6AUlR8hDK2JIsw5WRrTLex/yTCWH3iSR1Auk293"; ## SECRET-DATA + ssh-rsa "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjxY2hLZ+ju5wdK4GYNhKGgnS8EWLBoEVpo+xQkhDzkTiBx3HGAnmARcVV0B9MqrHZl1omdnirJeygWzVbVY4yPUqGgEcUsTTq9fvK4AjTwtaoB5txAosaOnZq0zewmuZ6EMi6E3RND6A3FGXkf1Il2jg3I8k/dGqdyFI80B7sWy90fk+EqsGMPxVc+l5vAtY2jm84ellxxzBsulxfCSKPH86hZ1GqZ8A1ZBWITu15NjQw0aGssSYGMMTa1T8eFyY4hHWqqdwgOlODg9mZwwP1JdJH79SRoTOjqGGixuAFDGAgH3fNX6u8wTmYya/z7WXH6B2XwiiaZYdcyEbMLPZt"; ## SECRET-DATA + } + } + } + services { + ssh { + root-login allow; + } + netconf { + ssh; + traceoptions { + file nc.txt size 1m world-readable; + flag all; + } + } + } + syslog { + user * { + any emergency; + } + file messages { + any any; + authorization info; + } + file interactive-commands { + interactive-commands any; + } + } +} +chassis { + network-services enhanced-ip; +} +interfaces { + ge-0/0/0 { + description "ksr-vmx8" + unit 0 { + family inet { + address 10.0.0.21/31 + } + family inet6; + family mpls; + family iso; + } + } + + ge-0/0/1 { + description "ksr-vmx7" + unit 0 { + family inet { + address 10.0.0.19/31 + } + family inet6; + family mpls; + family iso; + } + } + + fxp0 { + description "OOB to MGMT Network"; + unit 0 { + family inet { + address 10.39.0.209/20; + } + } + } + lo0 { + unit 0 { + family inet { + address 192.168.0.9/32; + } + family inet6 { + address fec0:0:0:1111::9/128; + } + + family iso { + address 49.0001.0010.0100.1009.00; + } + + } + } +} +routing-options { + router-id 192.168.0.9; + autonomous-system 65000; + forwarding-table { + export LOAD-BALANCE; + } + static { + route 0.0.0.0/0 { + next-hop 10.39.0.1; + no-readvertise; + preference 255; + } + } +} +protocols { + isis { + source-packet-routing { + srgb start-label 16000 index-range 8000; + node-segment { + ipv4-index 409; + ipv6-index 609; + } + } + level 1 disable; + level 2 wide-metrics-only; + interface ge-0/0/0.0 { + point-to-point; + level 2 metric 1000; + } + interface ge-0/0/1.0 { + point-to-point; + level 2 metric 1000; + } + interface lo0.0 { + passive; + } + } + mpls { + interface ge-0/0/0.0; + interface ge-0/0/1.0; + } + lldp { + interface ge-0/0/0; + interface ge-0/0/1; + } +} +policy-options { + policy-statement LOAD-BALANCE { + then { + load-balance per-packet; + } + } +} diff --git a/files/ksr-tasks/ksr-vmx1_task.yml b/files/ksr-tasks/ksr-vmx1_task.yml new file mode 100644 index 0000000..7d62dfc --- /dev/null +++ b/files/ksr-tasks/ksr-vmx1_task.yml @@ -0,0 +1,32 @@ + - name: Update vmx networking + vmware_guest: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + esxi_hostname: "{{ esxi_hostname }}" + validate_certs: False + name: "ksr-vmx1-vfpc" + folder: / + datastore: datastore2 + networks: + - name: NS-DEV-NAT + - name: "ksr-vmx1-br-int" + - name: "ksr-vmx1-0--ksr-vmx2-0" + device_type: vmxnet3 + - name: "ksr-vmx1-1--ksr-vmx4-1" + device_type: vmxnet3 + - name: "ksr-vmx1-2--ksr-vmx3-0" + device_type: vmxnet3 + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + hardware: + num_cpus: 3 + memory_mb: 8192 + state: present + delegate_to: localhost diff --git a/files/ksr-tasks/ksr-vmx2_task.yml b/files/ksr-tasks/ksr-vmx2_task.yml new file mode 100644 index 0000000..ce98cbc --- /dev/null +++ b/files/ksr-tasks/ksr-vmx2_task.yml @@ -0,0 +1,32 @@ + - name: Update vmx networking + vmware_guest: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + esxi_hostname: "{{ esxi_hostname }}" + validate_certs: False + name: "ksr-vmx2-vfpc" + folder: / + datastore: datastore2 + networks: + - name: NS-DEV-NAT + - name: "ksr-vmx2-br-int" + - name: "ksr-vmx1-0--ksr-vmx2-0" + device_type: vmxnet3 + - name: "ksr-vmx2-1--ksr-vmx5-1" + device_type: vmxnet3 + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + hardware: + num_cpus: 3 + memory_mb: 8192 + state: present + delegate_to: localhost diff --git a/files/ksr-tasks/ksr-vmx3_task.yml b/files/ksr-tasks/ksr-vmx3_task.yml new file mode 100644 index 0000000..2f2e055 --- /dev/null +++ b/files/ksr-tasks/ksr-vmx3_task.yml @@ -0,0 +1,32 @@ + - name: Update vmx networking + vmware_guest: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + esxi_hostname: "{{ esxi_hostname }}" + validate_certs: False + name: "ksr-vmx3-vfpc" + folder: / + datastore: datastore2 + networks: + - name: NS-DEV-NAT + - name: "ksr-vmx3-br-int" + - name: "ksr-vmx1-2--ksr-vmx3-0" + device_type: vmxnet3 + - name: "ksr-vmx3-1--ksr-vmx6-4" + device_type: vmxnet3 + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + hardware: + num_cpus: 3 + memory_mb: 8192 + state: present + delegate_to: localhost diff --git a/files/ksr-tasks/ksr-vmx4_task.yml b/files/ksr-tasks/ksr-vmx4_task.yml new file mode 100644 index 0000000..375c554 --- /dev/null +++ b/files/ksr-tasks/ksr-vmx4_task.yml @@ -0,0 +1,32 @@ + - name: Update vmx networking + vmware_guest: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + esxi_hostname: "{{ esxi_hostname }}" + validate_certs: False + name: "ksr-vmx4-vfpc" + folder: / + datastore: datastore2 + networks: + - name: NS-DEV-NAT + - name: "ksr-vmx4-br-int" + - name: "ksr-vmx4-0--ksr-vmx5-0" + device_type: vmxnet3 + - name: "ksr-vmx1-1--ksr-vmx4-1" + device_type: vmxnet3 + - name: "ksr-vmx4-2--ksr-vmx6-2" + device_type: vmxnet3 + - name: "ksr-vmx4-3--ksr-vmx6-3" + device_type: vmxnet3 + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + hardware: + num_cpus: 3 + memory_mb: 8192 + state: present + delegate_to: localhost diff --git a/files/ksr-tasks/ksr-vmx5_task.yml b/files/ksr-tasks/ksr-vmx5_task.yml new file mode 100644 index 0000000..8792dcc --- /dev/null +++ b/files/ksr-tasks/ksr-vmx5_task.yml @@ -0,0 +1,32 @@ + - name: Update vmx networking + vmware_guest: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + esxi_hostname: "{{ esxi_hostname }}" + validate_certs: False + name: "ksr-vmx5-vfpc" + folder: / + datastore: datastore2 + networks: + - name: NS-DEV-NAT + - name: "ksr-vmx5-br-int" + - name: "ksr-vmx4-0--ksr-vmx5-0" + device_type: vmxnet3 + - name: "ksr-vmx2-1--ksr-vmx5-1" + device_type: vmxnet3 + - name: "ksr-vmx5-2--ksr-vmx7-2" + device_type: vmxnet3 + - name: "ksr-vmx5-3--ksr-vmx7-3" + device_type: vmxnet3 + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + hardware: + num_cpus: 3 + memory_mb: 8192 + state: present + delegate_to: localhost diff --git a/files/ksr-tasks/ksr-vmx6_task.yml b/files/ksr-tasks/ksr-vmx6_task.yml new file mode 100644 index 0000000..fd480f3 --- /dev/null +++ b/files/ksr-tasks/ksr-vmx6_task.yml @@ -0,0 +1,32 @@ + - name: Update vmx networking + vmware_guest: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + esxi_hostname: "{{ esxi_hostname }}" + validate_certs: False + name: "ksr-vmx6-vfpc" + folder: / + datastore: datastore2 + networks: + - name: NS-DEV-NAT + - name: "ksr-vmx6-br-int" + - name: "ksr-vmx6-0--ksr-vmx7-0" + device_type: vmxnet3 + - name: "ksr-vmx6-1--ksr-vmx8-1" + device_type: vmxnet3 + - name: "ksr-vmx4-2--ksr-vmx6-2" + device_type: vmxnet3 + - name: "ksr-vmx4-3--ksr-vmx6-3" + device_type: vmxnet3 + - name: "ksr-vmx3-1--ksr-vmx6-4" + device_type: vmxnet3 + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + hardware: + num_cpus: 3 + memory_mb: 8192 + state: present + delegate_to: localhost diff --git a/files/ksr-tasks/ksr-vmx7_task.yml b/files/ksr-tasks/ksr-vmx7_task.yml new file mode 100644 index 0000000..94dc362 --- /dev/null +++ b/files/ksr-tasks/ksr-vmx7_task.yml @@ -0,0 +1,32 @@ + - name: Update vmx networking + vmware_guest: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + esxi_hostname: "{{ esxi_hostname }}" + validate_certs: False + name: "ksr-vmx7-vfpc" + folder: / + datastore: datastore2 + networks: + - name: NS-DEV-NAT + - name: "ksr-vmx7-br-int" + - name: "ksr-vmx6-0--ksr-vmx7-0" + device_type: vmxnet3 + - name: "ksr-vmx7-1--ksr-vmx9-1" + device_type: vmxnet3 + - name: "ksr-vmx5-2--ksr-vmx7-2" + device_type: vmxnet3 + - name: "ksr-vmx5-3--ksr-vmx7-3" + device_type: vmxnet3 + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + hardware: + num_cpus: 3 + memory_mb: 8192 + state: present + delegate_to: localhost diff --git a/files/ksr-tasks/ksr-vmx8_task.yml b/files/ksr-tasks/ksr-vmx8_task.yml new file mode 100644 index 0000000..2cec6cd --- /dev/null +++ b/files/ksr-tasks/ksr-vmx8_task.yml @@ -0,0 +1,32 @@ + - name: Update vmx networking + vmware_guest: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + esxi_hostname: "{{ esxi_hostname }}" + validate_certs: False + name: "ksr-vmx8-vfpc" + folder: / + datastore: datastore2 + networks: + - name: NS-DEV-NAT + - name: "ksr-vmx8-br-int" + - name: "ksr-vmx8-0--ksr-vmx9-0" + device_type: vmxnet3 + - name: "ksr-vmx6-1--ksr-vmx8-1" + device_type: vmxnet3 + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + hardware: + num_cpus: 3 + memory_mb: 8192 + state: present + delegate_to: localhost diff --git a/files/ksr-tasks/ksr-vmx9_task.yml b/files/ksr-tasks/ksr-vmx9_task.yml new file mode 100644 index 0000000..157b8e4 --- /dev/null +++ b/files/ksr-tasks/ksr-vmx9_task.yml @@ -0,0 +1,32 @@ + - name: Update vmx networking + vmware_guest: + hostname: "{{ esxi_hostname }}" + username: "{{ esxi_username }}" + password: "{{ esxi_password }}" + esxi_hostname: "{{ esxi_hostname }}" + validate_certs: False + name: "ksr-vmx9-vfpc" + folder: / + datastore: datastore2 + networks: + - name: NS-DEV-NAT + - name: "ksr-vmx9-br-int" + - name: "ksr-vmx8-0--ksr-vmx9-0" + device_type: vmxnet3 + - name: "ksr-vmx7-1--ksr-vmx9-1" + device_type: vmxnet3 + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + - name: "DUMMY" + start_connected: False + hardware: + num_cpus: 3 + memory_mb: 8192 + state: present + delegate_to: localhost diff --git a/files/ksr_nodes.yml b/files/ksr_nodes.yml new file mode 100644 index 0000000..f7c949a --- /dev/null +++ b/files/ksr_nodes.yml @@ -0,0 +1,168 @@ +# +# Nodes in the network +# + + +--- + +common: + bgp_asn: 65000 + +nodes: + + ksr-vmx1: + mgmt: 10.39.0.201 + rid: 192.168.0.1 + rid6: fec0:0:0:1111::1 + sid: 401 + sid6: 601 + iso: 49.0001.0010.0100.1001.00 + lags: + switches: + - ksr-vmx1-0--ksr-vmx2-0 + - ksr-vmx1-1--ksr-vmx4-1 + - ksr-vmx1-2--ksr-vmx3-0 + links: + ge-0/0/0.0: { ip: 10.0.0.0, remote: ksr-vmx2, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/1.0: { ip: 10.0.0.2, remote: ksr-vmx4, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/2.0: { ip: 10.0.0.22, remote: ksr-vmx3, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + + ksr-vmx2: + mgmt: 10.39.0.202 + rid: 192.168.0.2 + rid6: fec0:0:0:1111::2 + sid: 402 + sid6: 602 + iso: 49.0001.0010.0100.1002.00 + lags: + switches: + - ksr-vmx1-0--ksr-vmx2-0 + - ksr-vmx2-1--ksr-vmx5-1 + links: + ge-0/0/0.0: { ip: 10.0.0.1, remote: ksr-vmx1, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/1.0: { ip: 10.0.0.4, remote: ksr-vmx5, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + + ksr-vmx3: + mgmt: 10.39.0.203 + rid: 192.168.0.3 + rid6: fec0:0:0:1111::3 + sid: 403 + sid6: 603 + iso: 49.0001.0010.0100.1003.00 + lags: + switches: + - ksr-vmx1-2--ksr-vmx3-0 + - ksr-vmx3-1--ksr-vmx6-4 + links: + ge-0/0/0.0: { ip: 10.0.0.23, remote: ksr-vmx1, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/1.0: { ip: 10.0.0.24, remote: ksr-vmx6, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + + ksr-vmx4: + mgmt: 10.39.0.204 + rid: 192.168.0.4 + rid6: fec0:0:0:1111::4 + sid: 404 + sid6: 604 + iso: 49.0001.0010.0100.1004.00 + lags: + switches: + - ksr-vmx1-1--ksr-vmx4-1 + - ksr-vmx4-0--ksr-vmx5-0 + - ksr-vmx4-2--ksr-vmx6-2 + - ksr-vmx4-3--ksr-vmx6-3 + links: + ge-0/0/1.0: { ip: 10.0.0.3, remote: ksr-vmx1, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/0.0: { ip: 10.0.0.6, remote: ksr-vmx5, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/2.0: { ip: 10.0.0.8, remote: ksr-vmx6, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/3.0: { ip: 10.0.0.10, remote: ksr-vmx6, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + + ksr-vmx5: + mgmt: 10.39.0.205 + rid: 192.168.0.5 + rid6: fec0:0:0:1111::5 + sid: 405 + sid6: 605 + iso: 49.0001.0010.0100.1005.00 + lags: + ge-0/0/2: ae0 + ge-0/0/3: ae0 + switches: + - ksr-vmx2-1--ksr-vmx5-1 + - ksr-vmx4-0--ksr-vmx5-0 + - ksr-vmx5-2--ksr-vmx7-2 + - ksr-vmx5-3--ksr-vmx7-3 + links: + ge-0/0/1.0: { ip: 10.0.0.5, remote: ksr-vmx2, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/0.0: { ip: 10.0.0.7, remote: ksr-vmx4, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ae0.0: { ip: 10.0.0.12, remote: ksr-vmx7, mask: 31, cost: 500, vlan: 0, mpls: True, iso: True} + + ksr-vmx6: + mgmt: 10.39.0.206 + rid: 192.168.0.6 + rid6: fec0:0:0:1111::6 + sid: 406 + sid6: 606 + iso: 49.0001.0010.0100.1006.00 + lags: + switches: + - ksr-vmx3-1--ksr-vmx6-4 + - ksr-vmx4-2--ksr-vmx6-2 + - ksr-vmx4-3--ksr-vmx6-3 + - ksr-vmx6-0--ksr-vmx7-0 + - ksr-vmx6-1--ksr-vmx8-1 + links: + ge-0/0/4.0: { ip: 10.0.0.25, remote: ksr-vmx3, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/2.0: { ip: 10.0.0.9, remote: ksr-vmx4, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/3.0: { ip: 10.0.0.11, remote: ksr-vmx4, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/0.0: { ip: 10.0.0.14, remote: ksr-vmx7, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/1.0: { ip: 10.0.0.16, remote: ksr-vmx8, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + + ksr-vmx7: + mgmt: 10.39.0.207 + rid: 192.168.0.7 + rid6: fec0:0:0:1111::7 + sid: 407 + sid6: 607 + iso: 49.0001.0010.0100.1007.00 + lags: + ge-0/0/2: ae0 + ge-0/0/3: ae0 + switches: + - ksr-vmx6-0--ksr-vmx7-0 + - ksr-vmx7-1--ksr-vmx9-1 + - ksr-vmx5-2--ksr-vmx7-2 + - ksr-vmx5-3--ksr-vmx7-3 + links: + ae0.0: { ip: 10.0.0.13, remote: ksr-vmx5, mask: 31, cost: 500, vlan: 0, mpls: True, iso: True} + ge-0/0/0.0: { ip: 10.0.0.15, remote: ksr-vmx6, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/1.0: { ip: 10.0.0.18, remote: ksr-vmx9, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + + ksr-vmx8: + mgmt: 10.39.0.208 + rid: 192.168.0.8 + rid6: fec0:0:0:1111::8 + sid: 408 + sid6: 608 + iso: 49.0001.0010.0100.1008.00 + lags: + switches: + - ksr-vmx6-1--ksr-vmx8-1 + - ksr-vmx8-0--ksr-vmx9-0 + links: + ge-0/0/1.0: { ip: 10.0.0.17, remote: ksr-vmx6, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/0.0: { ip: 10.0.0.20, remote: ksr-vmx9, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + + ksr-vmx9: + mgmt: 10.39.0.209 + rid: 192.168.0.9 + rid6: fec0:0:0:1111::9 + sid: 409 + sid6: 609 + iso: 49.0001.0010.0100.1009.00 + lags: + switches: + - ksr-vmx7-1--ksr-vmx9-1 + - ksr-vmx8-0--ksr-vmx9-0 + links: + ge-0/0/1.0: { ip: 10.0.0.19, remote: ksr-vmx7, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} + ge-0/0/0.0: { ip: 10.0.0.21, remote: ksr-vmx8, mask: 31, cost: 1000, vlan: 0, mpls: True, iso: True} diff --git a/group_vars/ksr b/group_vars/ksr index 060a012..25f99a8 100644 --- a/group_vars/ksr +++ b/group_vars/ksr @@ -1,6 +1,7 @@ --- -ansible_connection: local +#ansible_connection: local model: core-model-ksr.yml -config_dir: files/srlab-config -tasks_dir: files/srlab-tasks +config_dir: files/ksr-config +tasks_dir: files/ksr-tasks dryrun: True +ova_ver: 19.2R1.8 diff --git a/hosts.ini b/hosts.ini index faf5718..709d8b2 100644 --- a/hosts.ini +++ b/hosts.ini @@ -68,4 +68,4 @@ ansible-veos66 ansible_host=10.39.0.156 veos [dhcp] -dhcpd ansible_host=10.39.0.2 +dhcpd ansible_host=10.39.0.255 diff --git a/lab-config.yml b/lab-config.yml index 50574d5..4fb6768 100644 --- a/lab-config.yml +++ b/lab-config.yml @@ -1,22 +1,23 @@ --- - name: Create per node data model gather_facts: no + hosts: "{{ variable_hosts }}" tags: [ model ] vars_files: - "vars_files/{{model|default('core-model.yml')}}" tasks: - name: Create per-node data model from fabric data model - template: src=core-to-nodes.j2 dest=files/nodes.yml + template: src=core-to-nodes.j2 dest="files/{{ variable_hosts }}_nodes.yml" delegate_to: localhost run_once: True - name: Generate Configuration for all routers gather_facts: no - hosts: srlab + hosts: "{{ variable_hosts }}" tags: [ template ] vars_files: - - "files/nodes.yml" + - "files/{{ variable_hosts }}_nodes.yml" tasks: # - name: Gather facts (eos) # eos_facts: @@ -37,10 +38,10 @@ - name: push the configuration to the devices gather_facts: no - hosts: srlab + hosts: "{{ variable_hosts }}" tags: [ deploy ] vars_files: - - "files/nodes.yml" + - "files/{{ variable_hosts }}_nodes.yml" tasks: - name: Load config (junos) junos_config: diff --git a/lab-deploy.yml b/lab-deploy.yml index ffb0a45..5692b5b 100644 --- a/lab-deploy.yml +++ b/lab-deploy.yml @@ -1,6 +1,6 @@ --- - name: Create node bridge vswitches - hosts: srlab + hosts: "{{ variable_hosts }}" tags: bridge_switches gather_facts: no vars_files: group_vars/vmware @@ -32,12 +32,13 @@ delegate_to: localhost - name: Create internode vswitches - hosts: srlab + hosts: "{{ variable_hosts }}" tags: node_switches gather_facts: no - vars_files: group_vars/vmware + vars_files: + - group_vars/vmware + - "files/{{ variable_hosts }}_nodes.yml" tasks: - - include_vars: "files/nodes.yml" - name: Create the vswitch vmware_vswitch: hostname: "{{ esxi_hostname }}" @@ -67,7 +68,7 @@ delegate_to: localhost - name: Deploy an ova - hosts: srlab + hosts: "{{ variable_hosts }}" tags: deploy_ova gather_facts: no vars_files: group_vars/vmware @@ -81,7 +82,7 @@ allow_duplicates: no name: "{{ inventory_hostname }}-vcp" datastore: "host 2 - datastore 2" - ova: files/ova/vcp_17.4R2.4.ova + ova: "files/ova/vcp_{{ ova_ver }}.ova" disk_provisioning: thin power_on: no networks: @@ -97,7 +98,7 @@ allow_duplicates: no name: "{{ inventory_hostname }}-vfpc" datastore: "host 2 - datastore 2" - ova: files/ova/vfpc_17.4R2.4.ova + ova: "files/ova/vfpc_{{ ova_ver }}.ova" disk_provisioning: thin power_on: no networks: @@ -111,19 +112,21 @@ gather_facts: no tasks: - name: Sort node switches - command: "{{ ansible_python_interpreter }} {{ playbook_dir }}/files/switch_sort.py {{ playbook_dir }}/files/nodes.yml" + command: "{{ ansible_python_interpreter }} {{ playbook_dir }}/files/switch_sort.py {{ playbook_dir }}/files/{{ variable_hosts }}_nodes.yml" args: chdir: "{{ playbook_dir }}" - name: Generate update network task - hosts: srlab + hosts: "{{ variable_hosts }}" tags: generate_tasks gather_facts: no + vars_files: + - "files/{{ variable_hosts }}_nodes.yml" tasks: - - include_vars: "files/nodes.yml" - name: Create tasks dir file: path="{{ tasks_dir }}" state=directory run_once: True + delegate_to: localhost - name: Generate update network task template: src: "task_update_network.j2" @@ -131,7 +134,7 @@ delegate_to: localhost - name: Update vmx networking - hosts: srlab + hosts: "{{ variable_hosts }}" tags: update_network gather_facts: no vars_files: group_vars/vmware diff --git a/lab-poweron.yml b/lab-poweron.yml index 1d55c6a..e09fa56 100644 --- a/lab-poweron.yml +++ b/lab-poweron.yml @@ -1,6 +1,6 @@ --- - name: Power on srlab - hosts: srlab + hosts: "{{ variable_hosts }}" tags: poweron gather_facts: no vars_files: group_vars/vmware diff --git a/lab-reboot.yml b/lab-reboot.yml new file mode 100644 index 0000000..b05ad23 --- /dev/null +++ b/lab-reboot.yml @@ -0,0 +1,10 @@ +--- +- name: Reboot nodes + gather_facts: no + hosts: "{{ variable_hosts }}" + tags: [ reboot ] + tasks: + - name: Reboot routing engines (junos) + junos_command: + commands: "request system reboot" + when: ansible_network_os == 'junos' diff --git a/lab-snapshot.yml b/lab-snapshot.yml index 27f9ba4..4c3da7c 100644 --- a/lab-snapshot.yml +++ b/lab-snapshot.yml @@ -1,6 +1,6 @@ --- - name: Snapshot lab - hosts: srlab + hosts: "{{ variable_hosts }}" tags: snapshot gather_facts: no vars_files: group_vars/vmware diff --git a/lab-teardown.yml b/lab-teardown.yml index 576b711..8b4f64e 100644 --- a/lab-teardown.yml +++ b/lab-teardown.yml @@ -1,11 +1,11 @@ --- - name: Delete routers - hosts: srlab - tags: delete + hosts: "{{ variable_hosts }}" + tags: delete_nodes gather_facts: no vars_files: group_vars/vmware tasks: - - name: power on vcp and vfpc + - name: delete vcp and vfpc vmware_guest: hostname: "{{ vcenter_hostname }}" username: "{{ vcenter_username }}" @@ -23,12 +23,12 @@ delegate_to: localhost - name: Delete internode vswitches - hosts: srlab - tags: delet_node_switches + hosts: "{{ variable_hosts }}" + tags: delete_node_switches gather_facts: no vars_files: group_vars/vmware tasks: - - include_vars: "files/nodes.yml" + - include_vars: "files/{{ variable_hosts }}_nodes.yml" - name: Delete the vswitch vmware_vswitch: hostname: "{{ esxi_hostname }}" @@ -42,7 +42,7 @@ delegate_to: localhost - name: Delete node bridge vswitches - hosts: srlab + hosts: "{{ variable_hosts }}" tags: delete_bridge_switches gather_facts: no vars_files: group_vars/vmware diff --git a/lab-tilfa.yml b/lab-tilfa.yml index 2968ebd..190ce0a 100644 --- a/lab-tilfa.yml +++ b/lab-tilfa.yml @@ -1,6 +1,6 @@ --- - name: Push TI-LFA SR configs - hosts: srlab + hosts: "{{ variable_hosts }}" roles: - juniper.junos gather_facts: no diff --git a/templates/junos.j2 b/templates/junos.j2 index 92dfed1..ffcc69c 100644 --- a/templates/junos.j2 +++ b/templates/junos.j2 @@ -144,6 +144,9 @@ interfaces { routing-options { router-id {{ node.rid }}; autonomous-system {{ common.bgp_asn }}; + forwarding-table { + export LOAD-BALANCE; + } static { route 0.0.0.0/0 { next-hop 10.39.0.1; @@ -229,9 +232,7 @@ protocols { {% if node.iso is defined %} isis { source-packet-routing { -{% if node.lags %} - srgb start-label 800000 index-range 100000; -{% endif %} + srgb start-label 16000 index-range 8000; node-segment { ipv4-index {{ node.sid }}; {% if node.sid6 is defined %} @@ -300,8 +301,14 @@ protocols { ### Default BGP Export policy ##### ************************************************** #} -{% if node.bgp.ibgp.rr is not defined %} policy-options { + policy-statement LOAD-BALANCE { + then { + load-balance per-packet; + } + } +{% if node.bgp is defined %} +{% if node.bgp.ibgp.rr is not defined %} policy-statement __Ansible_Core_export { term ebgp { from { @@ -314,5 +321,6 @@ policy-options { } } } -} {% endif %} +{% endif %} +} diff --git a/templates/vmx_base.conf.j2 b/templates/vmx_base.conf.j2 index 39682a0..bef32c4 100644 --- a/templates/vmx_base.conf.j2 +++ b/templates/vmx_base.conf.j2 @@ -8,6 +8,7 @@ system { uid 2001; class super-user; authentication { + encrypted-password "$6$tmYcXGxa$ih9KCU7jQzVLguKdhmJ/fOMs4riKRa09lkSDa13POflyUwk3YCDsq2DvoLN8SPMYC3Ce1n9/GSE8JP9kH8HzE0"; ## SECRET-DATA ssh-rsa "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjxY2hLZ+ju5wdK4GYNhKGgnS8EWLBoEVpo+xQkhDzkTiBx3HGAnmARcVV0B9MqrHZl1omdnirJeygWzVbVY4yPUqGgEcUsTTq9fvK4AjTwtaoB5txAosaOnZq0zewmuZ6EMi6E3RND6A3FGXkf1Il2jg3I8k/dGqdyFI80B7sWy90fk+EqsGMPxVc+l5vAtY2jm84ellxxzBsulxfCSKPH86hZ1GqZ8A1ZBWITu15NjQw0aGssSYGMMTa1T8eFyY4hHWqqdwgOlODg9mZwwP1JdJH79SRoTOjqGGixuAFDGAgH3fNX6u8wTmYya/z7WXH6B2XwiiaZYdcyEbMLPZt"; ## SECRET-DATA } } diff --git a/vars_files/core-model-ksr.yml b/vars_files/core-model-ksr.yml index 8398aa3..a837006 100644 --- a/vars_files/core-model-ksr.yml +++ b/vars_files/core-model-ksr.yml @@ -4,72 +4,72 @@ common: bgp_asn: 65000 nodes: - - name: srlab-vmx1 - mgmt: 10.39.0.101 + - name: ksr-vmx1 + mgmt: 10.39.0.201 rid: 192.168.0.1 rid6: fec0:0:0:1111::1 sid: 401 sid6: 601 iso: 49.0001.0010.0100.1001.00 - - name: srlab-vmx2 - mgmt: 10.39.0.102 + - name: ksr-vmx2 + mgmt: 10.39.0.202 rid: 192.168.0.2 rid6: fec0:0:0:1111::2 sid: 402 sid6: 602 iso: 49.0001.0010.0100.1002.00 - - name: srlab-vmx3 - mgmt: 10.39.0.103 + - name: ksr-vmx3 + mgmt: 10.39.0.203 rid: 192.168.0.3 rid6: fec0:0:0:1111::3 sid: 403 sid6: 603 iso: 49.0001.0010.0100.1003.00 - - name: srlab-vmx4 - mgmt: 10.39.0.104 + - name: ksr-vmx4 + mgmt: 10.39.0.204 rid: 192.168.0.4 rid6: fec0:0:0:1111::4 sid: 404 sid6: 604 iso: 49.0001.0010.0100.1004.00 - - name: srlab-vmx5 - mgmt: 10.39.0.105 + - name: ksr-vmx5 + mgmt: 10.39.0.205 rid: 192.168.0.5 rid6: fec0:0:0:1111::5 sid: 405 sid6: 605 iso: 49.0001.0010.0100.1005.00 - - name: srlab-vmx6 - mgmt: 10.39.0.106 + - name: ksr-vmx6 + mgmt: 10.39.0.206 rid: 192.168.0.6 rid6: fec0:0:0:1111::6 sid: 406 sid6: 606 iso: 49.0001.0010.0100.1006.00 - - name: srlab-vmx7 - mgmt: 10.39.0.107 + - name: ksr-vmx7 + mgmt: 10.39.0.207 rid: 192.168.0.7 rid6: fec0:0:0:1111::7 sid: 407 sid6: 607 iso: 49.0001.0010.0100.1007.00 - - name: srlab-vmx8 - mgmt: 10.39.0.108 + - name: ksr-vmx8 + mgmt: 10.39.0.208 rid: 192.168.0.8 rid6: fec0:0:0:1111::8 sid: 408 sid6: 608 iso: 49.0001.0010.0100.1008.00 - - name: srlab-vmx9 - mgmt: 10.39.0.109 + - name: ksr-vmx9 + mgmt: 10.39.0.209 rid: 192.168.0.9 rid6: fec0:0:0:1111::9 sid: 409 @@ -77,82 +77,82 @@ nodes: iso: 49.0001.0010.0100.1009.00 lags: - - node: srlab-vmx5 + - node: ksr-vmx5 intf: ae0 ports: [ge-0/0/2, ge-0/0/3] - - node: srlab-vmx7 + - node: ksr-vmx7 intf: ae0 ports: [ge-0/0/2, ge-0/0/3] # using the following for the lag ports. can't extract correct information # from the links ae interfaces for lags switches: - - {left: srlab-vmx5, left_port: ge-0/0/2, - right: srlab-vmx7, right_port: ge-0/0/2 } - - {left: srlab-vmx5, left_port: ge-0/0/3, - right: srlab-vmx7, right_port: ge-0/0/3 } + - {left: ksr-vmx5, left_port: ge-0/0/2, + right: ksr-vmx7, right_port: ge-0/0/2 } + - {left: ksr-vmx5, left_port: ge-0/0/3, + right: ksr-vmx7, right_port: ge-0/0/3 } links: - - {left: srlab-vmx1, left_port: ge-0/0/0, left_ip: 10.0.0.0, - right: srlab-vmx2, right_port: ge-0/0/0, right_ip: 10.0.0.1, + - {left: ksr-vmx1, left_port: ge-0/0/0, left_ip: 10.0.0.0, + right: ksr-vmx2, right_port: ge-0/0/0, right_ip: 10.0.0.1, mask: 31, cost: 1000, mpls: True, iso: True } - - {left: srlab-vmx1, left_port: ge-0/0/1, left_ip: 10.0.0.2, - right: srlab-vmx4, right_port: ge-0/0/1, right_ip: 10.0.0.3, + - {left: ksr-vmx1, left_port: ge-0/0/1, left_ip: 10.0.0.2, + right: ksr-vmx4, right_port: ge-0/0/1, right_ip: 10.0.0.3, mask: 31, cost: 1000, mpls: True, iso: True } - - {left: srlab-vmx1, left_port: ge-0/0/2, left_ip: 10.0.0.22, - right: srlab-vmx3, right_port: ge-0/0/0, right_ip: 10.0.0.23, + - {left: ksr-vmx1, left_port: ge-0/0/2, left_ip: 10.0.0.22, + right: ksr-vmx3, right_port: ge-0/0/0, right_ip: 10.0.0.23, mask: 31, cost: 1000, mpls: True, iso: True } - - {left: srlab-vmx2, left_port: ge-0/0/1, left_ip: 10.0.0.4, - right: srlab-vmx5, right_port: ge-0/0/1, right_ip: 10.0.0.5, + - {left: ksr-vmx2, left_port: ge-0/0/1, left_ip: 10.0.0.4, + right: ksr-vmx5, right_port: ge-0/0/1, right_ip: 10.0.0.5, mask: 31, cost: 1000, mpls: True, iso: True } - - {left: srlab-vmx3, left_port: ge-0/0/1, left_ip: 10.0.0.24, - right: srlab-vmx6, right_port: ge-0/0/4, right_ip: 10.0.0.25, + - {left: ksr-vmx3, left_port: ge-0/0/1, left_ip: 10.0.0.24, + right: ksr-vmx6, right_port: ge-0/0/4, right_ip: 10.0.0.25, mask: 31, cost: 1000, mpls: True, iso: True } - - {left: srlab-vmx4, left_port: ge-0/0/0, left_ip: 10.0.0.6, - right: srlab-vmx5, right_port: ge-0/0/0, right_ip: 10.0.0.7, + - {left: ksr-vmx4, left_port: ge-0/0/0, left_ip: 10.0.0.6, + right: ksr-vmx5, right_port: ge-0/0/0, right_ip: 10.0.0.7, mask: 31, cost: 1000, mpls: True, iso: True } - - {left: srlab-vmx4, left_port: ge-0/0/2, left_ip: 10.0.0.8, - right: srlab-vmx6, right_port: ge-0/0/2, right_ip: 10.0.0.9, + - {left: ksr-vmx4, left_port: ge-0/0/2, left_ip: 10.0.0.8, + right: ksr-vmx6, right_port: ge-0/0/2, right_ip: 10.0.0.9, mask: 31, cost: 1000, mpls: True, iso: True } - - {left: srlab-vmx4, left_port: ge-0/0/3, left_ip: 10.0.0.10, - right: srlab-vmx6, right_port: ge-0/0/3, right_ip: 10.0.0.11, + - {left: ksr-vmx4, left_port: ge-0/0/3, left_ip: 10.0.0.10, + right: ksr-vmx6, right_port: ge-0/0/3, right_ip: 10.0.0.11, mask: 31, cost: 1000, mpls: True, iso: True } - - {left: srlab-vmx5, left_port: ae0, left_ip: 10.0.0.12, - right: srlab-vmx7, right_port: ae0, right_ip: 10.0.0.13, + - {left: ksr-vmx5, left_port: ae0, left_ip: 10.0.0.12, + right: ksr-vmx7, right_port: ae0, right_ip: 10.0.0.13, mask: 31, cost: 500, mpls: True, iso: True } - - {left: srlab-vmx6, left_port: ge-0/0/0, left_ip: 10.0.0.14, - right: srlab-vmx7, right_port: ge-0/0/0, right_ip: 10.0.0.15, + - {left: ksr-vmx6, left_port: ge-0/0/0, left_ip: 10.0.0.14, + right: ksr-vmx7, right_port: ge-0/0/0, right_ip: 10.0.0.15, mask: 31, cost: 1000, mpls: True, iso: True } - - {left: srlab-vmx6, left_port: ge-0/0/1, left_ip: 10.0.0.16, - right: srlab-vmx8, right_port: ge-0/0/1, right_ip: 10.0.0.17, + - {left: ksr-vmx6, left_port: ge-0/0/1, left_ip: 10.0.0.16, + right: ksr-vmx8, right_port: ge-0/0/1, right_ip: 10.0.0.17, mask: 31, cost: 1000, mpls: True, iso: True } - - {left: srlab-vmx7, left_port: ge-0/0/1, left_ip: 10.0.0.18, - right: srlab-vmx9, right_port: ge-0/0/1, right_ip: 10.0.0.19, + - {left: ksr-vmx7, left_port: ge-0/0/1, left_ip: 10.0.0.18, + right: ksr-vmx9, right_port: ge-0/0/1, right_ip: 10.0.0.19, mask: 31, cost: 1000, mpls: True, iso: True } - - {left: srlab-vmx8, left_port: ge-0/0/0, left_ip: 10.0.0.20, - right: srlab-vmx9, right_port: ge-0/0/0, right_ip: 10.0.0.21, + - {left: ksr-vmx8, left_port: ge-0/0/0, left_ip: 10.0.0.20, + right: ksr-vmx9, right_port: ge-0/0/0, right_ip: 10.0.0.21, mask: 31, cost: 1000, mpls: True, iso: True } -bgp: - rr: [192.168.0.4, 192.168.0.7] - clients: [192.168.0.1, 192.168.0.2, 192.168.0.8, 192.168.0.9] - af: - - inet - - inet6 - - inet-vpn +#bgp: +# rr: [192.168.0.4, 192.168.0.7] +# clients: [192.168.0.1, 192.168.0.2, 192.168.0.8, 192.168.0.9] +# af: +# - inet +# - inet6 +# - inet-vpn #isis: # network: p2p