This document discusses Salt Stack, an open source configuration management and remote execution system. Salt Stack allows users to manage configuration of systems through states written in YAML and execute commands remotely. It uses a master-minion architecture with asynchronous communication over ZeroMQ. Minions connect to the master and subscribe to events to receive configuration updates. Salt Stack provides modules to manage users, packages, files, services and more. It offers a simple and fast way to provision and manage systems at scale.
2. My Intro
SysOps guy since 2002, started in a typical startup, a web-hosting company and daily firefight
Landed up in JP Morgan, Sabre Inc etc.
Started JBUG Bangalore (Jboss User Group) in 2010
Why CM? Dont want to be harassed admin
3. What does Salt stack do?
Simple things
1) Configuration Mgmt
user
package
file
service etc
2) Remote execution
When you install Saltstack you get both
4. About the project
Open Source
Written in Python
Uses YAML for cm syntax, called salt states
Very fast communication system so rapidly scales
Most Important
Viable things are fundamentally SIMPLE
Salt is simple
5. Some vocabulary
The master is the Salt server
The minions are the target machines that will be provisioned
Each minion has an unique ID
Asynchronous communication
SALTs configuration files are called states, easy to read and understand
Multiple states can be applied to each minion
Modules are collection of function that could be run from Salt CLI
Information collected by minion about the system is Grain
6. Grain- Information collected by minion about the system
You could write custom grain
Shows which grains
are defined on a host
9. Packages
Alternatively installation could be done using RPM or Apt
Three Packages
Salt - (In all nodes)
Salt-minion - (In all nodes)
Salt-master- (Only in master server)
12. How it works?
When master process started it creates a socket
When minion process starts it connects to that master socket and looks for
event
Master publishes event and minion subscribes to listen to that, hence Pub-
Sub
This communication is done by a high speed channel
ZeroMQ
This communication channel is secure
Minion and master exchange keys using AES encryption
13. Remote Execution
usr/bin/salt- salt <minion-id> <module>
Salt comes with a rich set of modules
You could write your own in python
Module has access to salt data structure
salt * sys.doc test.ping (Help Files)
17. Salt Cloud
Started as a separate project to use salt to manage cloud VMs
Starting with the 2014.1.0 release of Salt, Salt Cloud is built into Salt
Uses python-libcloud
AWS
XYZ
Provider Profiles