Switching from Puppet to Ansible
Click here to load reader
-
Upload
dennis -
Category
Technology
-
view
1.220 -
download
3
description
Transcript of Switching from Puppet to Ansible
Switching from Puppet to Ansible
Dennis “the awesome” Rowe WP Engine
Little about me
• Done some Chef
• Done some Puppet (last gig)
• Now doing some Ansible
Love one another
• Emacs vs. Vi
• Linux vs. Windows
• Puppet vs. Chef
• Not this talk
Puppet
• Founded in 2005 by Luke Kanies
• Client-server or standalone client
• Written in Ruby but has its own language (also called puppet)
Ansible
• Founded in 2012 by Michael DeHaan
• Orchestration engine (manage nodes via SSH)
• Written in Python with configuration done using yaml
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?
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.
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
Language - Ansible• YAML
• YAML
• Human readable
• Machine readable
• Not what most people think of as a programming language
• Easier to understand initially
Language - The Bad
• The underlying language implementation leaks via the templating system.
• Both Python and Ruby suck at threading.
• Rant rant rant
Puppet
• Barrier to entry is higher
• Large ecosystem
• PuppetDB, MCollective, Hiera
• Larger pool of people with experience
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.
General Thoughts
• Bad code can be written in any language
• Configuration management is more of an art