1

I would like to get public ip of a host defined in inventory file

[test-sites:children]
test-site-1

[test-site-1]
test-site-1-2 ipv4=192.168.0.1 ipv6=....

How do I get the ipv4 and ipv6 address of "test-site-1-2" defined in the inventory file? I have checked this answer but it gives all of the addresses (public & private). I am interested in ips defined in the inventory file only.

hariszaman
  • 8,202
  • 2
  • 40
  • 59

1 Answers1

1
[test-site-1]
test-site-1-2 ipv4=192.168.0.1 ipv6=....

Q: "How do I get the ipv4 and ipv6 address of "test-site-1-2" defined in the inventory file?"

A: If the playbook is running at "test-site-1-2" simply reference the variables directly. For example

- hosts: test-site-1-2
  tasks:
    - debug:
        var: ipv4
    - debug:
        var: ipv6

If these variables are needed by other hosts reference to "hostvars" is needed. For example

- hosts: test-site-1
  tasks:
    - debug:
        var: hostvars['test-site-1-2'].ipv4
    - debug:
        var: hostvars['test-site-1-2'].ipv6

See Basic inventory.

Vladimir Botka
  • 58,131
  • 4
  • 32
  • 63