Input: <==
Date modelling raw material (手工输入数据源, yaml format, 可以为设计架构HLD, vlan, IP 子网, bgp, 路由信息等)
Jinja2 Template: (e.g. {% if condition %} ) Use to convert raw material data to data model structure type (yaml or py 格式 的 dictionary)
==>Output:
Data modelling structure type file
Input: <==
Data modelling structure type
More specific Jinja2 Template (更加明细的J2 template, 用于搭建如 详细vendor-specific配置文件(.cfg), ansible-playbook/host_file文件(.yaml) )
==>Output:
vendor-specific配置文件(.cfg)
ansible-playbook
ansible host_file
用相关程序执行step2 的output
napalm
ansible
python
https://agileis.com.au/how-to-automate-your-network-using-ansible-and-napalm-part-2/
https://github.com/kokasha/NetAutomationExamples.git
Playbook Order:
## First Play
- hosts: localhost
name: Create per node data model
## Second Play
- hosts: all
name: Generate Configuration for all routers
## Third Play
- hosts: all
name: push the configuration to the devices