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

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.


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!




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

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Programming Languages to Avoid and Learn in 2022.

Girl looking at computer

How A Shell Works — What happens when ls -l is typed?

Trading Journal: Log Your Trades with NinjaTrader’s Journal Display

LeetCode 20. Valid Parentheses

Taking Amazon’s Elastic Kubernetes Service for a spin

How we increased Kubernetes node capacity from 64 nodes to 2000+

Learn Python in 2021

xvalues and prvalues: The Next Generation

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Jeroen Van Bemmel

Jeroen Van Bemmel

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

More from Medium

Project 5: ESP32 Output Display & PWM

Introducing Motion Capture

Installing Hadoop 3.2.1 in Windows 10 + basic word count example

🎥Keeping up with the Pepelnjakᣵ — OSPF over unnumbered interfaces for SROS