Hello,
we have set up a relatively simple testing environment, and we are
hitting performance issues that I hope can be easily resolved, e.g.
because I am doing something wrong.
We are already using Fireball.
Pull-mode is not an option, unfortunately, because we need to be
able to access hostvars after all facts have been gathered from all
hosts.
For instance, a simple task that just removes files using a list:
- name: remove files
file: path={{item}} state=absent
with_items:
takes about 2 seconds per file in SSH mode, and about 1,6 seconds
per file with Fireball.
The problem is even worse with e.g. APT, which might take 5 seconds
or more per package to be removed, installation would take even
longer, obviously.
The root cause I think is that the above task is executed completely
separately for each item in the list.
For each item in the list, ansible creates a local temporary
workspace, composes the module locally, creates a remote temporary
workspace, transfers the module to the remote machine, and executes
it.
Is there a way I am overlooking to do all of this just once and pass
the list of files?
If not, do you see this as a possible improvement? I.e. would it
even be possible given the current code-base?
Thanks,