Enhancement idea - passing module args in loop

22 views
Skip to first unread message

Orion Poplawski

unread,
Oct 31, 2023, 3:20:03 PM10/31/23
to Ansible Development
I find myself writing this over and over again:

- template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
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 }


What about being able to do something like:

- 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 }

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

--
Orion Poplawski
IT Systems Manager 720-772-5637
NWRA, Boulder/CoRA Office FAX: 303-415-9702
3380 Mitchell Lane or...@nwra.com
Boulder, CO 80301 https://www.nwra.com/

Avinash Jadhav

unread,
Oct 31, 2023, 3:24:05 PM10/31/23
to Orion Poplawski, Ansible Development
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 }

--
You received this message because you are subscribed to the Google Groups "Ansible Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-deve...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-devel/35765b61-39cc-46e2-aa5c-b3b728a0ddf8%40nwra.com.

Orion Poplawski

unread,
Nov 1, 2023, 7:08:10 PM11/1/23
to Avinash Jadhav, Ansible Development
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.

On 10/31/23 13:23, Avinash Jadhav wrote:
> 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 }
>
>
> On Wed, 1 Nov, 2023, 00:50 Orion Poplawski, <or...@nwra.com
> <mailto:or...@nwra.com>
> Boulder, CO 80301                 https://www.nwra.com/
> <https://www.nwra.com/>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ansible Development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to ansible-deve...@googlegroups.com
> <mailto:ansible-devel%2Bunsu...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-devel/35765b61-39cc-46e2-aa5c-b3b728a0ddf8%40nwra.com <https://groups.google.com/d/msgid/ansible-devel/35765b61-39cc-46e2-aa5c-b3b728a0ddf8%40nwra.com>.

Sloane Hertel

unread,
Nov 7, 2023, 1:57:30 PM11/7/23
to Ansible Development
You could use module_defaults 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 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 }
Reply all
Reply to author
Forward
0 new messages