===== Slatstack =====
"SaltStack software orchestrates the build and ongoing management of any modern infrastructure. SaltStack is also the most scalable and flexible configuration management software for event-driven automation of CloudOps, ITOps and DevOps." -- from the Saltstack Web Site
Saltstack traditionally operates in a master/minion architecture. While it is possible to run a Saltstack implementation with no master, this tutorial will focus on the more traditional approach. In this tutorial, our Saltstack master will run on the same system as our web proxy and our continuous integration service, Jenkins. In your enterprise these can certainly run on separate systems; however, we will later do some cool things with this particular architecture and service pairing.
=== Install Saltstack Master ===
On ''master'', install the Saltstack salt-master service by adding the signing keys and repository, then update and install.
ssh waytta@master
wget -O - https://repo.saltstack.com/apt/debian/8/amd64/latest/SALTSTACK-GPG-KEY.pub | sudo apt-key add -
sudo sh -ec 'echo deb http://repo.saltstack.com/apt/debian/8/amd64/latest jessie main >> /etc/apt/sources.list.d/saltstack.list'
sudo apt-get update
sudo apt-get install salt-master
sudo sh -ec 'echo kvm* >> /etc/salt/autosign.conf'
=== Configure Saltstack Master ===
To configure the Saltstack master service on ''master'', create the file ''/etc/salt/master.conf.d/waytta-master.conf'' with these configuration options:
state_output: mixed
file_roots:
base:
- /srv/salt
fileserver_backend:
- git
- roots
gitfs_provider: GitPython
gitfs_remotes:
- git@master:waytta/salt-states.git
autosign_file: /etc/salt/autosign.conf
ext_pillar:
- git: master git@master:waytta/salt-states.git root=pillars
Restart the salt-master service:
sudo service salt-master restart
=== Install Saltstack Minion(s) ===
To install and configure the salt-minion service on our minions, perform the following steps on both ''kvm1'' & ''kvm2'':
sudo sh -ec 'echo \\n192.168.1.1 master >> /etc/hosts'
wget -O - https://repo.saltstack.com/apt/debian/8/amd64/latest/SALTSTACK-GPG-KEY.pub | sudo apt-key add -
sudo sh -ec 'echo deb http://repo.saltstack.com/apt/debian/8/amd64/latest jessie main >> /etc/apt/sources.list.d/saltstack.list'
sudo apt-get update
sudo apt-get install salt-minion
sudo sh -ec 'echo "master: master\n" > /etc/salt/minion.d/minion.conf'
sudo /etc/init.d/salt-minion restart
=== Confirm Connectivity ===
On ''master'', confirm the security keys for ''kvm1'' & ''kvm2'' are accepted and listed in the output:
sudo salt-key -L
Accepted Keys:
kvm1
kvm2
Denied Keys:
Unaccepted Keys:
Rejected Keys:
Finally, run a test command on ''master'' to confirm it can execute commands on the minions:
sudo salt '*' test.ping
kvm1:
True
kvm2:
True
Congratulations, you've completed this lesson.
=== Resources ===
* [[https://docs.saltstack.com/en/latest/topics/installation/debian.html|Saltstack]] - Installation from the Saltstack repository
* [[https://docs.saltstack.com/en/latest/topics/tutorials/walkthrough.html|Saltstack]] - Walkthrough tutorial
* [[https://docs.saltstack.com/en/latest/topics/tutorials/gitfs.html|Saltstack]] - Git Fileserver Backend Walkthrough