Comparisons =========== Confused about how Ansible fits in? Here's a comparison with some common tools. Accuracy is important, so corrections are VERY welcome if we've got something wrong. For space reasons, we can't list everybody's favorite management tool.
Ansible | Puppet | Chef | Func | Capistrano | |
Purpose | Config, Deployment, Ad-Hoc | Config, Deployment | Config, Deployment | Ad-Hoc | Deployment |
Config Language | Simple YAML format | Custom DSL | Ruby code | None | None |
Config Language Style | Very simple, not expressive | Very rich & expressive | Very rich & expressive | None | None |
Config Ordering | Simply ordered, with notifiers | Strict dependency DAG | Simply ordered | None | Simply ordered |
Communication | SSH push | SSL pull or push trigger | SSL pull or push trigger(?) | SSL push | SSH |
Daemons Required? | no | yes | yes | yes | no |
Database Required | no | yes | yes | no | no |
Inventory Features | planned | yes | yes? | some | no |
Message Bus Required | no | yes | yes | no | no |
Implemented In | Python | Ruby | Ruby, Erlang | Python | Ruby |
Extensible In | Anything | Ruby | Ruby | Python | Ruby |
Codebase Size | Small | Large | Large | Medium | Medium |
Module Support | Emerging | Wide/Established | Wide/Established | Medium/Established | Poor |
Users Targeted | Sysadmins, developers, QA, web admins | Sysadmins | Sysadmins, web admins | Sysadmins, developers | Web admins |
Can Easily Build Applications On It | Yes | No | No | Yes | No |
Parallelism & Scaling Tech | Fork/Merge | Add Servers / Staged Commands / No Server | Adding More Erlang | Fork/Merge | No |
Delegated Hierachies | No | No | No | Yes | No |