Use a when: clause, or make the included files tasks idempotent. On 19 August 2016 at 22:25, <[email protected]> wrote: > Short version: > Why does Ansible keep running '-include: mysql-cluster.yml' whenever it > encounters it? Can't it recognize this was already executed once? > > Long version: > I am trying to find a good way to organize Ansible scripts so that they meet > these requirements: > - Developers can run their project and not worry about running any > dependencies manually > - Have a master playbook describing our whole infrastructure (site.yml) and > not call dependencies multiple times even though they already run. > > We're running a mid size setup with site.yml that is a list of other > playbooks that we include. > # file: site.yml > # This is a top level playbook representing everything in Polaris. > # It includes subplaybooks for independent collections of modules that may > be deployed together. > > # Infrastructure > - include: cdh5.yml > - include: memcached.yml > - include: myAPI_1.yml > - include: myAPI_2.yml > > ( and so on ) > > The myAPI_1 and myAPI_2 playbook look like this: > file: myAPI_1.yml > --- > > - include: mysql-cluster.yml > > - name: Memcached - Setup > hosts: memcached > roles: > - memcached > tags: > - memcached > > - name: My API 1 - Setup > hosts: myapis > roles: > - repository > - oracle-java > - myAPIs/myAPI_1 > tags: > - myAPI_1 > > > > When running site.yml, how do I avoid calling running MySQL-cluster playbook > twice? Once included via myAPI_1, second time via myAPI_2. > For developers, I want them to be able to run myAPI_1.yml and not worry > about running any other dependencies. > > I tried doing this with TAGS, so developers would always launch site.yml > with '--tags=myAPI1' but for a large site.yml this takes a long time and > leaves a lot irrelevant logging. > > Using meta dependencies works only for roles, not playbooks. > > -- > 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/bdf52ade-9cbb-45fa-8b03-fc789aa515f7%40googlegroups.com. > For more options, visit https://groups.google.com/d/optout.
-- 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/CAK5eLPSV2P8Faz7fGcG60r91q9sjC7WSwRW9sWo-tCkk7bhgmw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
