In this video I'm using ZTP dynamic provisioning for Arista switches in my virtual environment using EVE-ng and Devuan as the ZTP server (other linux distros work "pretty" much the same). Note that this is just an example and there are lot more things that you can do with ZTP (e.g integrating it with Ansible, upgrading hundreds of switches, etc.) More info on the links provided at the bottom.
At first it may seems a bit complicated, but there are a couple of things we need to be aware of and after seeing how all the tools used to build are provisioning is connected it will become more clearer and after that it's up to you.
In the first couple of minutes I briefly talk about my topology, but if you want to go directly to the ZTP part click on the following link:
https://youtu.be/VELnc-f73fA?t=381
Filing structure, files created or modified:
add your DHCP config to /etc/dhcp/dhcpd.conf
specify the basic parameters of your server in /etc/ztpserver/ztpserver.conf
Define actions in(you have to create a definition file for each device):
/usr/share/ztpserver/definitions/
Templates (configlets):
/usr/share/ztpserver/files/templates/
Resource files(used as a database for your variables in your configlets):
/usr/share/ztpserver/resources/
Neighbordb - to specify which definitions go for which devices and matching patterns based on connectivity
/usr/share/ztpserver/neighbordb
Note: The definitions, resources and neighbordb files have to have a yaml format (key-value pair similar to Python dictionaries). The ZTP parser doesn't like TABs so make sure you are using only spaces in your files.
Best way to troubleshoot issues with your files is to validate them with "ztps --validate" and "ztps --debug", both of them have relatively straight-forward explanations.
Useful documentation:
https://ztpserver.readthedocs.io
https://github.com/arista-eosplus/ztpserver
Thanks for watching!
At first it may seems a bit complicated, but there are a couple of things we need to be aware of and after seeing how all the tools used to build are provisioning is connected it will become more clearer and after that it's up to you.
In the first couple of minutes I briefly talk about my topology, but if you want to go directly to the ZTP part click on the following link:
https://youtu.be/VELnc-f73fA?t=381
Filing structure, files created or modified:
add your DHCP config to /etc/dhcp/dhcpd.conf
specify the basic parameters of your server in /etc/ztpserver/ztpserver.conf
Define actions in(you have to create a definition file for each device):
/usr/share/ztpserver/definitions/
Templates (configlets):
/usr/share/ztpserver/files/templates/
Resource files(used as a database for your variables in your configlets):
/usr/share/ztpserver/resources/
Neighbordb - to specify which definitions go for which devices and matching patterns based on connectivity
/usr/share/ztpserver/neighbordb
Note: The definitions, resources and neighbordb files have to have a yaml format (key-value pair similar to Python dictionaries). The ZTP parser doesn't like TABs so make sure you are using only spaces in your files.
Best way to troubleshoot issues with your files is to validate them with "ztps --validate" and "ztps --debug", both of them have relatively straight-forward explanations.
Useful documentation:
https://ztpserver.readthedocs.io
https://github.com/arista-eosplus/ztpserver
Thanks for watching!
- Category
- Routers and Switches
Be the first to comment