# Reduce duplicate/repeated steps in playbook

**URL:** <https://forum.ansible.com/t/reduce-duplicate-repeated-steps-in-playbook/33433>\
**Category:** Ansible Project\
**Created:** [July 19, 2020, 6:58pm UTC](https://forum.ansible.com/t/reduce-duplicate-repeated-steps-in-playbook/33433 "2020-07-19T18:58:06Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pawan\_Kumar1](https://avatars.discourse-cdn.com/v4/letter/p/b782af/32.png) [@Pawan\_Kumar1](https://forum.ansible.com/u/Pawan_Kumar1)\
**Post date:** [July 19, 2020, 6:58pm UTC](https://forum.ansible.com/t/reduce-duplicate-repeated-steps-in-playbook/33433/1 "2020-07-19T18:58:06Z")

</div>

Hi ,Team

Require your help to reduce repeated steps , in the following playbook ,3 roles are common ,but 2 roles( permission.yml & reload\_base\_service.yml) variable value is different

- hosts: masters

gather\_facts: yes  
vars:

- owner: “roks”

- mode: “0644”

- base\_service: “mot-idm”  
tasks:

- include\_role:  
name: motors  
tasks\_from: “{{ item }}”  
with\_items:

- permission.yml

- reload\_base\_service.yml

- restart\_component.yaml

- hosts: organization  
gather\_facts: yes  
vars:

- owner: “taxi”

- mode: “0755”

- base\_service: “mzee-org”  
tasks:

- include\_role:  
name: motors  
tasks\_from: “{{ item }}”  
with\_items:

- permission.yml

- reload\_base\_service.yml

- restart\_component.yaml

- hosts: doxy  
gather\_facts: yes  
vars:

- owner: “matter”

- mode: “0644”

- base\_service: “rater-x”  
tasks:

- include\_role:  
name: motors  
tasks\_from: “{{ item }}”  
with\_items:

- permission.yml

- reload\_base\_service.yml

- restart\_component.yaml

Thanks

---

<div class="post-metadata">

**Author:** ![Pawan\_Kumar1](https://avatars.discourse-cdn.com/v4/letter/p/b782af/32.png) [@Pawan\_Kumar1](https://forum.ansible.com/u/Pawan_Kumar1)\
**Post date:** [July 20, 2020, 4:11pm UTC](https://forum.ansible.com/t/reduce-duplicate-repeated-steps-in-playbook/33433/2 "2020-07-20T16:11:54Z")

</div>

Hi Team

Any thoughts on reducing this repetition !!

Thanks

---

<div class="post-metadata">

**Author:** ![Gajendra\_Gaikwad1](https://avatars.discourse-cdn.com/v4/letter/g/9de053/32.png) [@Gajendra\_Gaikwad1](https://forum.ansible.com/u/Gajendra_Gaikwad1)\
**Post date:** [July 20, 2020, 7:21pm UTC](https://forum.ansible.com/t/reduce-duplicate-repeated-steps-in-playbook/33433/3 "2020-07-20T19:21:13Z")

</div>

Yes check if this logic works

1. Create a one group in inventory with all child group masters, organization and doxy  
So that you can run the restart role

2. Set the variables on group level masters, organization and doxy  
So that your role will automatically read this variables while executing

So it will be only two plays  
Remember running role sequence is in your hand

Regards  
Gg

---

<div class="post-metadata">

**Author:** ![Pawan\_Kumar1](https://avatars.discourse-cdn.com/v4/letter/p/b782af/32.png) [@Pawan\_Kumar1](https://forum.ansible.com/u/Pawan_Kumar1)\
**Post date:** [July 21, 2020, 2:57pm UTC](https://forum.ansible.com/t/reduce-duplicate-repeated-steps-in-playbook/33433/4 "2020-07-21T14:57:17Z")

</div>

Thanks Gajendra ,will test on the mentioned suggestions & revert back.

---

<div class="post-metadata">

**Author:** ![Akasurde](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/akasurde/32/230_2.png) [@Akasurde](https://forum.ansible.com/u/Akasurde)\
**Post date:** [July 21, 2020, 3:17pm UTC](https://forum.ansible.com/t/reduce-duplicate-repeated-steps-in-playbook/33433/5 "2020-07-21T15:17:06Z")

</div>

Hi Pawan, Gajendra,

You can use Anchors in YAML, like

[https://github.com/ansible-collections/vmware/blob/main/tests/integration/targets/vmware\_about\_facts/tasks/main.yml#L37](https://github.com/ansible-collections/vmware/blob/main/tests/integration/targets/vmware_about_facts/tasks/main.yml#L37)  
[https://support.atlassian.com/bitbucket-cloud/docs/yaml-anchors/](https://support.atlassian.com/bitbucket-cloud/docs/yaml-anchors/)  
[https://github.com/Akasurde/ansible-reproducers/blob/master/useful\_pbs/debug\_anchor.yml](https://github.com/Akasurde/ansible-reproducers/blob/master/useful_pbs/debug_anchor.yml)
