ANSIBLE
Radically Simple
Configuration & Deployment
Michael DeHaan
Slide 2
Slide 2 text
PREPARE
FOR
TRANSPORT
Slide 3
Slide 3 text
but first a little bit
about me...
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
• IBM (Storage)
• Motorola (Server/Embedded Stuff)
• Red Hat (Cobbler, 1/3 of Func, Cloud...)
• Puppet Labs (Product Mgmt)
• rPath (API, Cloud...)
• shot all photos in this presentation :)
michaeldehaan.net
Slide 6
Slide 6 text
So...
Slide 7
Slide 7 text
In the Beginning
There Was The
Command Line
Slide 8
Slide 8 text
And Everybody Wrote
Shell Scripts
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
This Was A Lot Of
Work
Slide 11
Slide 11 text
...It Got Better...
Slide 12
Slide 12 text
CFEngine
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
...Then It Got (More)
Better...
Slide 16
Slide 16 text
Puppet
Slide 17
Slide 17 text
Strong Resources
Support
Slide 18
Slide 18 text
...But Too Complex Of
A Language...
Slide 19
Slide 19 text
Chef
Slide 20
Slide 20 text
Uses Ruby To Replace
Puppet Language
Slide 21
Slide 21 text
Polarizing,
not everyone likes
Ruby
Slide 22
Slide 22 text
Both Are Very
“Configuration
Focused”
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
And also can be a pain
to write “code” for
and test
Slide 25
Slide 25 text
Hard to tell what the
scripts you write are
actually going to do...
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
and Configuration is
NOT All You Need To
Do
Slide 28
Slide 28 text
What About...
Slide 29
Slide 29 text
“Do This Now, Just
Once, Fast!”
Slide 30
Slide 30 text
No content
Slide 31
Slide 31 text
Initially, SSH Loops
Slide 32
Slide 32 text
Predates
All of the Above
Slide 33
Slide 33 text
No content
Slide 34
Slide 34 text
then pssh, etc
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
But these weren’t API
oriented enough for
some of us
Slide 37
Slide 37 text
Enter Func
(I wrote part of this)
Slide 38
Slide 38 text
No content
Slide 39
Slide 39 text
and numerous clones
Slide 40
Slide 40 text
(These Are Cool
Because You Can Build
Applications On Top Of
Them)
Slide 41
Slide 41 text
But sometimes bad
because they undo the
work of the config
system.
Slide 42
Slide 42 text
WAIT!
Slide 43
Slide 43 text
We Also Need To Push
Software Releases!!!
Slide 44
Slide 44 text
No content
Slide 45
Slide 45 text
Various Attempts...
Slide 46
Slide 46 text
Typically Liked By
Webapp Developers
Slide 47
Slide 47 text
Disliked By Sysadmins
Slide 48
Slide 48 text
(Disregard for
packaging, don’t track
deps, tools can undo
work of other tools)
Slide 49
Slide 49 text
Capistrano
Slide 50
Slide 50 text
Fabric
Slide 51
Slide 51 text
Still Complicated...
Slide 52
Slide 52 text
Very specialized
Slide 53
Slide 53 text
And Multi-Tier
Deployment?
Slide 54
Slide 54 text
Various Attempts, None
Very Good
Slide 55
Slide 55 text
No content
Slide 56
Slide 56 text
Fragile. Didn’t Learn
Lessons from Config
Tools.
Slide 57
Slide 57 text
TO REVIEW
Slide 58
Slide 58 text
No content
Slide 59
Slide 59 text
We (Apparently) Need
Three Different Classes
of Solutions:
Slide 60
Slide 60 text
(1) Configure
(2) Deploy
(3) Ad-Hoc Tasks
Slide 61
Slide 61 text
As A Result, We Are
Chained To Multiple
Automation Systems
Slide 62
Slide 62 text
No content
Slide 63
Slide 63 text
This Makes No Sense
Slide 64
Slide 64 text
No content
Slide 65
Slide 65 text
Any Way Out?
Slide 66
Slide 66 text
No content
Slide 67
Slide 67 text
DevOps tools have
become painful to use
Slide 68
Slide 68 text
No content
Slide 69
Slide 69 text
Knowing The Obscure
Idioms To Do X & Y
May Initially Seem Fun
Slide 70
Slide 70 text
Because It’s Like
Programming, Which Is
(Sometimes) Fun
Slide 71
Slide 71 text
But It’s Slow To
Implement
Slide 72
Slide 72 text
No content
Slide 73
Slide 73 text
And It’s Only Fun Until
Someone Gets Hurt
Slide 74
Slide 74 text
No content
Slide 75
Slide 75 text
HOW HAVE WE
GOTTEN INTO THIS
GIANT RABBIT
HOLE?
Slide 76
Slide 76 text
No content
Slide 77
Slide 77 text
Why Do I Need
Software Tests for My
Infrastructure?
Slide 78
Slide 78 text
I have other things to
do than support this
mess.
Slide 79
Slide 79 text
No content
Slide 80
Slide 80 text
WE NEED TO RESET
Slide 81
Slide 81 text
We Are Drowning In
Complexity
Slide 82
Slide 82 text
No content
Slide 83
Slide 83 text
I want one tool to
manage all the things.
Slide 84
Slide 84 text
Automation should not
require programming
experience.
Slide 85
Slide 85 text
I Shouldn’t Be Chained
Down By Tools That
Are Hard To Learn,
Use, & Debug
Slide 86
Slide 86 text
No content
Slide 87
Slide 87 text
Automate in English.
Slide 88
Slide 88 text
No content
Slide 89
Slide 89 text
Lock And Load
Slide 90
Slide 90 text
No content
Slide 91
Slide 91 text
It Can Still Be Fun.
Slide 92
Slide 92 text
No content
Slide 93
Slide 93 text
Simpler Tools Mean
Easier Collaboration
Slide 94
Slide 94 text
No content
Slide 95
Slide 95 text
Configuration,
Deployment,
Ad-Hoc Tasks -- All in
One Tool
Slide 96
Slide 96 text
No content
Slide 97
Slide 97 text
Idempotent Resources
(yeah, we still like
those)
Slide 98
Slide 98 text
Multi-tier Deployment
Designed For Large
Web Installations.
Slide 99
Slide 99 text
POWER.
Slide 100
Slide 100 text
No content
Slide 101
Slide 101 text
FAME. MONEY.
Slide 102
Slide 102 text
No content
Slide 103
Slide 103 text
Ok, we can’t promise
that, but we can
promise...
Slide 104
Slide 104 text
1/60 the amount of
source code
of related config tools
Slide 105
Slide 105 text
No servers or
databases to set up and
maintain
Slide 106
Slide 106 text
No daemons to fall
over
Slide 107
Slide 107 text
Extensiblity in ANY
programming/scripting
language