I am new to ansible and was exploring dependent roles. documentation link
What I did not come across the documentation was- where to place the requirements.yml
file.
For instance, if my site.yml
looks like this:
---
- name: prepare system
hosts: all
roles:
- role1
And, lets say
- role1 depends on role2 and role3
- role2 depends on role4 and role5
Typically, ansible-galaxy have the following structure:
└── test-role
├── defaults
│ └── main.yml
├── files
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── README.md
├── tasks
│ └── main.yml
├── templates
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
Dependencies, are added to meta/main.yml
. Assuming, role1 has dependencies marked in this file like (and likewise for role2):
dependencies:
- role: role2
- role: role3
And, I also have a requirements.yml
file which looks like:
---
- src: some git link1
version: master
name: role2
- src: some git link2
version: master
name: role3
My question:
where do I place this requirements.yml
file for role1?
I understand the requirements will need to be installed by the command,
ansible-galaxy install -r requirements.yml -p roles/
And, I can do this for role1, but how does this get automated for role2? Do the successive dependencies need to be resolved and installed manually this way, or is there something better?