Salt Stack
Subhankar Sengupta
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
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
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
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
● Grain- Information collected by minion about the system
● You could write custom grain
Shows which grains
are defined on a host
Show the
value of all
grains on a
given host
Installation is a cake walk
kkk
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)
Check it
How it works?
Pub-Sub
Pub
Salt Master
Minion-FQDN- 1 Minion-FQDN- 2
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
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)
Changing password
Some more examples
Run an arbitrary shell command
Or a module
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
Again Vocabulary
Cloud provider is used to specify basic authentication
information to access a cloud provider.
Again Vocabulary-2
Cloud profiles is used to specify specific virtual machine
requirements, such as size, image, and location.
Q and A
Drop an email:
subhankar.aws@gmail.com

Salt Stack - Subhankar Sengupta

  • 1.
  • 2.
    My Intro ● SysOpsguy 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 Saltstack 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 ● Themaster 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- Informationcollected by minion about the system ● You could write custom grain Shows which grains are defined on a host
  • 7.
    Show the value ofall grains on a given host
  • 8.
    Installation is acake walk kkk
  • 9.
    Packages ● Alternatively installationcould be done using RPM or Apt ● Three Packages ○ Salt - (In all nodes) ○ Salt-minion - (In all nodes) ○ Salt-master- (Only in master server)
  • 10.
  • 11.
    How it works? Pub-Sub Pub SaltMaster Minion-FQDN- 1 Minion-FQDN- 2
  • 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)
  • 14.
  • 15.
  • 16.
    Run an arbitraryshell command Or a module
  • 17.
    Salt Cloud ● Startedas 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
  • 18.
    Again Vocabulary Cloud provideris used to specify basic authentication information to access a cloud provider.
  • 19.
    Again Vocabulary-2 Cloud profilesis used to specify specific virtual machine requirements, such as size, image, and location.
  • 20.
    Q and A Dropan email: subhankar.aws@gmail.com