Salt mini-project

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


Fedora (32-bit)



Windows 10 Home

Windows 7 Ultimate (32-bit)



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.


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 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.



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.



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:

Master IP and minion id were set at the installation part.



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:

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).


Screenshot 2019-05-15 at 21.31.14


On MacOS I installed command-line tool “archey” that prints system info:

Screenshot 2019-05-15 at 21.33.40.png
/srv/salt/macpkgs init.sls file

Screenshot 2019-05-15 at 21.14.57.png


On Windows-minions I installed Firefox and Putty:

Screenshot 2019-05-15 at 21.20.27
/srv/salt/winpkgs init.sls

Screenshot from 2019-05-15 21-36-35.png



And Hello-files for all (for others and windows):



Demo-video, top.sls:



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.