There are multiple situations where you need to know your public IP: be it that you set up your home IT server behind a NAT, be it that your legacy enterprise business solution does not work properly without this information because the original developers 20 years ago never expected to be behind a NAT.
Of course, Ansible can help here as well: there is a tiny, neat module called ipify_facts which does nothing else but retrieving your public IP:
$ ansible localhost -m ipify_facts localhost | SUCCESS => { "ansible_facts": { "ipify_public_ip": "23.161.144.221" }, "changed": false }
The return value can be registered as a variable and reused in other tasks:
--- - name: get public IP hosts: all tasks: - name: get public IP ipify_facts: register: public_ip - name: output debug: msg="{{ public_ip }}"
The module by default accesses https://api.ipify.org to get the IP address, but the api URL can be changed via parameter.