Chef

Puppet

Ansible

SaltStack

Architecture

Client/Server

Client/Server

Client/Server

Client/Server

Ease of installation

Average

Average

Very easy

Average

Language

Procedural: specifying how to perform a task.

Declarative: specifying only what to do.

Procedural: specifying how to perform a task.

Procedural: specifying how to perform a task.

Scalability

Scalable

Scalable

Scalable

Scalable

Management

Difficult because you have to learn Ruby DSL.

Difficult because you have to learn Puppet DSL.

Very easy

Very easy

Interoperability

High

High

High

High

Availability in the cloud

Amazon

Amazon/Azure

None

None

Protocole of communicattion

Kife tool

SSL

SSH

SSH

Environnement(s)

Ubuntu, Linux, Windows, Solaris …etc.

GNU/Linux, Mac OS X et Windows.

GNU/Linux, Mac OS X and Windows.

Linux, Unix and Windows.

Strong points

-Integrates well with Git, which provides strong version control;

-A large collection of recipes is available.

-Strong community support from Puppet Labs;

-Well-developed reporting mechanism.

-There is no need to install the agent on systems that require configuration;

-YAML is extremely easy to understand and learn.

6Extremely easy to use once set up;

-A good reporting mechanism that allows easy visualization of all operations.

Weak points

-Considerable learning time is required if one is not comfortable with Ruby.

-For performing advanced tasks, a good knowledge of Ruby is required;

-The main server does not have much control.

-Execution speed is often slower than other tools;

-YAML is not as powerful as most other languages.

-The installation phase is a little more difficult;

-A relatively new web interface that is much less developed than other tools.