2. Little about me
• Done some Chef
• Done some Puppet (last gig)
• Now doing some Ansible
3. Love one another
• Emacs vs. Vi
• Linux vs. Windows
• Puppet vs. Chef
• Not this talk
4. Puppet
• Founded in 2005 by Luke Kanies
• Client-server or standalone client
• Written in Ruby but has its own language (also
called puppet)
5. Ansible
• Founded in 2012 by Michael DeHaan
• Orchestration engine (manage nodes via SSH)
• Written in Python with configuration done using
yaml
6. Agentfull - Puppet
• Puppet requires software to be installed on the
client (Ruby, at that).
• Puppet can be a pain to install in mixed
environments. Think AIX, BSD, Solaris, and others.
• More packages to keep up to date. Now you have
to update an agent on 1000 servers, and what if it
doesn’t work?
7. Agentless - Ansible
• Less boot strapping required
• Most systems come with SSHD installed
• Ansible does not require software to be installed on
the client.
• If managing a standalone host, then benefits are
less. You have to install about the same number of
bits for Puppet standalone vs. ansible run locally.
8. Language - Puppet
• In puppet, order of statements on disk does not
specify order of execution. This can be difficult for
people to understand the first time around.
• Yet another domain specific language
• Extensible in Ruby
• A lot of promise that never materialized
9. Language - Ansible
• YAML
• YAML
• Human readable
• Machine readable
• Not what most people think of as a programming
language
• Easier to understand initially
10. Language - The Bad
• The underlying language implementation leaks via
the templating system.
• Both Python and Ruby suck at threading.
• Rant rant rant
11. Puppet
• Barrier to entry is higher
• Large ecosystem
• PuppetDB, MCollective, Hiera
• Larger pool of people with experience
12. Ansible
• Use a standards based configuration language
(feel a little dirty calling it a computer language)
• SSH (everybody uses it, known quantity)
• It is new. Ansible has a great opportunity to learn
from the past mistakes of other CMs.
13. General Thoughts
• Bad code can be written in any language
• Configuration management is more of an art