# Enhancement idea - passing module args in loop

**URL:** <https://forum.ansible.com/t/enhancement-idea-passing-module-args-in-loop/38558>\
**Category:** Ansible Developer\
**Created:** [October 31, 2023, 7:19pm UTC](https://forum.ansible.com/t/enhancement-idea-passing-module-args-in-loop/38558 "2023-10-31T19:19:49Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![opoplawski](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/opoplawski/32/2112_2.png) [@opoplawski](https://forum.ansible.com/u/opoplawski)\
**Post date:** [October 31, 2023, 7:19pm UTC](https://forum.ansible.com/t/enhancement-idea-passing-module-args-in-loop/38558/1 "2023-10-31T19:19:49Z")

</div>

I find myself writing this over and over again:

- template:  
&nbsp;&nbsp;&nbsp;&nbsp;src: "{{ item.src }}"  
&nbsp;&nbsp;&nbsp;&nbsp;dest: "{{ item.dest }}"  
&nbsp;&nbsp;&nbsp;&nbsp;owner: root  
&nbsp;&nbsp;&nbsp;&nbsp;group: radiusd  
&nbsp;&nbsp;&nbsp;&nbsp;mode: "0640"  
&nbsp;&nbsp;loop:  
&nbsp;&nbsp;&nbsp;&nbsp;- { src: clients.conf.j2, dest: /etc/raddb/clients.conf }  
&nbsp;&nbsp;&nbsp;&nbsp;- { src: proxy.conf.j2, dest: /etc/raddb/proxy.conf }

What about being able to do something like:

- template:  
&nbsp;&nbsp;&nbsp;&nbsp;args\_var: item  
&nbsp;&nbsp;&nbsp;&nbsp;owner: root  
&nbsp;&nbsp;&nbsp;&nbsp;group: radiusd  
&nbsp;&nbsp;&nbsp;&nbsp;mode: "0640"  
&nbsp;&nbsp;loop:  
&nbsp;&nbsp;&nbsp;&nbsp;- { src: clients.conf.j2, dest: /etc/raddb/clients.conf }  
&nbsp;&nbsp;&nbsp;&nbsp;- { src: proxy.conf.j2, dest: /etc/raddb/proxy.conf }

Not so dramatic with only two parameters, but I have some with 5 or moe.

---

<div class="post-metadata">

**Author:** ![Avinash\_Jadhav](https://avatars.discourse-cdn.com/v4/letter/a/958977/32.png) [@Avinash\_Jadhav](https://forum.ansible.com/u/Avinash_Jadhav)\
**Post date:** [October 31, 2023, 7:23pm UTC](https://forum.ansible.com/t/enhancement-idea-passing-module-args-in-loop/38558/2 "2023-10-31T19:23:50Z")

</div>

Please try this one

- template:  
args\_var: item  
owner: root  
group: radiusd  
mode: “0640”  
loop:
- { src: clients.conf.j2, dest: /etc/raddb/clients.conf }
- { src: proxy.conf.j2, dest: /etc/raddb/proxy.conf }

---

<div class="post-metadata">

**Author:** ![opoplawski](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/opoplawski/32/2112_2.png) [@opoplawski](https://forum.ansible.com/u/opoplawski)\
**Post date:** [November 1, 2023, 11:08pm UTC](https://forum.ansible.com/t/enhancement-idea-passing-module-args-in-loop/38558/3 "2023-11-01T23:08:00Z")

</div>

I'm not sure what you are trying to say. This doesn't work because what I'm  
proposing doesn't exist.

But I'm wondering if it is worth proposing it as an enhancement.

---

<div class="post-metadata">

**Author:** ![shertel](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/shertel/32/1241_2.png) [@shertel](https://forum.ansible.com/u/shertel)\
**Post date:** [November 7, 2023, 6:57pm UTC](https://forum.ansible.com/t/enhancement-idea-passing-module-args-in-loop/38558/4 "2023-11-07T18:57:29Z")

</div>

You could use module\_defaults [https://docs.ansible.com/ansible/latest/playbook\_guide/playbooks\_module\_defaults.html](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_module_defaults.html)

- template:  
owner: root  
group: radiusd  
mode: “0640”  
module\_defaults:  
template: “{{ item }}”  
loop:
- { src: clients.conf.j2, dest: /etc/raddb/clients.conf }
- { src: proxy.conf.j2, dest: /etc/raddb/proxy.conf }

Or/additionally arg splatting (which can be unsafe in some cases if [https://docs.ansible.com/ansible/latest/reference\_appendices/config.html#inject-facts-as-vars](https://docs.ansible.com/ansible/latest/reference_appendices/config.html#inject-facts-as-vars) is True):

- template: “{{ item }}”  
module\_defaults:  
template:  
owner: root  
group: radiusd  
mode: “0640”  
loop:
- { src: clients.conf.j2, dest: /etc/raddb/clients.conf }
- { src: proxy.conf.j2, dest: /etc/raddb/proxy.conf }
