Ansible docker module: expose multiple <IPv4>:<port>:<port> combos at once

Hello Ansiblers!

I was trying to think of a way to expose multiple ports in a row by using the docker module (http://docs.ansible.com/ansible/docker_module.html) but I can’t think of anything except looping through the values I would need by means of the usual with_items way, which is not what I want because it would result in an overwrite of the previous iteration.

My scenario is as follows:

I found a solution for now. I quickly wrote a filter plugin to obtain what I wanted - https://gist.github.com/walterdolce/93a89018d69392de7c94bf690b761455

The final product for now is:

tasks:
   - name: Install Nginx container
     docker:
       name: webserver_nginx
       image: nginx
       state: reloaded
       expose: "{{ ansible_all_ipv4_addresses | map_ipv4_port_exports(container_port='80', host_port='80') }}"
       ports: "{{ ansible_all_ipv4_addresses | map_ipv4_port_exports(container_port='80', host_port='80') }}"


I could probably change the name of the filter to make it more docker specific.

Any feedback is more than welcome!