No description
Find a file
Serge van Ginderachter 173586b871 Ensure plugin_loader.all() only loads one instance
by ensuring all basedirs, plugin paths and extra
paths are handled as absolute paths and are checked
to not add any doubles.

This fixes the corner case where e.g. the user has
an additional plugin path configured to a dir
relative to his playbooks or inventory location,
which also matches the  _plugin subdir relative to
one of the basedirs in the play.

For most plugins this doesn't show as an obvious issue
except for callback_plugins, which might fire more
than once. Other plugins (inventory and template
plugins) might unnecessarily be ran twice.

e.g. ansible.cfg has
callback_plugins   = ./plays/callback_plugins
and plays/ contains a playbook file:
.
├── ansible.cfg
├── inventory
└── plays
    ├── callback_plugins
    │   └── timestamp.py
    └── site.yml

modified:   lib/ansible/utils/plugins.py
2013-08-12 22:17:53 +02:00
bin Misc style fixes. 2013-08-10 17:59:05 -04:00
docs/man Merge pull request #3094 from sfromm/issue2464-redux 2013-06-03 09:01:39 -07:00
docsite Document facts.d 2013-08-12 09:49:54 -04:00
examples Add a nocolor setting to ansible.cfg 2013-08-08 21:37:33 +05:30
hacking Fixup docs formatting. 2013-08-06 10:53:56 -04:00
lib/ansible Ensure plugin_loader.all() only loads one instance 2013-08-12 22:17:53 +02:00
library fixing problem causing docs not to build 2013-08-12 12:17:34 -05:00
packaging Proper support for RHEL/CentOS 5 (the only thing it needs now is to call python26) 2013-07-23 10:45:08 -07:00
plugins Merge pull request #3797 from mscherer/openshift_github 2013-08-11 13:25:07 -07:00
test Remove some test prints 2013-08-10 17:37:04 -04:00
.gitignore Update .gitignore 2013-06-10 15:46:16 -04:00
CHANGELOG.md update changelog 2013-08-11 16:26:12 -04:00
CONTRIBUTING.md Fix some typos discovered during casual reading 2013-08-11 18:41:23 +05:30
COPYING
Makefile Do not set RPMDIST to '%dist' when dist is not set by the distribution. 2013-06-02 13:27:04 -04:00
MANIFEST.in Add some docs/examples 2012-08-14 13:05:44 -04:00
README.md Use new site URLs in README 2013-06-17 22:20:31 -06:00
RELEASES.txt Update releases 2013-07-05 22:10:34 -04:00
setup.py fix package mentioned twice in setup.py 2013-05-15 21:02:53 +02:00
VERSION Version bump and assorted things to start new development version. 2013-06-10 15:34:52 -04:00

Ansible

Ansible is a radically simple configuration-management, deployment, task-execution, and multinode orchestration framework.

Read the documentation and more at http://ansibleworks.com/

Many users run straight from the development branch (it's generally fine to do so), but you might also wish to consume a release. You can find instructions on http://ansibleworks.com/docs/gettingstarted.html for a variety of platforms. If you want a tarball of the last release, go to http://ansibleworks.com/releases/ and you can also install with pip (though that will bring in some optional binary dependencies you normally do not need).

Design Principles

  • Dead simple setup
  • Super fast & parallel by default
  • No server or client daemons; use existing SSHd
  • No additional software required on client boxes
  • Modules can be written in ANY language
  • Awesome API for creating very powerful distributed scripts
  • Be usable as non-root
  • The easiest config management system to use, ever.

Get Involved

Branch Info

  • Releases are named after Van Halen songs.
  • The devel branch corresponds to the release actively under development.
  • Various release-X.Y branches exist for previous releases
  • We'd love to have your contributions, read "CONTRIBUTING.md" for process notes.

Author

Michael DeHaan -- michael@ansibleworks.com

AnsibleWorks