Salt (SaltStack) is a powerful open-source configuration management and automation tool. Below is a step-by-step guide to deploying Salt Open Source for centralized configuration and management.
Step 1: Update Your System
Before installing Salt, update your package repositories and upgrade your system packages:
sudo apt update
sudo apt upgrade -y
Step 2: Install Salt Master
On your master server, install the Salt master package:
sudo apt install salt-master -y
Step 3: Configure Salt Master
Edit the Salt master configuration file to define the network interfaces it listens on:
sudo nano /etc/salt/master
Add or modify the following line to listen on all network interfaces:
interface: 0.0.0.0
Save and close the file, then restart Salt master:
sudo systemctl restart salt-master
sudo systemctl enable salt-master
Step 4: Install Salt Minion
On each minion (client machine), install the Salt minion package:
sudo apt update
sudo apt install salt-minion -y
Step 5: Configure Salt Minion
Configure the Salt minion to point to your master server by editing:
sudo nano /etc/salt/minion
Update or add the master’s IP or hostname:
master: your_master_ip_or_hostname
Save and close the file, then restart Salt minion:
sudo systemctl restart salt-minion
sudo systemctl enable salt-minion
Step 6: Accept Minion Keys
On your Salt master, list minion keys:
sudo salt-key -L
Accept all pending keys:
sudo salt-key -A
Step 7: Test Your Deployment
Run a simple ping test from your master to verify connectivity:
sudo salt '*' test.ping
You should see a return message like:
minion-1:
True
Step 8: Using Salt States
Create Salt states to manage configurations. Create a basic state file:
sudo mkdir -p /srv/salt
sudo nano /srv/salt/basic.sls
Add a simple example, like ensuring vim is installed:
vim:
pkg.installed
Apply the state:
sudo salt '*' state.apply basic
Conclusion
You now have a basic Salt Open Source deployment. You can expand upon this setup by writing detailed Salt states, managing more complex configurations, and automating infrastructure tasks.