Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ansible

 Ansible

Ansible is an open source, model driven, configuration management, deployment, and ad-hoc task execution framework for managing Linux/Unix operating systems. http://ansible.github.com/

Michael DeHaan

March 31, 2012
Tweet

More Decks by Michael DeHaan

Other Decks in Technology

Transcript

  1. ANSIBLE
    Radically Simple
    Configuration & Deployment
    Michael DeHaan

    View Slide

  2. PREPARE
    FOR
    TRANSPORT

    View Slide

  3. but first a little bit
    about me...

    View Slide

  4. View Slide

  5. • 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

    View Slide

  6. So...

    View Slide

  7. In the Beginning
    There Was The
    Command Line

    View Slide

  8. And Everybody Wrote
    Shell Scripts

    View Slide

  9. View Slide

  10. This Was A Lot Of
    Work

    View Slide

  11. ...It Got Better...

    View Slide

  12. CFEngine

    View Slide

  13. View Slide

  14. View Slide

  15. ...Then It Got (More)
    Better...

    View Slide

  16. Puppet

    View Slide

  17. Strong Resources
    Support

    View Slide

  18. ...But Too Complex Of
    A Language...

    View Slide

  19. Chef

    View Slide

  20. Uses Ruby To Replace
    Puppet Language

    View Slide

  21. Polarizing,
    not everyone likes
    Ruby

    View Slide

  22. Both Are Very
    “Configuration
    Focused”

    View Slide

  23. View Slide

  24. And also can be a pain
    to write “code” for
    and test

    View Slide

  25. Hard to tell what the
    scripts you write are
    actually going to do...

    View Slide

  26. View Slide

  27. and Configuration is
    NOT All You Need To
    Do

    View Slide

  28. What About...

    View Slide

  29. “Do This Now, Just
    Once, Fast!”

    View Slide

  30. View Slide

  31. Initially, SSH Loops

    View Slide

  32. Predates
    All of the Above

    View Slide

  33. View Slide

  34. then pssh, etc

    View Slide

  35. View Slide

  36. But these weren’t API
    oriented enough for
    some of us

    View Slide

  37. Enter Func
    (I wrote part of this)

    View Slide

  38. View Slide

  39. and numerous clones

    View Slide

  40. (These Are Cool
    Because You Can Build
    Applications On Top Of
    Them)

    View Slide

  41. But sometimes bad
    because they undo the
    work of the config
    system.

    View Slide

  42. WAIT!

    View Slide

  43. We Also Need To Push
    Software Releases!!!

    View Slide

  44. View Slide

  45. Various Attempts...

    View Slide

  46. Typically Liked By
    Webapp Developers

    View Slide

  47. Disliked By Sysadmins

    View Slide

  48. (Disregard for
    packaging, don’t track
    deps, tools can undo
    work of other tools)

    View Slide

  49. Capistrano

    View Slide

  50. Fabric

    View Slide

  51. Still Complicated...

    View Slide

  52. Very specialized

    View Slide

  53. And Multi-Tier
    Deployment?

    View Slide

  54. Various Attempts, None
    Very Good

    View Slide

  55. View Slide

  56. Fragile. Didn’t Learn
    Lessons from Config
    Tools.

    View Slide

  57. TO REVIEW

    View Slide

  58. View Slide

  59. We (Apparently) Need
    Three Different Classes
    of Solutions:

    View Slide

  60. (1) Configure
    (2) Deploy
    (3) Ad-Hoc Tasks

    View Slide

  61. As A Result, We Are
    Chained To Multiple
    Automation Systems

    View Slide

  62. View Slide

  63. This Makes No Sense

    View Slide

  64. View Slide

  65. Any Way Out?

    View Slide

  66. View Slide

  67. DevOps tools have
    become painful to use

    View Slide

  68. View Slide

  69. Knowing The Obscure
    Idioms To Do X & Y
    May Initially Seem Fun

    View Slide

  70. Because It’s Like
    Programming, Which Is
    (Sometimes) Fun

    View Slide

  71. But It’s Slow To
    Implement

    View Slide

  72. View Slide

  73. And It’s Only Fun Until
    Someone Gets Hurt

    View Slide

  74. View Slide

  75. HOW HAVE WE
    GOTTEN INTO THIS
    GIANT RABBIT
    HOLE?

    View Slide

  76. View Slide

  77. Why Do I Need
    Software Tests for My
    Infrastructure?

    View Slide

  78. I have other things to
    do than support this
    mess.

    View Slide

  79. View Slide

  80. WE NEED TO RESET

    View Slide

  81. We Are Drowning In
    Complexity

    View Slide

  82. View Slide

  83. I want one tool to
    manage all the things.

    View Slide

  84. Automation should not
    require programming
    experience.

    View Slide

  85. I Shouldn’t Be Chained
    Down By Tools That
    Are Hard To Learn,
    Use, & Debug

    View Slide

  86. View Slide

  87. Automate in English.

    View Slide

  88. View Slide

  89. Lock And Load

    View Slide

  90. View Slide

  91. It Can Still Be Fun.

    View Slide

  92. View Slide

  93. Simpler Tools Mean
    Easier Collaboration

    View Slide

  94. View Slide

  95. Configuration,
    Deployment,
    Ad-Hoc Tasks -- All in
    One Tool

    View Slide

  96. View Slide

  97. Idempotent Resources
    (yeah, we still like
    those)

    View Slide

  98. Multi-tier Deployment
    Designed For Large
    Web Installations.

    View Slide

  99. POWER.

    View Slide

  100. View Slide

  101. FAME. MONEY.

    View Slide

  102. View Slide

  103. Ok, we can’t promise
    that, but we can
    promise...

    View Slide

  104. 1/60 the amount of
    source code
    of related config tools

    View Slide

  105. No servers or
    databases to set up and
    maintain

    View Slide

  106. No daemons to fall
    over

    View Slide

  107. Extensiblity in ANY
    programming/scripting
    language

    View Slide

  108. Get going in MINUTES

    View Slide

  109. A Really Powerful API

    View Slide

  110. View Slide

  111. A Minimal, Easy To Use
    Config Language

    View Slide

  112. View Slide

  113. Ad Hoc Task Support

    View Slide

  114. ansible clusterXYZ -a “/
    sbin/reboot -t now”

    View Slide

  115. More Time For
    Stuff That Matters

    View Slide

  116. A Simpler Path

    View Slide

  117. View Slide

  118. Results.

    View Slide

  119. ansible.github.com

    View Slide