Chef versus Puppet versus Ansible versus SaltStack
Will be replaced with the actual cover slide
Meet Tim, a system administrator
When a server fails, Tim is responsible for
putting it back to its working state
When a server fails, Tim is responsible for
putting it back to its working state
But, what when multiple servers fail?
That’s what we have
configuration
management tools for!
With these tools, I can fix
all servers in a matter of
seconds
All I need to do is code my work and it will
be deployed automatically
So, which are these
tools?
Chef
Let’s get to know our contestants
Contestant 1- Chef
Introduction
Architecture
Pros and Cons
Chef ensures configurations are applied consistently in every
environment, at any scale, with infrastructure automation
Chef is an open source tool developed by Opscode written in Ruby and
Erlang
Chef is best suited for organizations that have a heterogenous
infrastructure and are looking for mature solutions
Introduction
Architecture
Pros and Cons
Introduction
Architecture
Pros and Cons
Pros Cons
• A large collection of recipes are
available
Introduction
Architecture
Pros and Cons
Pros Cons
• A large collection of recipes are
available
• Integrates well with Git which
provides a strong version control
Introduction
Architecture
Pros and Cons
Pros Cons
• A large collection of recipes are
available
• Integrates well with Git which
provides a strong version control
• A considerable amount of learning
time is required if one is not
comfortable with Ruby
Introduction
Architecture
Pros and Cons
Pros Cons
• A large collection of recipes are
available
• Integrates well with Git which
provides a strong version control
• A considerable amount of learning
time is required if one is not
comfortable with Ruby
• The main server doesn’t have much
control
Contestant 2 - Puppet
Introduction
Architecture
Pros and Cons
Puppet is a configuration management tool that supports automatic
deployment
Puppet is built in Ruby and uses DSL for writing manifests
Puppet also works well with a heterogeneous environment where the
focus is on scalability
Introduction
Architecture
Pros and Cons
Introduction
Architecture
Pros and Cons
Pros Cons
• Strong community support by Puppet
Labs
Introduction
Architecture
Pros and Cons
Pros Cons
• Strong community support by Puppet
Labs
• Well developed reporting mechanism
Introduction
Architecture
Pros and Cons
Pros Cons
• Strong community support by Puppet
Labs
• Well developed reporting mechanism
• For performing advance tasks, a
good knowledge of Ruby is required
Introduction
Architecture
Pros and Cons
Pros Cons
• Strong community support by Puppet
Labs
• Well developed reporting mechanism
• For performing advance tasks, a
good knowledge of Ruby is required
• The main server doesn’t have much
control
Contestant 3 - Ansible
Introduction
Architecture
Pros and Cons
Ansible is an IT automation tool that automates configuration
management, cloud provisioning, deployment and orchestration
The core of Ansible, playbooks, are written in YAML
Ansible works well with environments where the focus is on getting the
servers up and running quickly
Introduction
Architecture
Pros and Cons
Introduction
Architecture
Pros and Cons
Pros Cons
• Agent need not be installed on the
systems that require configuration
Introduction
Architecture
Pros and Cons
Pros Cons
• Agent need not be installed on the
systems that require configuration
• YAML is extremely easy to
understand and learn
Introduction
Architecture
Pros and Cons
Pros Cons
• Agent need not be installed on the
systems that require configuration
• YAML is extremely easy to
understand and learn
• Performance speed is often less than
other tools
Introduction
Architecture
Pros and Cons
Pros Cons
• Agent need not be installed on the
systems that require configuration
• YAML is extremely easy to
understand and learn
• Performance speed is often less than
other tools
• YAML is not as powerful as most
other languages
Contestant 4 - SaltStack
Introduction
Architecture
Pros and Cons
SaltStack is a CLI based tool that automates configuration management
and remote execution
SaltStack is Python based while the instructions are written in YAML or it’s
DSL
SaltStack is perfect for an environment with scalability and resilience as
its priority
Introduction
Architecture
Pros and Cons
Introduction
Architecture
Pros and Cons
Pros Cons
• Extremely simple usage once it’s set
up
Introduction
Architecture
Pros and Cons
Pros Cons
• Extremely simple usage once it’s set
up
• A good reporting mechanism that
allows one to easily view all
operations
Introduction
Architecture
Pros and Cons
Pros Cons
• Extremely simple usage once it’s set
up
• A good reporting mechanism that
allows one to easily view all
operations
• Setup phase is slightly tougher
Introduction
Architecture
Pros and Cons
Pros Cons
• Extremely simple usage once it’s set
up
• A good reporting mechanism that
allows one to easily view all
operations
• Setup phase is slightly tougher
• Relatively new web UI which is much
less developed as compared to other
tool
Let the race begin!
SaltStack
Server/ Client Server/ Client Server/ Client
SaltStack
Server/ Client Server/ Client Server/ Client
Language
Language
SaltStack
Server/ Client Server/ ClientServer/ Client
SaltStack
Server/ Client Server/ Client Server/ Client
SaltStack
Server/ Client Server/ Client Server/ Client
SaltStack
Server/ Client Server/ Client Server/ Client
SaltStack
Server/ Client Server/ Client Server/ Client
Communication
Communication
SaltStack
Server/ Client Server/ Client Server/ Client
So who wins?
Every tool has it’s pros and cons and each
serve specific environment requirements.
Note to instructor
Please explain the architecture of all the tools. As we have not covered SaltStack previously, here’s a brief
description on how it works.
Master- the controling system, where the admin sits
Minions- systems to be configured
State- a description of how you want the minion to be configured
Grain- the statis information about the minion. Example- CPU, OS, RAM
Pillars- The variables that could change between deployments. They state the new configurations required.
exampl- file paths, ports
The minions come with the grains, which are sent over to the master. the master checks the grains against the
pillars and state. The master then pushes the configurations onto the minions
At the end you could tell the viewers that the winner of the race depends on their requirements.
Thankyou

Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | DevOps Tools | Simplilearn