I am looking at rolling out a new configuration management tool to replace our home-grown solution. The defacto standards are Chef and Puppet, both of which are Ruby-centric (though can be used to deploy non-Ruby environment, obviously). The vast majority of our development is done in Python and our in-house deployment tools make heavy use of Fabric. Therefore I am learning towards Salt since it too is Python, even though it is not as mature as Chef or Puppet. But since I'm not familiar enough with the options, I'm finding it difficult to compare apples-to-apples.

Other than the smaller community, would I be giving up anything signifcant by using Salt rather than Puppet/Chef?


It's been six months since I posted this question. And despite it being closed, it's been viewed over 1,000 times so I thought I'd comment on my experiences.

I eventually decided on Puppet since it had a bigger community. However, it was an immensely frustrating experience, mainly due to the convoluted Puppet configuration syntax. Since I now had a frame of reference to compare the two, I recently took another look at Salt--I'm not going back. It is very, very cool. The things I like best:

  • Seamless integration of both push and pull configuration models. Puppet uses a pull model (node periodically polls server for updates) and has a sister component called Marionette for pushing changes. Both are important to me and I prefer how Salt works. Salt also executes much faster when you have a lot of nodes.

  • Configuration syntax uses YAML, which is just a simple text format that uses indentation and bullet points. You can also choose to use other configuration formats via template. This makes Salt about 10x easier to learn and maintain, in my experience.

  • Python-based. This was the biggest reason I started looking at Salt in the first place. It ended up being one of the more minor reasons I stayed. But if you're a Python shop like us, it makes it easier to develop Salt plugins.

closed as not constructive by Lucas Kauffman, Zoredache, Zypher Aug 8 '12 at 22:41

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 2
    I think the main advantage is summed up for me at least, by the fact after reading your question title my first thought was "what's salt?". – Sirex Aug 8 '12 at 22:29
  • 4
    @Sirex: If you're not familiar with Salt then how could you expect to contribute to this discussion? – jamieb Aug 8 '12 at 22:31
  • 2
    I think Sirex was making more of a statement about the relative sizes of the communities. – cjc Aug 8 '12 at 22:33
  • 1
    You have seen en.wikipedia.org/wiki/…? – Zoredache Aug 8 '12 at 22:42
  • 18
    thanks for updating the question. Personally, I find these types of questions constructive and I wish StackExchange allowed them. – MountainX Jun 25 '13 at 1:59