2012-03-11 04:34:53 +01:00
|
|
|
.. image:: http://ansible.github.com/mpd_rings.jpg
|
2012-03-10 00:51:06 +01:00
|
|
|
:height: 225
|
|
|
|
:width: 300
|
|
|
|
:alt: ""
|
2012-03-10 00:29:01 +01:00
|
|
|
:target: http://photos.michaeldehaan.net/infrared/h3d850bdf#h3d850bdf
|
2012-03-11 04:34:53 +01:00
|
|
|
.. image:: http://ansible.github.com/mpd_tunnel.jpg
|
2012-03-10 00:51:06 +01:00
|
|
|
:height: 225
|
|
|
|
:width: 337
|
|
|
|
:alt: ""
|
|
|
|
:target: http://photos.michaeldehaan.net/favorites/h2428aca7#h2428aca7
|
2012-03-11 04:34:53 +01:00
|
|
|
.. image:: http://ansible.github.com/mpd_tubes.jpg
|
2012-03-10 01:13:34 +01:00
|
|
|
:height: 225
|
|
|
|
:width: 225
|
|
|
|
:alt: ""
|
|
|
|
:target: http://photos.michaeldehaan.net/ncsu/h3b63b68e#h3b63b68e
|
2012-03-07 17:35:18 +01:00
|
|
|
|
2012-03-10 00:29:01 +01:00
|
|
|
Introducing Ansible
|
|
|
|
===================
|
2012-03-07 17:35:18 +01:00
|
|
|
|
2012-03-09 20:39:29 +01:00
|
|
|
Ansible is a radically simple deployment, configuration, and command
|
|
|
|
execution framework. Other tools in this space have been too
|
|
|
|
complicated for too long, require too much bootstrapping, and have too
|
|
|
|
much learning curve. Ansible is dead simple and painless to extend.
|
|
|
|
For comparison, Puppet and Chef have about 60k lines of code.
|
|
|
|
Ansible's core is a little over 1000 lines.
|
|
|
|
|
|
|
|
Ansible isn't just for configuration -- it's also great for Ad-Hoc
|
2012-03-12 02:46:05 +01:00
|
|
|
tasks, quickly firing off commands against nodes. See :doc:`examples`.
|
2012-03-12 02:53:00 +01:00
|
|
|
|
2012-03-12 02:46:05 +01:00
|
|
|
Where Ansible excels though, is expressing complex multi-node
|
|
|
|
deployment processes, executing complex sequences of commands on
|
|
|
|
different hosts through :doc:`playbooks`.
|
2012-03-09 20:39:29 +01:00
|
|
|
|
|
|
|
Extending ansible does not require programming in any particular
|
2012-03-12 02:46:05 +01:00
|
|
|
language -- you can write :doc:`modules` as scripts or programs that return
|
2012-03-09 20:39:29 +01:00
|
|
|
simple JSON. It's also trivially easy to just execute useful shell
|
|
|
|
commands.
|
|
|
|
|
|
|
|
Why use Ansible versus something else? (Puppet, Chef, Fabric,
|
|
|
|
Capistrano, mCollective, Func, SaltStack, etc?) Ansible will have far
|
|
|
|
less code, it will be (by extension) more correct, and it will be the
|
|
|
|
easiest thing to hack on and use you'll ever see -- regardless of your
|
|
|
|
favorite language of choice.
|
|
|
|
|
|
|
|
Systems management doesn't have to be complicated. Ansible's docs
|
|
|
|
will remain short & simple, and the source will be blindingly obvious.
|
2012-03-07 17:35:18 +01:00
|
|
|
|
2012-03-11 01:48:53 +01:00
|
|
|
Architecture
|
|
|
|
````````````
|
|
|
|
|
2012-03-11 04:34:53 +01:00
|
|
|
.. image:: http://ansible.github.com/ansible_arch.jpg
|
2012-03-11 01:48:53 +01:00
|
|
|
:alt: "Architecture Diagram"
|
2012-03-11 01:57:24 +01:00
|
|
|
:width: 648
|
|
|
|
:height: 464
|
2012-03-11 01:48:53 +01:00
|
|
|
|
2012-03-07 17:35:18 +01:00
|
|
|
|
2012-03-08 19:36:47 +01:00
|
|
|
Design Goals
|
|
|
|
````````````
|
2012-03-07 17:35:18 +01:00
|
|
|
|
|
|
|
* Dead simple setup
|
|
|
|
* Super fast & parallel by default
|
2012-03-08 19:36:47 +01:00
|
|
|
* No server or client daemons; use existing SSHd out of the box
|
2012-03-07 17:35:18 +01:00
|
|
|
* No additional software required on client boxes
|
|
|
|
* Modules can be written in ANY language
|
|
|
|
* Awesome API for creating very powerful distributed scripts
|
2012-03-09 04:50:00 +01:00
|
|
|
* Be very usable as non-root
|
2012-03-07 17:35:18 +01:00
|
|
|
* Create the easiest config management system to use, ever.
|
|
|
|
|
2012-03-10 04:49:30 +01:00
|
|
|
Resources
|
|
|
|
`````````
|
2012-03-07 17:35:18 +01:00
|
|
|
|
2012-03-10 03:50:00 +01:00
|
|
|
Your ideas and contributions are welcome. We're also happy to help
|
2012-03-09 20:39:29 +01:00
|
|
|
you with questions about Ansible.
|
2012-03-08 20:07:13 +01:00
|
|
|
|
2012-03-08 19:53:48 +01:00
|
|
|
* Join the `ansible-project mailing list <http://groups.google.com/group/ansible-project>`_ on Google Groups
|
|
|
|
* Join `#ansible <irc://irc.freenode.net/#ansible>`_ on the `freenode IRC network <http://freenode.net/>`_
|
|
|
|
* Visit the `project page <https://github.com/ansible/ansible>`_ on Github
|
|
|
|
|
|
|
|
- View the `issue tracker <https://github.com/ansible/ansible/issues>`_
|
2012-03-07 18:41:53 +01:00
|
|
|
|
|
|
|
|
|
|
|
Contents
|
|
|
|
========
|
2012-03-07 17:35:18 +01:00
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 3
|
|
|
|
|
|
|
|
gettingstarted
|
|
|
|
patterns
|
2012-03-09 04:50:00 +01:00
|
|
|
examples
|
2012-03-07 17:35:18 +01:00
|
|
|
modules
|
2012-03-11 20:34:21 +01:00
|
|
|
YAMLSyntax
|
2012-03-07 17:35:18 +01:00
|
|
|
playbooks
|
|
|
|
api
|
2012-03-10 03:50:00 +01:00
|
|
|
faq
|
2012-03-07 17:35:18 +01:00
|
|
|
man
|
2012-03-08 19:53:48 +01:00
|
|
|
|
|
|
|
About the Author
|
|
|
|
````````````````
|
|
|
|
|
2012-03-10 04:58:17 +01:00
|
|
|
Ansible was originally developed by `Michael DeHaan <http://michaeldehaan.net>`_ (`@laserllama <http://twitter.com/#!/laserllama>`_), a Raleigh, NC
|
2012-03-09 20:39:29 +01:00
|
|
|
based software developer and architect. He created other popular
|
2012-03-10 04:58:17 +01:00
|
|
|
DevOps programs such as `Cobbler <http://cobbler.github.com/>`_, the popular Linux install server.
|
2012-03-09 20:39:29 +01:00
|
|
|
Cobbler is used to deploy mission critical systems all over the
|
|
|
|
planet, in industries ranging from massively multiplayer gaming, core
|
|
|
|
internet infrastructure, finance, chip design, and more. Michael also
|
2012-03-10 04:58:17 +01:00
|
|
|
helped co-author of `Func <http://fedorahosted.org/func/>`_, a precursor to Ansible, which is used to
|
2012-03-09 20:39:29 +01:00
|
|
|
orchestrate systems in lots of diverse places. He's worked on systems
|
|
|
|
software for IBM, Motorola, Red Hat's Emerging Technologies Group,
|
2012-03-10 04:58:17 +01:00
|
|
|
Puppet Labs, and rPath. Reach Michael by email `here <mailto:michael.dehaan@gmail.com>`_.
|