Making the network (even) more consumable: Salty đ§ minions for cloudlubbers âď¸
Building and integrating custom SR Linux agents â part â Ą
A âlubberâ is a âbig, clumsy personâ, a word more commonly used in the form of âlandlubberâ meaning someone unfamiliar with the sea or sailing. The latter was first recorded back in 1690, combining the Middle English word âlubberâ (~1400) with the Germanic â or Dutch â âlandâ: âA definite portion of the earthâs surface owned by an individual or home of a nationâ.
The process of combining two words to form a new one is called ânominal compositionâ and it is used a lot in my native Dutch language. Technically this means that Dutch has exponentially more words than English for example, though we canât be bothered to list them in dictionaries â we simply invent them as needed (against the advice of my browserâs spellchecker who argues âcloudlubberâ should be written as two separate words, silly machine)
Found at the bottom of that dictionary list: Toki Pona â âsimple languageâ â is a minimalistic constructed language consisting of only 120 words. It uses only 14 letters â a e i j k l m n o p s t u w â to form words
Insulting oneâs audience from the start is generally considered bad practice, but weâre ok because I wasnât talking about you â itâs me. You see, the more I work with network devices and software platforms, the more I realize that I really donât know much of anything at all. I get lost in the jungle of languages and variations and dependencies, it takes me ages to get used to yet another marvelous way of doing basically the same thing over and over again, and it wears me out. Why canât people just keep things simple?
Salt Project
Also known as âSaltStackâ or plain âSaltâ, this Python based software framework is used for coordinating code execution on distributed systems. It was originally developed around the same time as Ansible(2012), covering many of the same use cases as Puppet(2005) and Chef(2009). Since September 2020, Salt is owned by VMWare â though they have vowed to keep supporting it as open source.
Minions
Salt software processes running on distributed resources are known as âminionsâ, and in this exercise Iâll be demonstrating how they can be deployed on and integrated with SR Linux.
- Deploy this sample lab from GitHub
- Follow the README:
Integration: As simple as possible, but not simpler
In the course of this exercise, I have once again learnt that simpler is still better. Instead of trying to stay within Python and launching the Python-based Minion code, it is easier to just launch a shell script and stay with the way Salt Minion code is designed to operate. While this is trivial and really no different from what other Linux platforms could do, it is better because it creates minimal dependencies on the Salt implementation details. It may be written in Python too, but it could be anything â just run it like everyone else does.
Difference: Integrated configuration (& optional telemetry)
The key difference is in the integrated configuration model using a custom YANG model; the example only provisions the master address, but any parameters could be supported. Simple custom telemetry like the agent process state (is it running? how long? how many commands has it processed? etc. ) could be added for additional detail, if required.
Wrapping up
In summary: SR Linux offers a Linux based platform, and it can run whatever Linux application you need it to run. Its model driven architecture offers easy custom integration of management functions such as configuration and monitoring.
It may seem trivial, it is indeed simple, but it can still make a difference. Tawa pona, fellow cloudlubbers!