Making the network (even) more consumable: Salty 🧂 minions for cloudlubbers ☁️

Building and integrating custom SR Linux agents — part Ⅱ

Jeroen Van Bemmel
3 min readFeb 7, 2022

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.

  1. Deploy this sample lab from GitHub
  2. Follow the README:
CLI commands to showcase Salt Minion integration
Final proof point — sweet Salty victory!

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!

--

--

Jeroen Van Bemmel

Sustainable digital transformation at Webscale — real life stories about our discoveries in the world of networking. Views represented are my own.