Taufik Mulyana
Taufik Mulyana
Linux System Administrator, Interested in Linux, Cloud, Containers
February 4, 2019 2 min read

Mendapatkan Informasi IP Public Server dengan Ansible

mendapat informasi ip public apache

ketika anda telah menerapkan automation pada infrastruktur anda dengan menggunakan ansible, dan ada suatu hal yang membuat anda harus menambahkan ip public pada tugas di ansible playbook, misalnya ketika anda ingin me-listen web server ke ip public, sebenarnya anda bisa mendapat informasinya melalui gather facts, namun jika server anda berada di balik NAT, hanya akan menampilkan ip lokal server.

sebelumnya saya biasa menggunakan modul shell lalu menggunakan curl untuk mendapatkan informasi IP public dari ifconfig.me, namun ini bukanlah cara yang baik, dan ternyata ada sebuah modul yang dapat memudahkan dalam tugas ini, kita bisa menggunakan modul yang bernama ipify_facts, dengan modul ini kita dapat mendapatkan informasi ip public dengan mudah, berikut cara penggunaannya.

penggunaan pada ansible ad-hoc

$ ansible localhost -m ipify_facts

localhost | SUCCESS => {
      "ansible_facts": {
      "ipify_public_ip": "xxx.xxx.xxx.xxx"
}, 
      "changed": false
}

untuk penggunaan pada playbook

---
- hosts:
  
  tasks:
  - name: get server public ip
    ipify_facts:
    register: ip_public

  - debug:
      msg: "{{ ip_public }}"

modul ipify_facts akan mengirim permintaan ke api.ipify.org untuk mendapatkan informasi ip public.