Hi Peter, you'll need to add your module name to the `squash_actions`
ansible.cfg setting. The default value of that is "apk, apt, dnf, homebrew,
pacman, pkgng, yum, zypper", so just append your module to the list.

James Cammarata

Ansible Lead/Sr. Principal Software Engineer
Ansible by Red Hat
twitter: @thejimic, github: jimi-c

On Thu, Dec 1, 2016 at 7:26 AM, Peter Burns <pcburn...@gmail.com> wrote:

> Hi there,
>
> I posted this to the Ansible Project list but got no responses, perhaps
> this is the better forum for it to be answered though, so I'm cross posting
> it here to.
>
> I'm trying to create an ansible module to install packages using a custom
> package management system. I want it to function like the core yum module
> says it does when used in a loop, i.e. "Instead of calling the module with
> a single package each time through the loop, ansible calls the module once
> with all of the package names from the loop"
>
> How would I replicate this in my own module?
>
> I couldn't see anything special in the source for the yum module that
> would enable this behaviour.
>
> I tried just specifying the input as type list, simplified below:
>
> module = AnsibleModule(
>     argument_spec = dict(
>         name=dict(type="list", required=True),
>     ),
> )
> cmd = [ 'pkg_agent', '-X', ','.join(module.params'name']) ]
> rc, out, err = module.run_command(cmd)
>
> But when I used my module in a playbook, it didn't work as desired:
>   tasks:
>     - name: "Install packages"
>       pkg_install:
>         name: "{{ item }}"
>       become: True
>       with_items:
>         - 'common-tests'
>         - 'ops-libs'
>
> Both the debug output and the resulting behaviour was it running the
> install on each package individually, and not bundling them together.
>
> The expected result was that it would run `pkg_agent -X
> common-tests,ops-libs` but what in fact happened is it ran `pkg_agent -X
> common-tests` and then `pkg_agent -X ops-libs`
>
> This was using Ansible 2.2 on Ubuntu
>
> Any help in where I've gone wrong with this would be much appreciated.
>
> - Peter
>
> --
> 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-devel+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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-devel+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to