问题描述
下面我将其定义为变量文件bgp_vars.csv
0.0
local_as,peer1_ip,peer1_as,advertised_routes,route-map-out,route-map-in,prefix-list-1,prefix-list-2
10,10.10.10.10,20.20.20.20,10.10.10.0/24 10.10.20.0/24 10.10.30.0/24,accepted_routes,advertised-routes,accepted-routes
我的主要代码如下:
feature bgp
router bgp {{ local_as }}
address-family ipv4 unicast
{%- for route in advertised_network %}
network {{ route }}
{%- endfor %}
neighbor {{ peer1_ip }} remote-as {{ peer1_as }}
update-source loopback1
ebgp-multihop 2
addres-family ipv4 unicast
route-map {{ route-map-out }} out
route-map {{ route-map-in }} in
route-map {{ route-map-out }} permit 10
match ip address prefix-list {{ prefix-list-1 }}
set as-path prepend 65100 65100 65100
route-map {{ route-map-out }} deny 20
!
route-map {{ route-map-in }} permit 10
match ip address prefix-list {{ prefix-list-2 }}
set local-as 300
route-map {{ route-map-in }} deny 20
!
ip prefix-list {{ prefix-list-1 }} seq 10 permit 10.10.10.0/24
ip prefix-list {{ prefix-list-2 }} seq 10 permit 10.10.20.0/24
#!/usr/bin/env python
from __future__ import print_function,unicode_literals
import jinja2
import csv
csv_file = "bgp_vars.csv"
with open(csv_file) as f:
read_csv = csv.DictReader(f)
for bgp_vars in read_csv:
advertised_routes = bgp_vars['advertised_routes']
advertised_routes = advertised_routes.split()
bgp_vars['advertised_routes'] = advertised_routes
template_file = "bgp_config.j2"
with open (template_file) as f:
bgp_template = f.read()
template = jinja2.Template(bgp_template)
print()
print('-' * 80)
print(template.render(bgp_vars))
print('-' * 80)
print()
如果有人可以帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)