You can try to set a condition on the whole role (you can use an empty main.yml with an inmport: ... when: common_executed is defined) based upon a fact/variable that you can define at the end of the common role, thus if it has been executed once, it will be skipped afterwards.

On 17/07/14 00:01, Ahmad Khayyat wrote:
I have a common role, which i always want executed, but only once. It is also a dependency of a few other roles that may be executed on their own (via dedicated playbooks).

The problem is: in a top-level playbook, e.g. site.yml, if the common role is listed anywhere (in site.yml or an included playbook), and is also a dependency of any other role, its tasks are executed twice.

What I'm thinking is to create a dummy role that depends on 'common', and include the dummy role in the top-level playbook for all hosts. That way, 'common' is *always* a dependency, and is always executed exactly once.

Is there a better solution?

More generally, how can I avoid executing a role more than once, whether it's listed explicitly or pulled in as a dependency? If a role is a dependency of multiple other roles, it's executed once, but if it's also listed explicitly, it is executed twice.
--
You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAM19uTCnyStH4yH9hkLg58T2MqG5Vv9CWXR1FB11%3D5hBkvXcdQ%40mail.gmail.com <https://groups.google.com/d/msgid/ansible-project/CAM19uTCnyStH4yH9hkLg58T2MqG5Vv9CWXR1FB11%3D5hBkvXcdQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

--
Email Signature | Swiss Mobility Solutions a Gemalto company
Swiss Mobility Solutions <http://www.swissmobilitysolutions.com/>


 Tony Marin

DevOps Manager

Swiss Mobility Solutions
a Gemalto Company

Mobile+34 637402568 <tel:+34%20637402568>

Office Telephone+34 966370055 <tel:+34%20966370055>

Skypeantonymcs <skype:antonymcs?call>

LocationAv. Locutor Vicente Hipólito 39
03540 Alicante Spain <https://maps.google.com/maps?q=Swiss+Mobility+Solutions+S.L,+Alicante,+Spain&hl=en&sll=37.0625,-95.677068&sspn=76.273886,78.837891&oq=swiss+mobility+so&hq=swiss+mobility+solutions+sl&hnear=Alicante,+Valencian+Community,+Spain&t=m&z=13>

Email <mailto:[email protected]> LinkedIn <http://es.linkedin.com/in/antonymcs/> Website <http://www.swissmobilitysolutions.com/>

--
You received this message because you are subscribed to the Google Groups "Ansible 
Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/53C77BEF.9060002%40swissms.ch.
For more options, visit https://groups.google.com/d/optout.

Reply via email to