Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Switching from Puppet to Ansible


Published on

A small talk I gave at the Austin Ansible meetup.

Switching from Puppet to Ansible

  1. 1. Switching from Puppet to Ansible Dennis “the awesome” Rowe WP Engine
  2. 2. Little about me • Done some Chef • Done some Puppet (last gig) • Now doing some Ansible
  3. 3. Love one another • Emacs vs. Vi • Linux vs. Windows • Puppet vs. Chef • Not this talk
  4. 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. 5. Ansible • Founded in 2012 by Michael DeHaan • Orchestration engine (manage nodes via SSH) • Written in Python with configuration done using yaml
  6. 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. 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. 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. 9. Language - Ansible • YAML • YAML • Human readable • Machine readable • Not what most people think of as a programming language • Easier to understand initially
  10. 10. Language - The Bad • The underlying language implementation leaks via the templating system. • Both Python and Ruby suck at threading. • Rant rant rant
  11. 11. Puppet • Barrier to entry is higher • Large ecosystem • PuppetDB, MCollective, Hiera • Larger pool of people with experience
  12. 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. 13. General Thoughts • Bad code can be written in any language • Configuration management is more of an art