Next week SANOG (South Asia Network Operator Group) event will start in Kathmandu, Nepal. I will be instructing on a 4-day workshop on Network Automation with two fellow instructors. The idea of this workshop is to make fellow Ops / Network engineers familiar with concepts of Docker, Ansible, and Gitlab CI/CD pipeline and ultimately to make use of REST APIs to bind these all together.
This is the first time I am doing such a workshop and the content here is built from scratch. On the positive side, it gives good flexibility on content but the challenge is to stick on time. Since content is not tested before, there will always be a risk of going “too slow” or “too fast”. The goal by the end of the workshop is to ensure that attendees can build up event-driven automation. They should be able to set up a system where “if x happens” then “action y is triggered”. This can fit a wide variety of use cases.
Possible causes which can fit in such a framework:
- If one IP transit link goes beyond 80% usage, shift traffic to link 2 until transit one is lower than 50%
- If optical power on one circuit drops below -18dbm, remove the circuit from IGP
- If CRC errors are detected on an ethernet interface, remove them from IGP
- If BGP flaps on one link, remove the BGP announcement from it for next 20mins
These cases can typically be detected with NMS like LibreNMS which can call a REST API for Gitlab triggering a job which has a docker container based on Alpine with ansible in it against a router to make changes.
Let’s see how it goes. Fingers crossed! :-)