This mini-project was part of Tero Karvinen’s course about Salt in Haaga-Helia University of Applied Sciences. In my project I wanted to participate to “competition” that was about who can handle the highest amount of different operation systems.
I did salt-minion installations and configured them to point my master.
I succeeded having 7 different OS’s as minions:
Ubuntu 18.04.2 LTS
CentOS
Fedora (32-bit)
ElementaryOS
MacOS
Windows 10 Home
Windows 7 Ultimate (32-bit)
Installations:
Salt-minion versions – it’s recommended that Salt-master and Salt-minions have the same versions of Salt. I didn’t have same versions on all and it’s not a right way. This would have probably caused problems if I had configured salt-minions more, at this point I didn’t see any problems regarding to different salt-versions.
Salt-master
As a master I used DigitalOcean Ubuntu 18.04.2 LTS virtual machine.
I installed Salt 2018.3.4 (Oxygen) using
sudo apt-get update
sudo apt-get install salt-master
Ubuntu:
Ubuntu 18.04.2 LTS minion run on same machine as master. I installed Salt-minion 2018.3.4 by
sudo apt-get update
sudo apt-get install salt-minion
And then configured the minion conf file and added master IP and minion id.
ElementaryOS
Elementary minion run on Oracle VirtualBox virtual machine. I installed Salt-minion 2017.7.4 by
sudo apt-get update
sudo apt-get install salt-minion
And then configured the minion conf file and added master IP and minion id.
Fedora (32-bit)
32-bit Fedora run on Oracle VirtualBox virtual machine.
I installed salt minion using yum and then configured the minion conf file with master IP and minion id.
sudo yum install salt-minion
sudoedit /etc/salt/minion
It installed the latest release of salt-minion which was 2019.2.0. It was earlier than master’s version of Salt which is not recommended at all. I didn’t have time to figure out how to install earlier version with yum. It still worked okay.
MacOS
I used Macbook Air that had MacOS Mojave version 10.14.3.
Salt installation happened by installing the package from Saltstack repo and executing it.
I installed version 2017.7.4 from: https://repo.saltstack.com/osx/.
Master IP and minion id were set at the installation part.
CentOS
CentOS minion was on Azure. I installed salt-minion using yum:
sudo yum install salt-minion
sudo nano /etc/salt/minion
It installed salt-minion 2018.3.4.
Windows 10 and Windows 7 (32-bit):
I used Oracle VirtualBox virtual machines to run Windows 7 Ultimate (32-bit) and Windows 10 Home.
I installed 2018.3.4 Salt-minion version from SaltStack repo:
https://repo.saltstack.com/windows/
I executed the .exe file and at installations I applied correct master IP and minion hostname (id).
Testing ang grains.item
lsb_release -a
salt –version
sudo salt ‘*’ grains.item osfullname cpuarch saltversion
Configuring Salt-minions
I didn’t have too much time to do this project but I wanted to create some kind of top file. I decided to create simple hello files for windows and others. Also to windows I had winpkgs (Firefox and Putty) and for MacOS macpkgs (archey).
On MacOS I installed command-line tool “archey” that prints system info:

On Windows-minions I installed Firefox and Putty:

And Hello-files for all (for others and windows):
Demo-video, top.sls:
Next…
First step to reproduce this would be to update salt-versions to match. And then the next step would be to create improved top file that would install programs for all.