fetch module - hostname instead of ip in the filesystem tree?

Hello, I was wondering if there’s any way to use the hostname of a server rather than it’s IP to generate the file system tree when using the fetch module?

Our ansible inventories are set up like so:

aqua-notif-wrkr-01 ansible_ssh_host=12.34.56.789

This ends up generating a tree like this: https://s3.amazonaws.com/snaps.michaelwarkentin.com/generate_server_list.py__waveapps_2014-10-21_16-17-17.png

Would setting up /etc/hosts to map hostnames to IPs work, or are we stuck with this?

Hi Michael,

One way you can get around this is to use the inventory_hostname variable in the dest= along with flat=yes, as follows:

  • hosts: all
    gather_facts: no
    tasks:
  • fetch: src=/etc/hosts dest=“/tmp/{{inventory_hostname}}/” flat=yes

As long as the inventory_hostname is actually a hostname and not an IP, this should do what you need. Beyond that, you can open a feature request PR on ansible-modules-core to allow using the inventory hostname instead of the connection address, when available.

Hope that helps!

Thanks James, I’ll give that a try!

Sorry about the double-post as well - I didn’t realize that the forum was moderated, so I thought there was a glitch when I submitted my first message.

“if there’s any way to use the hostname of a server rather than it’s IP to generate the file system tree when using the fetch module?”

Yeah, It should use the inventory name anyway.

I’d file a bug on this one at github.com/ansible/ansible – it’s a small bug, and the workaround above will do, but it shouldn’t be using conn.host as the host path, but rather “inventory_hostname”.

Hey Michael, thanks for the reply. I’ve opened ansible#9415 to track this.