Fans

208

Jobs

0

Votes

136

Hacker News, Reddit, Stack Overflow Stats

GitHub Stats

Description

What is
Ansible?

Ansible is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments or zero downtime rolling updates. Ansible’s goals are foremost those of simplicity and maximum ease of use.

What is
Fabric?

Fabric is a Python (2.5-2.7) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.
It provides a basic suite of operations for executing local or remote shell commands (normally or via sudo) and uploading/downloading files, as well as auxiliary functionality such as prompting the running user for input, or aborting execution.

What is
Salt?

Salt is a new approach to infrastructure management. Easy enough to get running in minutes, scalable enough to manage tens of thousands of servers, and fast enough to communicate with them in seconds.
Salt delivers a dynamic communication bus for infrastructures that can be used for orchestration, remote execution, configuration management and much more.

Want advice about which of these to choose?Ask the StackShare community!

Reviews of Ansible, Fabric, and Salt

spareslant

SaltStack looks promising

February 19, 2015 15:08

For automating deployment or system admin tasks, Shell/Perl are more than enough. Specially Perl one liners, that I use heavily, even to make changes in xml files.
But quite often the need is to just check the state of system and run scripts without fear. Thats where I actually needed some scripting language with "state mechanism" associated with it.
Salt provided me above similar kind of experience. I tested salt first on a small scenario. Installation of 60 RPMS on a machine.
I was pleased that I could achieve that in around 25 lines of code using salt. And eventually I was also able to keep data and code separate. This was another plus point. henceforth I was able to use salt to deploy a large potion Datacenter (apps deployment).
I am still working towards orchestration and finding it quite promising. The use of pure python whenever needed to deal with more complex scenario is awesome.

Ease of Use
Documentation
Reliability
Support

How developers use Ansible vs Fabric vs Salt

Ansible is the deployment tool for people who don't like deployment tools. It's close to scripting, doesn't pollute your servers with agents or centralized servers, and just makes immediate sense. The entire stack at Cloudcraft.co is orchestrated by Ansible. What does that mean? Beyond the obvious of installing packages and configuring services, Ansible coordinates all the machines into a working deployment: It adds API servers to the loadbancer pool, opens ports on the DB server for the backend servers to connect, gracefully upgrades services in a rolling fashion for zero-downtime deployments etc. And it's so easy to use, it's easier to use than doing things by hand, meaning it's a deployment tool you'll actually use every time!

All of our servers are provisioned by Ansible, with no manual provisioning involved. This lets us easily roll out new servers, with no chance for human error when configuring the servers. We use the same code to provision local development environments on Vagrant, which eliminates configuration discrepancies between development and production.

When it comes to provisioning tens to hundreds of servers, you need a tool that can handle the load, as well as being extremely customisable. Fortunately, Salt has held that gauntlet for us consistently through any kind of issue you can throw at it.