This post will serve as an aide-mémoire of the current state of Salt, a python framework that aims to replace Chef for provisioning and Fabric for interactive runs. Of course, things are changing quickly and are probably already wrong at the time of your reading. YMMV ;)

Our current deployment infrastructure relies on Fabric + a Chef library to extract the information about what to deploy where. Fabric is mostly a stateful ssh multiplexer for us. Because we deploy our application on all servers of our grid, the fact that fabric forks a process per server (this can be changed, but can make deploys slightly slower) can be a bit of pain, sometimes. Also I was not satisfied with the way we log stuff when running Fabric (we need to fetch all output and reassemble it to store it in a database for further review).

Salt promises it can replace Chef and Fabric by being more powerful (than Fabric) and much easier to understand (than a ruby based DSL).

Documentation

Salt documentation is extensive. There is a lot of documentation to read and understand as Salt manipulates concepts which are different from the usual stuff you can read. At first, the concept of grains, pillars, states (low, high, over) and modules will look a bit alien, but after some practice, this is a very efficient way to “mix” the provisioning and the deploy feature in a nice package.

Outside the main documentation which is generated from the source code (be careful, your installed version is probably a bit older than the online documentation), there exists a Google group and an IRC chat room. The people on the IRC are very helpful.

The whole project is hosted on Github and the maintainer of the project is extremely responsive and nice.