2012-10-25 14:14:34 +02:00
Ansible Resources
=================
User contributed playbooks, modules, and articles. This is a small
curated list, but growing. Everyone is encouraged to add to this
2013-04-21 18:58:06 +02:00
document, just `edit it on Github <https://github.com/ansible/ansible/blob/devel/docsite/latest/rst/contrib.rst> `_
and send a pull request!
2012-10-25 14:14:34 +02:00
Ansible Modules
2012-10-26 05:17:05 +02:00
`` ` ` ` ` ` ` ` ` ` ` ` ``
2012-10-25 14:14:34 +02:00
Ansible modules are a way of adding new client-side logic to ansible.
2013-02-16 21:28:52 +01:00
They can be written in any language. Generally our goal is to include most modules in core ("batteries included!"),
2013-02-09 19:48:28 +01:00
though a few may remain outside of core depending on use cases and implementations.
2012-10-25 14:14:34 +02:00
2012-11-19 20:18:55 +01:00
- `Official "core" ansible modules <http://ansible.cc/docs/modules.html> `_ - various
2013-02-23 22:03:43 +01:00
- `Linode <https://github.com/lextoumbourou/ansible-linode> `_ - Lex Toumbourou
2012-11-19 20:18:55 +01:00
- `zypper (bash module example) <https://github.com/jpmens/ansible-zypp> `_ - jp\_mens
- `additional provisioning-related modules <https://github.com/ansible-provisioning> `_ - jhoekx and dagwieers
- `dynamic dns updates <https://github.com/jpmens/ansible-m-dnsupdate> `_ - jp\_mens
2013-06-06 14:59:07 +02:00
- `apk-tools <http://git.alpinelinux.org/cgit/bpiotrowski/ansible-apk> `_ - Bartłomiej Piotrowski
2012-10-25 14:14:34 +02:00
2013-06-01 17:46:32 +02:00
All python modules (especially all submitted to core) should use the common "AnsibleModule" class to dramatically reduce the amount of boilerplate code required.
2013-02-09 19:48:28 +01:00
Not all modules above may take advantage of this feature. See the official documentation for more details.
2012-10-25 14:14:34 +02:00
Selected Playbooks
2012-10-26 05:17:05 +02:00
`` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ``
2012-10-25 14:14:34 +02:00
`Playbooks <http://ansible.cc/docs/playbooks.html> `_ are Ansible's
configuration management language. It should be easy to write your own
2013-06-01 17:46:32 +02:00
from scratch for most applications (we keep the language simple for EXACTLY that reason), but it can
be helpful to look at what others have done for reference and see what is possible.
The ansible-examples repo on github contains some examples of best-practices Ansible content deploying some
full stack workloads:
- `Ansible-Examples <http://github.com/ansible/ansible-examples> `_
2012-10-25 14:14:34 +02:00
2013-06-01 17:46:32 +02:00
And here are some other community-developed playbooks. Feel free to submit a pull request to the docs
to add your own.
- `edX Online <https://github.com/edx/configuration> `_ - `edX Online <http://edx.org> `_
- `Fedora Infrastructure <http://infrastructure.fedoraproject.org/cgit/ansible.git/tree/> `_ - `Fedora <http://fedoraproject.org> `_
2012-10-25 14:14:34 +02:00
- `Hadoop <https://github.com/jkleint/ansible-hadoop> `_ - jkleint
2012-11-19 20:18:55 +01:00
- `LAMP <https://github.com/fourkitchens/server-playbooks> `_ - `Four Kitchens <http://fourkitchens.com> `_
2012-12-24 06:53:52 +01:00
- `LEMP <https://github.com/francisbesset/ansible-playbooks> `_ - francisbesset
2012-11-19 20:18:55 +01:00
- `Ganglia (demo) <https://github.com/mpdehaan/ansible-examples> `_ - mpdehaan
- `Nginx <http://www.capsunlock.net/2012/04/ansible-nginx-playbook.html> `_ - cocoy
2012-10-25 14:14:34 +02:00
- `OpenStack <http://github.com/lorin/openstack-ansible> `_ - lorin
2012-11-19 20:18:55 +01:00
- `Systems Configuration <https://github.com/cegeddin/ansible-contrib> `_ - cegeddin
2012-10-25 14:14:34 +02:00
Callbacks and Plugins
2012-10-26 05:17:05 +02:00
`` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ``
2012-10-25 14:14:34 +02:00
The Ansible project has a whole repo devoted to extending ansible with
new connection types, logging/event callbacks, and inventory data
storage. Talk to Cobbler and EC2, tweak the way things are logged, or
even add sound effects.
- `Ansible-Plugins <https://github.com/ansible/ansible/tree/devel/plugins> `_
2013-06-02 17:56:12 +02:00
- `Various modules, plugins, and scripts <https://github.com/ginsys/ansible-plugins> `_ sergevanginderachter
2012-10-25 14:14:34 +02:00
Scripts And Misc
2012-10-26 05:17:05 +02:00
`` ` ` ` ` ` ` ` ` ` ` ` ` ``
2012-10-25 14:14:34 +02:00
Ansible isn't just a program, it's also an API. Here's some examples of
some clever integrations with the "Runner" and also Playbook APIs, and
integrations with other interesting pieces of software.
2012-10-26 05:17:05 +02:00
- `Ansible Vagrant plugin <https://github.com/dsander/vagrant-ansible> `_ - dsander
- `Ansible+Vagrant Tutorial <https://github.com/mattupstate/vagrant-ansible-tutorial> `_ - mattupstate -
- `virt-install <http://fedorapeople.org/cgit/skvidal/public_git/scripts.git/tree/ansible/start-prov-boot.py> `_ - skvidal
- `rebooting hosts <http://fedorapeople.org/cgit/skvidal/public_git/scripts.git/tree/ansible/host-reboot> `_ - skvidal
- `uptime (API demo) <https://github.com/ansible/ansible/blob/devel/examples/scripts/uptime.py> `_ - mpdehaan
2012-11-19 20:18:55 +01:00
- `vim snippet generator <https://github.com/bleader/ansible_snippet_generator> `_ - bleader
2012-10-25 14:14:34 +02:00
2013-02-16 21:18:42 +01:00
Blogs, Videos & Articles
`` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ``
2012-10-26 05:17:05 +02:00
- `HighScalability.com <http://highscalability.com/blog/2012/4/18/ansible-a-simple-model-driven-configuration-management-and-c.html> `_ - mpdehaan
- `ColoAndCloud.com interview <http://www.coloandcloud.com/editorial/an-interview-with-ansible-author-michael-dehaan/> `_ - mpdehaan
- `dzone <http://server.dzone.com/articles/ansible-cm-deployment-and-ad> `_ - Mitch Pronschinske
- `Configuration Management With Ansible <http://jpmens.net/2012/06/06/configuration-management-with-ansible/> `_ - jp\_mens
- `Shell Scripts As Ansible Modules <http://jpmens.net/2012/07/05/shell-scripts-as-ansible-modules/> `_ - jp\_mens
- `Ansible Facts <http://jpmens.net/2012/07/15/ansible-it-s-a-fact/> `_ - jp\_mens
- `Infrastructure as Data <http://www.capsunlock.net/2012/04/ansible-infrastructure-as-data-not-infrastructure-as-code.html> `_ - cocoy
- `Ansible Pull Mode <http://www.capsunlock.net/2012/05/using-ansible-pull-and-user-data-to-setup-ec2-or-openstack-servers.html> `_ - cocoy
- `Exploring Configuration Management With Ansible <http://palominodb.com/blog/2012/08/01/exploring-configuration-management-ansible> `_ - Palamino DB
- `You Should Consider Using SSH Based Configuration Management <http://www.lshift.net/blog/2012/07/30/you-should-consider-using-ssh-based-configuration-management> `_ - LShift Ltd
- `Deploying Flask/uWSGI, Nginx, and Supervisorctl <http://mattupstate.github.com/python/devops/2012/08/07/flask-wsgi-application-deployment-with-ubuntu-ansible-nginx-supervisor-and-uwsgi.html> `_ - mattupstate
- `Infracoders Presentation <http://www.danielhall.me/2012/10/ansible-talk-infra-coders/> `_ - Daniel Hall
2012-11-09 17:30:36 +01:00
- `Ansible - an introduction <https://speakerdeck.com/jpmens/ansible-an-introduction> `_ - jp\_mens
2013-02-10 04:46:48 +01:00
- `Using Ansible to setup complex networking - <http://exarv.nl/2013/02/using-ansible-to-setup-complex-networking/> `_ - Robert Verspuy
2013-02-16 21:18:42 +01:00
- `Video presentation to Montreal Linux <http://www.youtube.com/embed/up3ofvQNm8c> `_ - Alexandre Bourget
2013-02-16 21:54:05 +01:00
- `Provisioning CentOS EC2 Instances with Ansible <http://jpmens.net/2012/11/21/provisioning-centos-ec2-instances-with-ansible/> `_ - jp\_mens
2012-10-25 14:14:34 +02:00
Disclaimer
2012-10-26 05:17:05 +02:00
`` ` ` ` ` ` ` ``
2012-10-25 14:14:34 +02:00
Modules and playbooks here may not be using the latest in Ansible
features. When in doubt to the features of a particular version of
Ansbile, always consult `ansible.cc <http://ansible.cc> `_ and in
2012-10-26 05:17:05 +02:00
particular see `Best Practices <http://ansible.cc/docs/bestpractices.html> `_ for some tips
2012-10-25 14:14:34 +02:00
and tricks that may be useful.
Ansible is (C) 2012, `Michael DeHaan <http://twitter.com/laserllama> `_
and others and is available under the GPLv3 license. Content here is as
specified by individual contributors.