3 ms·
I've been dabbling with three of the four for the past year. My needs are modest: 4-8 servers, plus a few dev environments. Something to simplify management, an
by guiambros 13y ago
I've been dabbling with three of the four for the past year. My needs are modest: 4-8 servers, plus a few dev environments. Something to simplify management, and have a replicable environment in the case of a server crash, migration, upgrades, etc.
I had similar experiences with Puppet and Chef. First and foremost, a steep learning curve. You spend several days learning a new DSL, concepts, available recipes, and understanding all the magic that happens behind the scenes.
The server side is also a pain. Opscode's Chef Server (free till 5 nodes) is painfully slow, and Puppet Server is rather heavy (it requires a medium EC2 instance). I tried also running only with chef-solo, but it defeats the purpose of using Chef.
Authentication can be also confusing, particularly for Puppet, with host-specific certificates, cache, etc.
I just started using Ansible last month, and it has been a pleasant surprise so far. Very easy to learn, even easier to maintain, no DSL (it's just YAML files), and extensible via Python or Bash modules. The key management is also a piece of cake: SSH keys, instead of the pain of custom certificates like Puppet.
Ansible probably isn't the best option for someone with hundreds or thousands of nodes (that's the primary market for Puppet/Chef), but seems perfect for someone that has outgrown ssh and shell scripts.
Haven't played with Salt much, but seems closer to Ansible than to Chef/Pupper.