| Name |
Last commit
|
Last update |
|---|---|---|
| bin | ||
| docs/man | ||
| docsite | ||
| examples | ||
| hacking | ||
| lib/ansible | ||
| library | ||
| packaging | ||
| plugins | ||
| test | ||
| .gitignore | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| COPYING | ||
| MANIFEST.in | ||
| Makefile | ||
| README.md | ||
| RELEASES.txt | ||
| VERSION | ||
| setup.py |
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)
| Name |
Last commit
|
Last update |
|---|---|---|
| bin | Loading commit data... | |
| docs/man | Loading commit data... | |
| docsite | Loading commit data... | |
| examples | Loading commit data... | |
| hacking | Loading commit data... | |
| lib/ansible | Loading commit data... | |
| library | Loading commit data... | |
| packaging | Loading commit data... | |
| plugins | Loading commit data... | |
| test | Loading commit data... | |
| .gitignore | Loading commit data... | |
| CHANGELOG.md | Loading commit data... | |
| CONTRIBUTING.md | Loading commit data... | |
| COPYING | Loading commit data... | |
| MANIFEST.in | Loading commit data... | |
| Makefile | Loading commit data... | |
| README.md | Loading commit data... | |
| RELEASES.txt | Loading commit data... | |
| VERSION | Loading commit data... | |
| setup.py | Loading commit data... |