SaltStack is an automation and orchestration product. It relies on an agent called the Salt Minion running on the Cumulus Linux switch to communicate with a central server, called the Salt Master. SaltStack allows for the switch to pull configurations from the Salt Master (similar to Puppet) or to push configurations from the Salt Master (similar to Ansible). The Salt Master would be a server in the data center management network used to manage all of the Salt Minions.
Note: Since Cumulus Linux is a Debian Linux distribution, you install the SaltStack agent on a Cumulus Linux switch the same way you install Salt on Debian Linux.
Salt provides a multi-platform bootstrap script to simplify installation, which we'll use in the example below.
Installing Salt on Cumulus Linux 3.x
Cumulus Linux 3.x is based on Debian Jessie. The instructions below follow the Salt instructions for Debian Jessie.
Note: These instructions assume x86. For ARM-based platforms, replace "amd64" with "armhf" in the Salt repository lines.
/etc/apt/sources.listand add the Debian repository:
cumulus@switch$ sudo sh -c 'echo "deb http://ftp.us.debian.org/debian/ jessie main contrib non-free" >> /etc/apt/sources.list'
- Download and execute Salt Bootstrap:
cumulus@switch$ curl -L https://bootstrap.saltstack.com -o install_salt.sh
sudo sh install_salt.sh -P
Configuring Salt Minion and Salt Master
- Edit the Salt Minion configuration to point to the Salt Master.
Note: If DNS resolves "salt" to the Salt Master, you can skip this step. This example assumes the Salt Master is at 10.0.0.1:
cumulus@switch$ sudo sed -i 's/#master: salt/master: 10.0.0.1/g' /etc/salt/minion
- Restart the Salt Minion:
cumulus@switch$ sudo systemctl restart salt-minion.service
- View the Salt Minion's key on the Salt Master.
Note: The Salt Master is not on the Cumulus Linux switch, but the server running Salt Master.
user@salt-master$ sudo salt-key -L
- Accept the Cumulus Salt Minion key on the Salt Master:
user@salt-master$ sudo salt-key -a salt-minion
The following keys are going to be accepted:
Proceed? [n/Y] Y
Key for minion salt-minion accepted.
- Test connectivity from the Salt Master:
user@salt-master$ salt '*' test.ping