SlideShare a Scribd company logo
1 of 28
www.vishalbiyani.com
SALTSTACK – ADVANCED CONCEPTS
www.vishalbiyani.com
About Me
Vishal Biyani is a DevOps engineer at large. In his past stints he has
done Java development to operations for enterprise systems.
Current interests around Go, Docker, Mesos and plenty of other
stuff. Scribbles at www.vishalbiyani.com. Other interests around
reading, movies and bit of photography. Latest fascination is to
build a DIY Satellite and launch it.
www.vishalbiyani.com
Quick Poll
• How many know anyone of Puppet, Chef, Ansible or Salt
• How many know Salt?
• WHat problems have you faced in Puppet/Chef/Ansible?
www.vishalbiyani.com
Agenda
• Overview of Basics & some Debugging Techniques
• Peer Communication in Salt
• Events, Orchestration & Reactors
• Mine
• Beacons
• Multi-master & Syndic
• Basic Salt Cloud
You can checkout the project at https://github.com/vishal-biyani/saltstack-cluster - this is a
working Salt server+minion setup and has some of examples in today’s talk. Feel free to
file bugs or send pull requests to enhance.
Remind me to show
some exercises when
you see this balloon if I
forget!
www.vishalbiyani.com
OVERVIEW OF BASICS & SOME
DEBUGGING TECHNIQUES
www.vishalbiyani.com
Quick Basics
• Salt is CM platform based on Python language and YAML data format.
Uses ZeroMQ for scalable and fast communication across large number
of nodes
• Typical use cases you see like any other CM platform:
• Managing OS and platform stack on number of machines
• Remote execution of commands (Remove all data in /temp)
• Managing configuration data
• Orchestration to ensure complex use cases for infrastructure/platform
• Server - Agent based (Called minion-master) though you can use it like
Ansible with salt-ssh module (With some limitations)
www.vishalbiyani.com
Command Line - Remote Execution
•What do you want to target – all
web servers for ex.?
Target
• We are using test module and ping
function - but there are many more
Module+Comman
d
• In our case no argument - but
typically there will be some
arguments
ArgumentsHands
on!
www.vishalbiyani.com
State, Pillar, Grains & Formula
• State files is what defines what needs to be done (logic), the extension is
sls
• The configuration data parameters is what is stored in Pillar (data) –
extension is sls. This data is stored on server and provided to target
machines based on role, environment etc.
• There is another type of data item – grains. This is set on individual target machines,
some values are in built by Salt like os, cpu etc. and others can be custom built.
• State files and Pillar+Grain data together can be used to get to desired
state on target machines.
• Reusable modules/playbooks are called Formula
• Of course there are more components – but this is minimal to get going
www.vishalbiyani.com
Once more
• Pillar data is configuration data that is sent by master to
minions.
• Grains data is what minions produce and provide to
master about themselves.
www.vishalbiyani.com
(Some) Development & Debugging Techniques
• When you are developing a piece of logic for certain target (Let’s say for app-server), go
to that machine and run “sudo salt-call state.highstate” – this allowes better debugging.
Yon always add “–l debug” for much more information.
• “state.show_top” can be used to show what does the top state look like for a specific
node instead of guessing.
• In jinja files to inspect variables you can use “ {{ var_name|pprint }}” – based on type and
value of object, you will know what is going wrong. (I am not python guy – is there a
better way?)
• For watching events coming to master you can use command “salt-run state.event
pretty=True” – this will show what data is coming. What happens to event is purely
visible only in debug logs – so enable that in master/minion config.
Are there more techniques I might be
missing?
Hands
on!
www.vishalbiyani.com
PEER COMMUNICATION IN SALT
www.vishalbiyani.com
Peer Communication 1/2
Use case
• A minion wants to know some details or run some command on other minions
• Communicate between minions for some event coordination
• Get information of other minions for making certain decisions
Before
• If you run publish command - it won't work out of the box, Salt by default does
not enable this:
www.vishalbiyani.com
Peer Communication 2/2
After
• You have to enable peer publishing for specific/all modules and minions to
enable peer communication. Setting change in master config file:
• The output after enabling peer communication for previous command:
Security?
• What if any minions runs destructive commands using 'cmd.run' module on other
minions?
Hands
on!
www.vishalbiyani.com
EVENT, REACTOR AND ORCHESTRATION
www.vishalbiyani.com
Event, Reactor and Orchestration
• Use case
• Events can be sent as part of workflow (Custom events), for example let’s say a
new node is up and needs to be added to load balancer config – so you can
send an event. Internally Salt uses events extensively.
• Reactor is what listens to those events and can invoke another workflow (Call a
SLS file or a formula) etc. You can filter for certain types of events, tags etc.
• Salt internal events can also be listened to and workflows initiated when an
event occurs.
• You can do everything in Reactor that you would do in a normal formula/SLS
call – so fairly complex states can be called as an reaction to certain event.
• You can also pass data with events – which can be retrieved in reactor
execution
www.vishalbiyani.com
SEND AND RECEIVE EVENT
• To send an event through an SLS file:
• To listen to an event and to decide what it should do, you need to add reactor.conf in
/etc/salt/master.d (Or inside master config file):
The tag of the event being sent
You can send data along with event and data can be dynamic as seen from some commands!
This config only tells which event to expect and what action to invoke – like a router sort of. Resides in
www.vishalbiyani.com
Processing The Event
The data is within data – hence you see data.data to get data we just passed
We are calling local state - meaning state of that minion. You can call highstate or other thin
Targeting only certain minions based on data received from event!
Passing event data to the SLS so that it can be used there to make more decusions
Hands
on!
www.vishalbiyani.com
Some learnings from reactor
• Debugging reactor is difficult - enabling debug mode on master as well
minion is your best bet
• Be careful of filters you are applying in event sending/reactor
processing and changing state of your machines. Else events will be
filtered and you will wonder what happened?
• Start with a very basic model of working reactor without any conditions
- test it and then grow it.
• Ask on Salt-Users google group - the community is helpful!
• KISS - Keep It Simple Stupid
www.vishalbiyani.com
SALT MINE
Salina Turda, Romania
(https://en.wikipedia.org/wiki/Salina_Turda) is one of most
visited Salt mine with 2M+ visitors so far!
We are going to talk about a virtual version of the same ;)
www.vishalbiyani.com
Salt Mine
• Mine is like grains – but much more real time. Grains is more or less static data about a
minion. Mine can be used for things which are expected to change over time about a
machine/instance and are provided by machine.
• Mine is also a replacement for peer publishing – remember? (Peer publishing is relatively
slow, because it has to reach all nodes and gather data. So in that sense mine is like a
already built data for certain things you need instead of running publish)
Mine functions are run
every X duration and
data is sent to Master
Master stored only
latest data of every
mine execution
A minion which needs data
about other minions can get
using mine.get with
appropriate filters etc.
www.vishalbiyani.com
Salt mine - working
Schedule at which mine functions shoud be run (Goes on minion)
Mine function definition which goes inside Pillar!
Running mine.get will give you info you need!
Hands
on!
www.vishalbiyani.com
Salt Beacon
www.vishalbiyani.com
Salt Beacons
• Salt beacon can “watch” certain things and fire events (What you can watch is limited
things like service, user login, ps etc.).
• These events can be caught by event bus and can be used to invoke reactor actions.
• Some inbuilt actions are already provided - for example clean up the PID file if the
service goes down (In case someone runs kill -9 or service dies for some reason)
• Beacon config can be done in minion config file or via Pillar (We will use pillar).
• We will only watch event - not write reactor for now (Command to watch events: sudo
salt-run state.event pretty=true )
Hands
on!
www.vishalbiyani.com
Salt Syndic & Salt Multimaster
www.vishalbiyani.com
Salt Syndic, Multimaster
• We won’t cover much code in this and next topic, mostly functional capabilities
• Multi master
• One minion can connect to multiple masters and all of them can be ‘hot’
• On all masters, keys for minions must be accepted separately
• If the setting is set to failover - then minions connect to first master that response
in list
• Syndic:
• Salt syndics are basically masters but responsible for only a part of infrastructure. That way
you can set up multiple syndics to split load.
• Syndic eventually point to a master of master and is in sync
• Both of above topologies can be mixed to achieve a highly scalable, highly available
and fault tolerant infrastructure.
www.vishalbiyani.com
Salt Cloud
www.vishalbiyani.com
Salt Cloud
• Salt cloud enables you provisions systems and bring them under Salt management
immediately.
• Roughly on config side:
• Define a provider (LIke Rackspace, AWS etc.)
• Query provider to get options of region, images etc.
• Create profiles with above information
• Use profiles to create instances and query, destroy etc
• Map files are used to create/destroy machines at scale. Map files are basically
multiple machine information combined into a cluster like definition
• You can define grains etc. when creating instances so you can manage them as per
identity.
www.vishalbiyani.com
Questions/Suggestions?
Thank you for your time and attention

More Related Content

What's hot

Serverspec and Sensu - Testing and Monitoring collide
Serverspec and Sensu - Testing and Monitoring collideServerspec and Sensu - Testing and Monitoring collide
Serverspec and Sensu - Testing and Monitoring collidem_richardson
 
Building a smarter application stack - service discovery and wiring for Docker
Building a smarter application stack - service discovery and wiring for DockerBuilding a smarter application stack - service discovery and wiring for Docker
Building a smarter application stack - service discovery and wiring for DockerTomas Doran
 
SaltConf2015: SaltStack at Scale Automating Your Automation
SaltConf2015: SaltStack at Scale Automating Your AutomationSaltConf2015: SaltStack at Scale Automating Your Automation
SaltConf2015: SaltStack at Scale Automating Your AutomationSteven Gonzales
 
Chef-Zero & Local Mode
Chef-Zero & Local ModeChef-Zero & Local Mode
Chef-Zero & Local ModeMichael Goetz
 
Velocity2011 chef-workshop
Velocity2011 chef-workshopVelocity2011 chef-workshop
Velocity2011 chef-workshopjtimberman
 
Exactly-once Semantics in Apache Kafka
Exactly-once Semantics in Apache KafkaExactly-once Semantics in Apache Kafka
Exactly-once Semantics in Apache Kafkaconfluent
 
Automated MySQL failover with MHA: Getting started & moving past its quirks
Automated MySQL failover with MHA: Getting started & moving past its quirksAutomated MySQL failover with MHA: Getting started & moving past its quirks
Automated MySQL failover with MHA: Getting started & moving past its quirksColin Charles
 
SCALE12X Build a Cloud Day: Chef: The Swiss Army Knife of Cloud Infrastructure
SCALE12X Build a Cloud Day: Chef: The Swiss Army Knife of Cloud InfrastructureSCALE12X Build a Cloud Day: Chef: The Swiss Army Knife of Cloud Infrastructure
SCALE12X Build a Cloud Day: Chef: The Swiss Army Knife of Cloud InfrastructureMatt Ray
 
Double Sync Replication
Double Sync ReplicationDouble Sync Replication
Double Sync ReplicationLixun Peng
 
Introduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStackIntroduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStackCraig Sebenik
 
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Software, Inc.
 
Resources, Providers, and Helpers Oh My!
Resources, Providers, and Helpers Oh My!Resources, Providers, and Helpers Oh My!
Resources, Providers, and Helpers Oh My!Brian Stajkowski
 
Automated Deployments with Ansible
Automated Deployments with AnsibleAutomated Deployments with Ansible
Automated Deployments with AnsibleMartin Etmajer
 
Kafkaesque days at linked in in 2015
Kafkaesque days at linked in in 2015Kafkaesque days at linked in in 2015
Kafkaesque days at linked in in 2015Joel Koshy
 
Empowering developers to deploy their own data stores
Empowering developers to deploy their own data storesEmpowering developers to deploy their own data stores
Empowering developers to deploy their own data storesTomas Doran
 
Chef ignited a DevOps revolution – BK Box
Chef ignited a DevOps revolution – BK BoxChef ignited a DevOps revolution – BK Box
Chef ignited a DevOps revolution – BK BoxChef Software, Inc.
 
OSDC 2014: Colin Charles - Automated MySQL failover with MHA: getting started...
OSDC 2014: Colin Charles - Automated MySQL failover with MHA: getting started...OSDC 2014: Colin Charles - Automated MySQL failover with MHA: getting started...
OSDC 2014: Colin Charles - Automated MySQL failover with MHA: getting started...NETWAYS
 
Spark Summit Europe: Building a REST Job Server for interactive Spark as a se...
Spark Summit Europe: Building a REST Job Server for interactive Spark as a se...Spark Summit Europe: Building a REST Job Server for interactive Spark as a se...
Spark Summit Europe: Building a REST Job Server for interactive Spark as a se...gethue
 
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)Tibo Beijen
 

What's hot (20)

Serverspec and Sensu - Testing and Monitoring collide
Serverspec and Sensu - Testing and Monitoring collideServerspec and Sensu - Testing and Monitoring collide
Serverspec and Sensu - Testing and Monitoring collide
 
Building a smarter application stack - service discovery and wiring for Docker
Building a smarter application stack - service discovery and wiring for DockerBuilding a smarter application stack - service discovery and wiring for Docker
Building a smarter application stack - service discovery and wiring for Docker
 
SaltConf2015: SaltStack at Scale Automating Your Automation
SaltConf2015: SaltStack at Scale Automating Your AutomationSaltConf2015: SaltStack at Scale Automating Your Automation
SaltConf2015: SaltStack at Scale Automating Your Automation
 
Chef-Zero & Local Mode
Chef-Zero & Local ModeChef-Zero & Local Mode
Chef-Zero & Local Mode
 
Velocity2011 chef-workshop
Velocity2011 chef-workshopVelocity2011 chef-workshop
Velocity2011 chef-workshop
 
Exactly-once Semantics in Apache Kafka
Exactly-once Semantics in Apache KafkaExactly-once Semantics in Apache Kafka
Exactly-once Semantics in Apache Kafka
 
Automated MySQL failover with MHA: Getting started & moving past its quirks
Automated MySQL failover with MHA: Getting started & moving past its quirksAutomated MySQL failover with MHA: Getting started & moving past its quirks
Automated MySQL failover with MHA: Getting started & moving past its quirks
 
Time Machine
Time MachineTime Machine
Time Machine
 
SCALE12X Build a Cloud Day: Chef: The Swiss Army Knife of Cloud Infrastructure
SCALE12X Build a Cloud Day: Chef: The Swiss Army Knife of Cloud InfrastructureSCALE12X Build a Cloud Day: Chef: The Swiss Army Knife of Cloud Infrastructure
SCALE12X Build a Cloud Day: Chef: The Swiss Army Knife of Cloud Infrastructure
 
Double Sync Replication
Double Sync ReplicationDouble Sync Replication
Double Sync Replication
 
Introduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStackIntroduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStack
 
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of Chef
 
Resources, Providers, and Helpers Oh My!
Resources, Providers, and Helpers Oh My!Resources, Providers, and Helpers Oh My!
Resources, Providers, and Helpers Oh My!
 
Automated Deployments with Ansible
Automated Deployments with AnsibleAutomated Deployments with Ansible
Automated Deployments with Ansible
 
Kafkaesque days at linked in in 2015
Kafkaesque days at linked in in 2015Kafkaesque days at linked in in 2015
Kafkaesque days at linked in in 2015
 
Empowering developers to deploy their own data stores
Empowering developers to deploy their own data storesEmpowering developers to deploy their own data stores
Empowering developers to deploy their own data stores
 
Chef ignited a DevOps revolution – BK Box
Chef ignited a DevOps revolution – BK BoxChef ignited a DevOps revolution – BK Box
Chef ignited a DevOps revolution – BK Box
 
OSDC 2014: Colin Charles - Automated MySQL failover with MHA: getting started...
OSDC 2014: Colin Charles - Automated MySQL failover with MHA: getting started...OSDC 2014: Colin Charles - Automated MySQL failover with MHA: getting started...
OSDC 2014: Colin Charles - Automated MySQL failover with MHA: getting started...
 
Spark Summit Europe: Building a REST Job Server for interactive Spark as a se...
Spark Summit Europe: Building a REST Job Server for interactive Spark as a se...Spark Summit Europe: Building a REST Job Server for interactive Spark as a se...
Spark Summit Europe: Building a REST Job Server for interactive Spark as a se...
 
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
 

Similar to SaltStack Advanced Concepts

[TechTalks] Learning Configuration Management with SaltStack (Advanced Concepts)
[TechTalks] Learning Configuration Management with SaltStack (Advanced Concepts)[TechTalks] Learning Configuration Management with SaltStack (Advanced Concepts)
[TechTalks] Learning Configuration Management with SaltStack (Advanced Concepts)Blazeclan Technologies Private Limited
 
OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl
OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl
OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl OpenNebula Project
 
Monitoring of OpenNebula installations
Monitoring of OpenNebula installationsMonitoring of OpenNebula installations
Monitoring of OpenNebula installationsNETWAYS
 
Rock Solid Sametime for High Availability
Rock Solid Sametime for High AvailabilityRock Solid Sametime for High Availability
Rock Solid Sametime for High AvailabilityGabriella Davis
 
Understanding salt modular sub-systems and customization
Understanding salt   modular sub-systems and customizationUnderstanding salt   modular sub-systems and customization
Understanding salt modular sub-systems and customizationjasondenning
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudyJohn Adams
 
Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...SaltStack
 
Connections install in 45 mins
Connections install in 45 minsConnections install in 45 mins
Connections install in 45 minsSharon James
 
OpenWest 2014-05-10 Where's the Waldo, SaltStack Proxy Minions
OpenWest 2014-05-10 Where's the Waldo, SaltStack Proxy MinionsOpenWest 2014-05-10 Where's the Waldo, SaltStack Proxy Minions
OpenWest 2014-05-10 Where's the Waldo, SaltStack Proxy Minionscroldham
 
Pluk2013 bodybuilding ratheesh
Pluk2013 bodybuilding ratheeshPluk2013 bodybuilding ratheesh
Pluk2013 bodybuilding ratheeshRatheesh Kaniyala
 
A Tale of Two Workflows - ChefConf 2014
A Tale of Two Workflows - ChefConf 2014A Tale of Two Workflows - ChefConf 2014
A Tale of Two Workflows - ChefConf 2014Pete Cheslock
 
Configuration Management and Salt
Configuration Management and SaltConfiguration Management and Salt
Configuration Management and Salt55020
 
How Percolate uses CFEngine to Manage AWS Stateless Infrastructure
How Percolate uses CFEngine to Manage AWS Stateless InfrastructureHow Percolate uses CFEngine to Manage AWS Stateless Infrastructure
How Percolate uses CFEngine to Manage AWS Stateless InfrastructurePercolate
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQLKonstantin Gredeskoul
 
Chirp 2010: Scaling Twitter
Chirp 2010: Scaling TwitterChirp 2010: Scaling Twitter
Chirp 2010: Scaling TwitterJohn Adams
 
Practical Cloud & Workflow Orchestration
Practical Cloud & Workflow OrchestrationPractical Cloud & Workflow Orchestration
Practical Cloud & Workflow OrchestrationChris Dagdigian
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Tomas Doran
 
London Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben Coughlan
London Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben CoughlanLondon Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben Coughlan
London Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben CoughlanBen Coughlan
 

Similar to SaltStack Advanced Concepts (20)

[TechTalks] Learning Configuration Management with SaltStack (Advanced Concepts)
[TechTalks] Learning Configuration Management with SaltStack (Advanced Concepts)[TechTalks] Learning Configuration Management with SaltStack (Advanced Concepts)
[TechTalks] Learning Configuration Management with SaltStack (Advanced Concepts)
 
OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl
OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl
OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl
 
Monitoring of OpenNebula installations
Monitoring of OpenNebula installationsMonitoring of OpenNebula installations
Monitoring of OpenNebula installations
 
Rock Solid Sametime for High Availability
Rock Solid Sametime for High AvailabilityRock Solid Sametime for High Availability
Rock Solid Sametime for High Availability
 
Salt at school
Salt at schoolSalt at school
Salt at school
 
Understanding salt modular sub-systems and customization
Understanding salt   modular sub-systems and customizationUnderstanding salt   modular sub-systems and customization
Understanding salt modular sub-systems and customization
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudy
 
Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...
 
Connections install in 45 mins
Connections install in 45 minsConnections install in 45 mins
Connections install in 45 mins
 
OpenWest 2014-05-10 Where's the Waldo, SaltStack Proxy Minions
OpenWest 2014-05-10 Where's the Waldo, SaltStack Proxy MinionsOpenWest 2014-05-10 Where's the Waldo, SaltStack Proxy Minions
OpenWest 2014-05-10 Where's the Waldo, SaltStack Proxy Minions
 
Pluk2013 bodybuilding ratheesh
Pluk2013 bodybuilding ratheeshPluk2013 bodybuilding ratheesh
Pluk2013 bodybuilding ratheesh
 
A Tale of Two Workflows - ChefConf 2014
A Tale of Two Workflows - ChefConf 2014A Tale of Two Workflows - ChefConf 2014
A Tale of Two Workflows - ChefConf 2014
 
Configuration Management and Salt
Configuration Management and SaltConfiguration Management and Salt
Configuration Management and Salt
 
How Percolate uses CFEngine to Manage AWS Stateless Infrastructure
How Percolate uses CFEngine to Manage AWS Stateless InfrastructureHow Percolate uses CFEngine to Manage AWS Stateless Infrastructure
How Percolate uses CFEngine to Manage AWS Stateless Infrastructure
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL
 
Chirp 2010: Scaling Twitter
Chirp 2010: Scaling TwitterChirp 2010: Scaling Twitter
Chirp 2010: Scaling Twitter
 
Fish Cam.pptx
Fish Cam.pptxFish Cam.pptx
Fish Cam.pptx
 
Practical Cloud & Workflow Orchestration
Practical Cloud & Workflow OrchestrationPractical Cloud & Workflow Orchestration
Practical Cloud & Workflow Orchestration
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)
 
London Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben Coughlan
London Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben CoughlanLondon Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben Coughlan
London Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben Coughlan
 

More from Vishal Biyani

Gophercon 2018: Kubernetes api golang
Gophercon 2018: Kubernetes api golangGophercon 2018: Kubernetes api golang
Gophercon 2018: Kubernetes api golangVishal Biyani
 
Serverless Summit India 2017: Fission
Serverless Summit India 2017: FissionServerless Summit India 2017: Fission
Serverless Summit India 2017: FissionVishal Biyani
 
Kubernetes 101 Workshop
Kubernetes 101 WorkshopKubernetes 101 Workshop
Kubernetes 101 WorkshopVishal Biyani
 
Serverless Pune meetup 3
Serverless Pune meetup 3Serverless Pune meetup 3
Serverless Pune meetup 3Vishal Biyani
 
Container Conf 2017: Rancher Kubernetes
Container Conf 2017: Rancher KubernetesContainer Conf 2017: Rancher Kubernetes
Container Conf 2017: Rancher KubernetesVishal Biyani
 
Serverless Pune Meetup 1
Serverless Pune Meetup 1Serverless Pune Meetup 1
Serverless Pune Meetup 1Vishal Biyani
 
Setting up Kubernetes with tectonic
Setting up Kubernetes with tectonicSetting up Kubernetes with tectonic
Setting up Kubernetes with tectonicVishal Biyani
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to KubernetesVishal Biyani
 
Learning puppet chapter 3
Learning puppet chapter 3Learning puppet chapter 3
Learning puppet chapter 3Vishal Biyani
 
Learning puppet chapter 2
Learning puppet chapter 2Learning puppet chapter 2
Learning puppet chapter 2Vishal Biyani
 
Learning Puppet Chapter 1
Learning Puppet Chapter 1Learning Puppet Chapter 1
Learning Puppet Chapter 1Vishal Biyani
 
Using CI for continuous delivery Part 3
Using CI for continuous delivery Part 3Using CI for continuous delivery Part 3
Using CI for continuous delivery Part 3Vishal Biyani
 
Using CI for continuous delivery Part 2
Using CI for continuous delivery Part 2Using CI for continuous delivery Part 2
Using CI for continuous delivery Part 2Vishal Biyani
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Vishal Biyani
 
Using CI for continuous delivery Part 4
Using CI for continuous delivery Part 4Using CI for continuous delivery Part 4
Using CI for continuous delivery Part 4Vishal Biyani
 

More from Vishal Biyani (17)

Gophercon 2018: Kubernetes api golang
Gophercon 2018: Kubernetes api golangGophercon 2018: Kubernetes api golang
Gophercon 2018: Kubernetes api golang
 
Serverless Summit India 2017: Fission
Serverless Summit India 2017: FissionServerless Summit India 2017: Fission
Serverless Summit India 2017: Fission
 
Kubernetes 101 Workshop
Kubernetes 101 WorkshopKubernetes 101 Workshop
Kubernetes 101 Workshop
 
Serverless Pune meetup 3
Serverless Pune meetup 3Serverless Pune meetup 3
Serverless Pune meetup 3
 
Container Conf 2017: Rancher Kubernetes
Container Conf 2017: Rancher KubernetesContainer Conf 2017: Rancher Kubernetes
Container Conf 2017: Rancher Kubernetes
 
Serverless Pune Meetup 1
Serverless Pune Meetup 1Serverless Pune Meetup 1
Serverless Pune Meetup 1
 
Setting up Kubernetes with tectonic
Setting up Kubernetes with tectonicSetting up Kubernetes with tectonic
Setting up Kubernetes with tectonic
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Learning puppet chapter 3
Learning puppet chapter 3Learning puppet chapter 3
Learning puppet chapter 3
 
Learning puppet chapter 2
Learning puppet chapter 2Learning puppet chapter 2
Learning puppet chapter 2
 
Learning Puppet Chapter 1
Learning Puppet Chapter 1Learning Puppet Chapter 1
Learning Puppet Chapter 1
 
Mulesoft cloudhub
Mulesoft cloudhubMulesoft cloudhub
Mulesoft cloudhub
 
Dell boomi
Dell boomiDell boomi
Dell boomi
 
Using CI for continuous delivery Part 3
Using CI for continuous delivery Part 3Using CI for continuous delivery Part 3
Using CI for continuous delivery Part 3
 
Using CI for continuous delivery Part 2
Using CI for continuous delivery Part 2Using CI for continuous delivery Part 2
Using CI for continuous delivery Part 2
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1
 
Using CI for continuous delivery Part 4
Using CI for continuous delivery Part 4Using CI for continuous delivery Part 4
Using CI for continuous delivery Part 4
 

Recently uploaded

Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 

Recently uploaded (20)

Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 

SaltStack Advanced Concepts

  • 2. www.vishalbiyani.com About Me Vishal Biyani is a DevOps engineer at large. In his past stints he has done Java development to operations for enterprise systems. Current interests around Go, Docker, Mesos and plenty of other stuff. Scribbles at www.vishalbiyani.com. Other interests around reading, movies and bit of photography. Latest fascination is to build a DIY Satellite and launch it.
  • 3. www.vishalbiyani.com Quick Poll • How many know anyone of Puppet, Chef, Ansible or Salt • How many know Salt? • WHat problems have you faced in Puppet/Chef/Ansible?
  • 4. www.vishalbiyani.com Agenda • Overview of Basics & some Debugging Techniques • Peer Communication in Salt • Events, Orchestration & Reactors • Mine • Beacons • Multi-master & Syndic • Basic Salt Cloud You can checkout the project at https://github.com/vishal-biyani/saltstack-cluster - this is a working Salt server+minion setup and has some of examples in today’s talk. Feel free to file bugs or send pull requests to enhance. Remind me to show some exercises when you see this balloon if I forget!
  • 5. www.vishalbiyani.com OVERVIEW OF BASICS & SOME DEBUGGING TECHNIQUES
  • 6. www.vishalbiyani.com Quick Basics • Salt is CM platform based on Python language and YAML data format. Uses ZeroMQ for scalable and fast communication across large number of nodes • Typical use cases you see like any other CM platform: • Managing OS and platform stack on number of machines • Remote execution of commands (Remove all data in /temp) • Managing configuration data • Orchestration to ensure complex use cases for infrastructure/platform • Server - Agent based (Called minion-master) though you can use it like Ansible with salt-ssh module (With some limitations)
  • 7. www.vishalbiyani.com Command Line - Remote Execution •What do you want to target – all web servers for ex.? Target • We are using test module and ping function - but there are many more Module+Comman d • In our case no argument - but typically there will be some arguments ArgumentsHands on!
  • 8. www.vishalbiyani.com State, Pillar, Grains & Formula • State files is what defines what needs to be done (logic), the extension is sls • The configuration data parameters is what is stored in Pillar (data) – extension is sls. This data is stored on server and provided to target machines based on role, environment etc. • There is another type of data item – grains. This is set on individual target machines, some values are in built by Salt like os, cpu etc. and others can be custom built. • State files and Pillar+Grain data together can be used to get to desired state on target machines. • Reusable modules/playbooks are called Formula • Of course there are more components – but this is minimal to get going
  • 9. www.vishalbiyani.com Once more • Pillar data is configuration data that is sent by master to minions. • Grains data is what minions produce and provide to master about themselves.
  • 10. www.vishalbiyani.com (Some) Development & Debugging Techniques • When you are developing a piece of logic for certain target (Let’s say for app-server), go to that machine and run “sudo salt-call state.highstate” – this allowes better debugging. Yon always add “–l debug” for much more information. • “state.show_top” can be used to show what does the top state look like for a specific node instead of guessing. • In jinja files to inspect variables you can use “ {{ var_name|pprint }}” – based on type and value of object, you will know what is going wrong. (I am not python guy – is there a better way?) • For watching events coming to master you can use command “salt-run state.event pretty=True” – this will show what data is coming. What happens to event is purely visible only in debug logs – so enable that in master/minion config. Are there more techniques I might be missing? Hands on!
  • 12. www.vishalbiyani.com Peer Communication 1/2 Use case • A minion wants to know some details or run some command on other minions • Communicate between minions for some event coordination • Get information of other minions for making certain decisions Before • If you run publish command - it won't work out of the box, Salt by default does not enable this:
  • 13. www.vishalbiyani.com Peer Communication 2/2 After • You have to enable peer publishing for specific/all modules and minions to enable peer communication. Setting change in master config file: • The output after enabling peer communication for previous command: Security? • What if any minions runs destructive commands using 'cmd.run' module on other minions? Hands on!
  • 15. www.vishalbiyani.com Event, Reactor and Orchestration • Use case • Events can be sent as part of workflow (Custom events), for example let’s say a new node is up and needs to be added to load balancer config – so you can send an event. Internally Salt uses events extensively. • Reactor is what listens to those events and can invoke another workflow (Call a SLS file or a formula) etc. You can filter for certain types of events, tags etc. • Salt internal events can also be listened to and workflows initiated when an event occurs. • You can do everything in Reactor that you would do in a normal formula/SLS call – so fairly complex states can be called as an reaction to certain event. • You can also pass data with events – which can be retrieved in reactor execution
  • 16. www.vishalbiyani.com SEND AND RECEIVE EVENT • To send an event through an SLS file: • To listen to an event and to decide what it should do, you need to add reactor.conf in /etc/salt/master.d (Or inside master config file): The tag of the event being sent You can send data along with event and data can be dynamic as seen from some commands! This config only tells which event to expect and what action to invoke – like a router sort of. Resides in
  • 17. www.vishalbiyani.com Processing The Event The data is within data – hence you see data.data to get data we just passed We are calling local state - meaning state of that minion. You can call highstate or other thin Targeting only certain minions based on data received from event! Passing event data to the SLS so that it can be used there to make more decusions Hands on!
  • 18. www.vishalbiyani.com Some learnings from reactor • Debugging reactor is difficult - enabling debug mode on master as well minion is your best bet • Be careful of filters you are applying in event sending/reactor processing and changing state of your machines. Else events will be filtered and you will wonder what happened? • Start with a very basic model of working reactor without any conditions - test it and then grow it. • Ask on Salt-Users google group - the community is helpful! • KISS - Keep It Simple Stupid
  • 19. www.vishalbiyani.com SALT MINE Salina Turda, Romania (https://en.wikipedia.org/wiki/Salina_Turda) is one of most visited Salt mine with 2M+ visitors so far! We are going to talk about a virtual version of the same ;)
  • 20. www.vishalbiyani.com Salt Mine • Mine is like grains – but much more real time. Grains is more or less static data about a minion. Mine can be used for things which are expected to change over time about a machine/instance and are provided by machine. • Mine is also a replacement for peer publishing – remember? (Peer publishing is relatively slow, because it has to reach all nodes and gather data. So in that sense mine is like a already built data for certain things you need instead of running publish) Mine functions are run every X duration and data is sent to Master Master stored only latest data of every mine execution A minion which needs data about other minions can get using mine.get with appropriate filters etc.
  • 21. www.vishalbiyani.com Salt mine - working Schedule at which mine functions shoud be run (Goes on minion) Mine function definition which goes inside Pillar! Running mine.get will give you info you need! Hands on!
  • 23. www.vishalbiyani.com Salt Beacons • Salt beacon can “watch” certain things and fire events (What you can watch is limited things like service, user login, ps etc.). • These events can be caught by event bus and can be used to invoke reactor actions. • Some inbuilt actions are already provided - for example clean up the PID file if the service goes down (In case someone runs kill -9 or service dies for some reason) • Beacon config can be done in minion config file or via Pillar (We will use pillar). • We will only watch event - not write reactor for now (Command to watch events: sudo salt-run state.event pretty=true ) Hands on!
  • 25. www.vishalbiyani.com Salt Syndic, Multimaster • We won’t cover much code in this and next topic, mostly functional capabilities • Multi master • One minion can connect to multiple masters and all of them can be ‘hot’ • On all masters, keys for minions must be accepted separately • If the setting is set to failover - then minions connect to first master that response in list • Syndic: • Salt syndics are basically masters but responsible for only a part of infrastructure. That way you can set up multiple syndics to split load. • Syndic eventually point to a master of master and is in sync • Both of above topologies can be mixed to achieve a highly scalable, highly available and fault tolerant infrastructure.
  • 27. www.vishalbiyani.com Salt Cloud • Salt cloud enables you provisions systems and bring them under Salt management immediately. • Roughly on config side: • Define a provider (LIke Rackspace, AWS etc.) • Query provider to get options of region, images etc. • Create profiles with above information • Use profiles to create instances and query, destroy etc • Map files are used to create/destroy machines at scale. Map files are basically multiple machine information combined into a cluster like definition • You can define grains etc. when creating instances so you can manage them as per identity.