Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Salt Stack - Subhankar Sengupta


Published on

Salt Stack presented by Subhankar Sengupta in DevOps Bangalore meetup group on Feb 21st 2015

Salt Stack - Subhankar Sengupta

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