Today I'm going to take you over some of the pitfalls and roads to success that I've encountered when trying to set up a custom Raspberry Pi device that is connected as a Minion back to a SaltStack Master.
For those unfamiliar, Salt is a powerful systems administration framework, allowing for asynchronous communication and the ability to manage tons of end points (nice salt cheat sheet).
Minions are endpoint nodes in a SaltStack, where as Masters are accessible control nodes. Putting a Salt Minion on Raspberry Pis provided us the ability to control many Pi devices with a Internet of Things / Smart Home / Automated (orchestration) approach.
We originally approached the problem with a Raspberry Pi 1 Model B+, with a Raspbian operating system, however this proved very difficult as Raspbian would repeatedly have issues in running or reading the configuration files. This led us to try Arch for Arm on the Raspberry Pi, using the Noobs boot disk to install.
After that, installing and configuring the Salt Minion on Arch Linux was super straight forward and worked like a charm.
Later, we upgraded to a Raspberry Pi 2 Model B, for a better CPU and mode RAM, and thought we would take another shot at Raspbian, as we heard it worked better with this architecture. This was only slightly true, we were able to successfully install Salt Minions on Raspbian this time, using this method, but ultimately the Minions had issues connecting back to the Master.
Going with Arch on the Raspberry Pi 2 Model B, no longer supports NOOBS, but the installation is still pretty easy. Installing the Salt Minion on the Raspberry Pi 2 running Arch was just as simple as the first time and also just as successful, installing and connecting back flawlessly on Arch on Arm.
So ultimately, if you are looking to run Salt Minion on a Raspberry Pi, we strongly recommend going with Arch Linux to avoid issues.