Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Similar to building software, tools should be used to deploy production server updates (whether DB, website, router configurations, etc). The use of tools reduces certain types of human error (missed steps for example).

  • What tools are available for software/configuration/etc deployment (whether free or commercial)?


  • List a single tool per post
  • What part of the deployment process it performs
  • Particular advantages or disadvantages to using this tool (ie, .NET only, supports all LAMP/WAMP platforms, etc)

Don't add a tool that already exists - add comments if you have something particular to say about a given answer.



locked by HopelessN00b Dec 5 '14 at 10:17

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

closed as not constructive by voretaq7 Aug 14 '12 at 1:08

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.

This question has been closed as it is technically a "Shopping question", however much of the information it provides is still valid, and it is an excellent starting point for researching deployment and configuration management tools. – voretaq7 Aug 14 '12 at 1:11

11 Answers 11

Puppet is a more recently-written tool, written in Ruby, that is gaining ground against cfengine.

This 'answer' doesn't answer the question as the questioner requested. – jtimberman Jun 4 '09 at 6:56
We're quite happy with our use of Puppet - it has allowed us to perform the entire image-to-running system process that most require from automation/deployment tools, including migrating our previously manual and custom deployment methods. Cannot recommend it enough. Downside is that is does not (yet) handle windows boxes, but all *nix variants are covered well. – Mike Pountney Jul 3 '09 at 16:10

cfengine is the canonical example in the unix world.

It is also part of HP's Distributed Systems Administration Utilities (DSAU) and comes preconfigured for basic HP-UX use. – Mei Jul 8 '09 at 21:48

I really like cfengine 3

It can basically take care of every part of the deployment process, given the right configuration: copy files from a location, automatically use packaging system (like apt, yum) to install/update package, start/stop services, check for files/pages content.

I use it to install (or check existence of) packages, and since I'm more a Java guy, when In eed to deploy something, I download the archive from a central point, stop the Tomcat service, copy the archive in the Tomcat directory, start the service, and check that the right value can be found on a specific served page. Yes, cfengine does it all nearly by itself.

Advantages :

  • It works (that's an important feature).
  • Exists on both Linux/Unix and Windows (native)
  • Small resources usage

Disadvantages :

  • A bit difficult to use at first, the examples are a bit too complete, but tutorials are popping up all around

Even though it's a developer's tool mainly, Capistrano is a good choice too.

I'm not sure how well it's supported for Windows platforms other than it appears to work. Linux/OSX are fully supported.

You can use it to perform pretty much any operation on your deployment servers, from file updates to database backups, and user management.

Paired with a git repository, you get change management and quick and easy deployments.


Tool: Chef is a new-ish tool released in January by Opscode. It is written in Ruby and its configuration language is a pure Ruby DSL. It's a young tool under active development, but it's getting used in production by several companies.

Chef can manage your entire infrastructure, from setting up PXE boot and kickstart services, to deploying applications and managing users. It is very flexible, extensible and powerful.

Specific advantages are the pure Ruby DSL, a RESTful API, searchable node data, and a wealth of cookbooks ready to use. Because of the Ruby DSL, complex data structures and logic can be used within recipes, and along with the RESTful API, make Chef a powerful tool to program an infrastructure.


Were playing around with Fabric at the moment, it's pretty bare but along the lines of Capistrano using python.


For MS SQL Server migrations, sp_help_revlogin is invaluable for migrating users in order to carry users / SIDs / pwds over to the new box.


For windows: SCCM


We use the Shavlik suite of tools to handle patches, configuration, and auditing.

I can't think of any particular pros or cons - it works fairly well and we haven't had any real issues with it that I can recall. (That's about the best thing I can say about it - it works well enough that I don't have to think about it :)


I would like to give a big +1 to both Capistrano and Chef. Both are very good at writing specific deployment and management tasks over ssh. Puppet is interesting also, but the old adage usually holds true "Jack of all trades, master of none". Your best bet would be to find the most minimal tool for the jobs you wish to accomplish and run with it.


Not the answer you're looking for? Browse other questions tagged or ask your own question.