* Marc Lucke <marc at marcsnet.com> [2012/07/20 20:11]: > ...well there you have it. No advantages. Or nobody cares about > this better system. Or nobody knows :) > > 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?
I've been investigating ansible over the last few weeks and I've found it to have a lot of interesting things going for it: Ansible is small, fast, lightweight, and consise, but also young, immature, and rapidly evolving. Puppet has a vast and interesting ecosystem around it, with lots of integration points with external tools; ansible, by virtue of its youth, has none of that -- yet. For example, if you want to set up a centralized dashboard to manage your ansible jobs, you need to build it from scratch[*], while with puppet, you have several mature alternates to choose from or build upon. There are also numerous examples of puppet manifests and best practices on the web, countless puppet modules freely available on puppetforge and github, and many blog posts and presentations from which to learn puppet, while ansible has basically just the mailing lists (which is fairly active), the official docs, and a few github repos of examples, but since ansible is evolving so rapidly these examples are potentially of limited value. (Michael DeHaan has done an admirable job of keeping the docs up-to-date, though.) The speed of ansible's evolution is actually my biggest concern about it right now; I don't want to get in a situation where my playbooks (ansible-speak for what puppet calls manifests and what cfengine calls promises) become outdated and need to be rewritten. (I have hit this problem with puppet, too, though; I unintentionally used several features that have been changed or deprecated as puppet evolved, especially ones involving variable scope.) Having said that, ansible is already incredibly usable and I haven't yet found anything that I'm currently doing in puppet that I cannot do in ansible. I'm using puppet to manage over 400 mixed-OS nodes in a distributed, masterless environment, and I'm not using the foreman, mcollective, puppetdb, storeconfigs, or any of those types of features, so my environment might be fairly atypical. As for why one should choose puppet over ansible, I think the deciding factors for most people will be the tool ecosystem, the developer ecosystem, and your comfort with evolving tools. I am personally of the opinion that the tools managing your infrastructure should be as mature and surprise-free as possible, since any change in those tools could cause all sorts of problems down the line; with the changes coming in puppet 3.0, I think the playing field is about level here -- ansible may be young, but Michael seems to have a very clearly defined end goal for what ansible will become, and I don't see that changing much. Puppet obviously has the lead in the tool and developer ecosystem fronts, by virtue of its maturity (as I mentioned above), so if reporting, long-term trending, and the like is a hard requirement then ansible cannot be considered. [*] I've actually got a very usable ansible dashboard setup using Jeknins, pulling playbooks and inventory lists from subversion. -- Darren Chamberlain <dar...@boston.com> -- 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.