Role Dependencies - Only Run Tag of Dependent Role

Hello,

I’d like to have one role be dependent upon another role’s tag only. Here is what I am trying:

meta/main.yml

Ansible doesn’t support role dependency using tags. Tags are only used for executing specific tasks which can be passes from the command line.

To do what you want, you would have to define a variable in the other_role and set a when: clause on all tasks when that variable is true, or set.

That’s unfortunate. That would require me to set variables in all tasks on other_role that I would not have otherwise set, just so that I can pass a variable that triggers one task in other_role.

What you could do is group those task into a separate yml file and then include them in the main.yml:

`
include: some_var_tasks.yml
when: some_var

`

Well, I’m already doing that inside other_role; however, I’m guessing if I make other_role a dependency of this other role and pass some_var, it’s still going to try to execute all other tasks in other_role, including all other ones defined in their own yml and included in other_role main.yml

Unless you’re suggesting I somehow include this yml file that exists in other_role in the main.yml of the role that is dependent upon this task.

And to be clear, I’m trying to make this happen so that I don’t have to recreate this task in this other role.

I think I lost you now. If you could give us the role structure, dependencies and what you would like to achieve, I think it will be easier to help you out.

I was afraid of that. I’ll start fresh.

role1/
├── files
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
└── tasks
├── task1.yml
├── task2.yml
├── main.yml
└── task3.yml

role2/
├── files
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
└── tasks
├── task1.yml
├── task2.yml
├── main.yml
└── task3.yml

role2/meta/main.yml