Browse Source

initial import of barebones

master
Marek Isalski 3 years ago
commit
537bd42f78
2 changed files with 234 additions and 0 deletions
  1. +218
    -0
      junos-v21-core-router.j2
  2. +16
    -0
      macros.j2

+ 218
- 0
junos-v21-core-router.j2

@ -0,0 +1,218 @@
/* generated by bgprtrmgr using junos-v21-core-router.j2 at XXX */
{% import "macros.j2" as macros %}
version 21.3R1.9;
groups {
{%- set re_groups = [] %}
{%- set lag_interfaces = [] %}
{%- for interface, subinterfaces in device|get_interfaces|subinterfaces(".") %}
{%- if interface.type.value == 'lag' %}{%- do lag_interfaces.append(interface) %}{%- endif %}
{%- if '@' in interface.name %}
{%- set re = interface.name.split("@")[1] %}
{%- do re_groups.append( re ) %}
{%- set interface_name = interface.name.split("@")[0] %}
{%- set interface_context = interface.tags|get_netbox_tags_contexts|contexts_merge_last %}
{{ re }} {
system {
host-name {{ re }}.{{ device.name }};
services {
ssh;
}
}
interfaces {
{{ interface_name}} {
unit 0 {
family inet {
{%- for address in interface|get_addresses %}{% if address|ipv4 %}
address {{ address.address }};
{%- endif %}{%- endfor %}
}
}
}
}
}
{%- endif %}
{%- endfor %}
}
apply-groups [ {% for re in re_groups %}{{ re }}{% if not loop.last %} {% endif %}{% endfor %} ];
system {
root-authentication {
encrypted-password "$6$uC87jp7U$04FIKNRT3VcUzqDiaxKVRVqnQM2c48Q2NpIARsSuKVVK7gezNX92B7261QV.kRHg.yswiDhUY.SF4e/qgRNdL0"; ## SECRET-DATA
}
commit synchronize;
login {
user marek.faelix {
full-name "Marek Isalski";
uid 2000;
class super-user;
authentication {
encrypted-password "$6$4sVD2r4y$PjAIeLZ/tJcDhsQekJI9wU2l4xYf8k6mHuzvLivK2tcFXdcHMjP23Up/oUzMRWiVtEW99foiEWuXG40tL5cHy0";
ssh-ed25519 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM05RD1X1njHcJvPTGbaCkO7rssp6T8uTCH3b6Sk4MA9 maz@lifting-shadows";
}
}
}
services {
ssh;
}
authentication-order [ password radius ];
syslog {
file interactive-commands {
interactive-commands any;
}
file messages {
any notice;
authorization info;
}
}
processes {
dhcp-service {
traceoptions {
file dhcp_logfile size 10m;
level all;
flag packet;
}
}
}
}
chassis {
redundancy {
routing-engine 0 master;
routing-engine 1 backup;
}
aggregated-devices {
ethernet {
device-count {{ lag_interfaces|length }};
}
}
fpc 0 {
pic 0 {
number-of-ports 0;
}
pic 1 {
pic-mode 100G;
}
}
}
interfaces {
{%- for interface, subinterfaces in device|get_interfaces|subinterfaces(".") %}
{%- set interface_context = interface.tags|get_netbox_tags_contexts|contexts_merge_last %}
{%- set interface_tags = [] %}
{%- for tag in interface.tags %}
{%- do interface_tags.append(tag.slug) %}
{%- endfor %}
{%- if '@' in interface.name %}
/* groups interface: {{ interface.name }} */
{%- elif interface.mgmt_only %}
/* management interface: {{ interface.name }} */
{%- elif 'no-automation' in interface_tags %}
/* do not configure: {{ interface.name }} */
{% elif interface.lag %}
{{ interface.name }} {
gigether-options {
802.3ad {{ interface.lag.name }};
}
{%- elif interface.name.startswith( 'lo' ) %}
{{ interface.name }} {
{{ macros.interface_description(interface, interface_context) }}
{%- elif interface.type.value == 'lag' %}
{{ interface.name }} {
vlan-tagging;
aggregated-ether-options {
minimum-links 1;
link-speed 100g;
}
{{ macros.interface_description(interface, interface_context) }}
{# interface_common(interface, interface_context) #}
{%- elif interface.type.value != 'virtual' %}
{{ interface.name }} {
{{ macros.interface_description(interface) }}
{%- if interface.mode.value == 'access' %}
unit 0 {
{# interface_vrf(interface, interface_context) #}
{# interface_common(interface, interface_context) #}
{{ macros.interface_addresses(interface, interface_context) }}
}
{%- elif interface.mode.value == 'tagged' %}
vlan-tagging;
{%- endif %}
{%- endif %}
{%- if ( not interface.mgmt_only ) and ( 'no-automation' not in interface_tags ) and ( '@' not in interface.name ) %}
{%- for tagged_vlan in interface.tagged_vlans %}{%- endfor %}
{%- if interface.mode.value == 'tagged' %}
{%- for unit, subinterface in subinterfaces %}
unit {{ unit }} {
{%- if subinterface.untagged_vlan %}
vlan-id {{ subinterface.untagged_vlan.vid }};
{%- elif unit|int %}
vlan-id {{ unit }};
{%- endif %}
{%- set subinterface_context = subinterface.tags|get_netbox_tags_contexts|contexts_merge_last %}
{# interface_vrf(subinterface, subinterface_context) #}
{# interface_common(subinterface, subinterface_context) #}
{{ macros.interface_addresses(subinterface, subinterface_context) }}
}
{%- endfor %}
{%- endif %}
}
{%- endif %}
{%- endfor %}
{#
ae34 {
vlan-tagging;
aggregated-ether-options {
minimum-links 1;
link-speed 100g;
}
unit 34 {
vlan-id 34;
family inet {
address 193.162.44.13/31;
}
family inet6 {
address 2a10:f0c0::13/127;
}
}
}
ae41 {
vlan-tagging;
aggregated-ether-options {
minimum-links 1;
link-speed 100g;
}
unit 41 {
vlan-id 41;
family inet {
address 193.162.44.14/31;
}
family inet6 {
address 2a10:f0c0::14/127;
}
}
}
#}
fxp0 {
unit 0;
}
}
routing-options {
static {
route 172.22.0.0/16 next-hop 172.22.4.1;
}
}

+ 16
- 0
macros.j2

@ -0,0 +1,16 @@
{%- macro interface_description(interface, interface_context) %}
description "{% if interface.label %}{{ interface.label|replace('"','\\"') or "-" }}: {% endif %}{{ interface.description|replace('"','\\"') or "-" }}{% if interface.connected_endpoint and interface.connected_endpoint.device %} ({% if interface.connected_endpoint.device %}{{ interface.connected_endpoint.name|replace('"','\\"') }} @ {{ interface.connected_endpoint.device.name|replace('"','\\"') }}{% endif %}){% endif %}"
{%- endmacro %}
{%- macro interface_addresses(interface, interface_context) %}
family inet {
{%- for address in interface|get_addresses %}{% if address|ipv4 %}
address {{ address.address }}
{%- endif %}{%- endfor %}
}
family inet6 {
{%- for address in interface|get_addresses %}{% if address|ipv6 %}
address {{ address.address }}
{%- endif %}{%- endfor %}
}
{%- endmacro %}

Loading…
Cancel
Save