Roman Dodin wrote an post describing Nokia’s Ansible selection for SR Linux. Whilst I really do not use SR Linux (even however it was the very first container supported by netlab ), it was nonetheless really interesting to browse about the style tradeoffs they had to make:
- Even however SR Linux uses Relaxation API, they determined to employ a dedicated Ansible module because utilizing the URI module results in playbooks that are too verbose (as well as you could possibly get into exciting fights if your Relaxation API expects you to login and use session cookies).
- Utilizing a devoted module also simplifies error handling – the module can return a cleaned-up error message, not a raw HTTP mistake.
- A committed module can also put into practice diffs and idempotent functions (read state, do a diff, deliver only the required updates).
Most apparently, they resolved to build a generic module that would be driven by configuration information structures (SR Linux makes use of data structures not text traces to configure the gadget), not a maze of dozens of very small very little modules (all alike) that would configure interfaces, IP addresses, routing protocols… like what the Ansible builders made (Cisco IOS, Arista EOS) in one of their lots of incompatible attempts to get networking modules proper.