On 21/07/2012, at 11:20 AM, Brian Gupta wrote: >> On 18/07/2012, at 8:54 AM, Marc Lucke wrote: >> >>> So I'm seeing a lot of hype around Ansible. It seems to be a compelling >>> story. I've looked around and found a lot of stories about why you would >>> use it over puppet, but not puppet over ansible. Can anyone relate >>> personal experiences or point to some interesting reading? > > On Fri, Jul 20, 2012 at 8:11 PM, Marc Lucke <m...@marcsnet.com> wrote: >> … well there you have it. No advantages. Or nobody cares about this better >> system. Or nobody knows :) >> > > Well, I am guessing most of the people on this list haven't heard of > Ansible (until now). (Other than any Orson Scott Card fans.) > > Taking a quick look the high level differences are: > > 1) Userbase/community - Puppet has a much larger userbase and > community. My belief is this is an advantage for puppet. > > 2) Larger number of modules available for use with puppet. > > 2) Ansible uses SSH to connect to the managed hosts. Pros and cons > here. Will let others argue which is "better". > > 3) DSL - Puppet has a Declarative DSL which largely separates the what > from the how. Ansible seems to mix the two in their playbooks. (Much > like Chef, but with Ansible not being Ruby specific.) I prefer a > Declarative DSL, but others may prefer alternate approaches. > > 4) Python vs Ruby - I feel Ruby is more popular in the Devops > community, and find I like the syntax better, but Python is not > necessarily a bad choice. That said, largely as a puppet user, one > doesn't have to deal with Ruby. (Nor does a Absible user have to deal > with writing Python.) This decision would be more important if you > wanted to contribute to one of the projects in question. > > 5) GPL vs Apache - DIfferent strokes for different folks. I actually > prefer GPL licensed software, but many prefer the Apache 2 license. > > 6) Push vs poll. - Ansible pushes configs to hosts where puppet > clients check in to a central server on regular intervals. (My > understanding is that ansible is somehow serverless.) > > 7) External data - Puppet supports the concept of storing ones data > separately from the code. It appears that ansible does not have a > standard method for doing so. > > 8) Built in remote command execution. Puppet relies on mcollective for > this feature, which is additional administrative overhead to setup and > maintain. However, on the flip side, I am certain that mcollective is > much more scalable than ansible. (IE: I am not using a tool that uses > ssh to manage 1000s of servers.) I can't say as a blanket statement > which is better.. If all you are managing is 10 nodes, I could see > simplicity of setup being an advantage. If you need to scale obviously > the scalable solution wins. That said, I would probably prefer to use > the scalable tool in small scenarios, so I don't have to learn two > toolchains. > > 9) Puppet manifests are historically have non-deterministic order > execution, unless dependencies are specifically declared. I think this > is the correct approach as implicit dependency graphs can be > dangerous, and lead to incomplete understanding of one's > configuration. That said, we are all used to scripts that run in > order, so this is definitely a learning curve when folks are new to > puppet. > > 10) Puppet is available in an Enterprise Edition that you can buy from > a known vendor with a full support contract. This gives many companies > warm and fuzzies. The majority of folks would say this is an advantage > for Puppet, however if one wants to be on the FLOSS bleeding edge, and > you don't have any money for software/support anyway, it might just be > a wash. > > All in all I would say that Ansible feels more like a deployment > system with some basic configuration management idioms supported. > (Basically a step from capistrano or fabric towards a full-fledged > cfg-management framework.) I'm also sure I didn't get this all right, > and missed differences, as I have never used Ansible, and quickly > skimmed the docs. > > Cheers, > Brian > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To post to this group, send email to puppet-users@googlegroups.com. > To unsubscribe from this group, send email to > puppet-users+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. >
Thanks for the input Brian. I have to say I definitely prefer procedural scripts with a predictable run order, but you can accomplish this with stages. I've yet to refactor my own code so that I can deploy an ecosystem of servers in one go rather than a few runs per server. I like your analogy that Ansible looks like a step above fabric & capistrano - that's the impression I got too. But I haven't used it either. Marc -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.