Parsing Network CLI Output with TextFSM, TTP, jc, and netutils
APIs are great, but most networks still have a lot of operational truth hidden in CLI output. A useful NetDevOps pipeline can parse that output and test it like normal data.
APIs are great, but most networks still have a lot of operational truth hidden in CLI output. A useful NetDevOps pipeline can parse that output and test it like normal data.
Network automation usually breaks before it touches a router. The failure is often bad input data: a missing VLAN ID, an interface name typo, a wrong site slug, or a template variable that nobody supplied.
Not every network automation pipeline needs Ansible. Many repositories are pure Python: they render configurations, validate intended state, call Nautobot or NetBox APIs, run Nornir jobs, parse CLI output, or test API clients. The bsmeding/netdevops_cicd_* images are built for those workflows.
Ansible automation often fails in CI for boring reasons: different Python versions, missing system packages, missing sshpass, a Molecule image that does not support systemd, or a pipeline runner that is not close to the Linux distribution used in production. The bsmeding/ansible_cicd_* images are built to remove that drift.