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? Don’t 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
● SALT’s 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