1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
Find a file
James Cammarata 9a401e73a6 Adding support for role dependencies.
Fixes #3686

Dependencies are enabled by adding a new directory/file named
meta/main.yml to the role. The format of the dependencies are:

dependencies:
- { role: foo, x: 1, y: 2 }
- { role: bar, x: 3, y: 4 }
...

Dependencies inherit variables as they are seen at the time of the
dependency inclusion. For example, if foo(x=1, y=2) has a dependency
on bar(x=3,z=4), then bar will have variables (x=3,y=2,z=4).

Different roles can have dependencies on the same role, and this
variable inheritence allows for the reuse of generic roles quite easily.
For example:

Role 'car' has the following dependencies:
dependencies:
  - { role: wheel, n: 1 }
  - { role: wheel, n: 2 }
  - { role: wheel, n: 3 }
  - { role: wheel, n: 4 }

Role 'wheel' has the following dependencies:
dependencies:
- { role: tire }
- { role: brake }

The role 'car' is then used as follows:
- { role: car, type: honda }

And tasks/main.yml in each role simply contains the following:
- name: {{ type }} whatever {{ n }}
  command: echo ''

TASK: [honda tire 1]
TASK: [honda brake 1]
TASK: [honda wheel 1]
TASK: [honda tire 2]
TASK: [honda brake 2]
TASK: [honda wheel 2]
TASK: [honda tire 3]
TASK: [honda brake 3]
TASK: [honda wheel 3]
TASK: [honda tire 4]
TASK: [honda brake 4]
TASK: [honda wheel 4]
TASK: [I'm a honda]  <- (this is in roles/car/tasks/main.yml)
2013-08-15 09:29:51 -05: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 Enable error_on_undefined_vars by default 2013-08-15 09:28:34 -05:00
hacking Fixup docs formatting. 2013-08-06 10:53:56 -04:00
lib/ansible Adding support for role dependencies. 2013-08-15 09:29:51 -05:00
library Cleaning up of apt_repository module and removing wget parts 2013-08-13 16:11:03 -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 Enable error_on_undefined_vars by default 2013-08-15 09:28:34 -05:00
CONTRIBUTING.md Fix some typos discovered during casual reading 2013-08-11 18:41:23 +05:30
COPYING license file should be in source tree 2012-03-15 20:24:22 -04:00
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