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.