Salah satu poin yang mesti dipelajari saat belajar ansible adalah menulis inventory hosts. Bagian ini harus diketahui oleh administrator saat akan melakukan config management ke hosts tujuan (seperti: server, router, dll).
Yang perlu diperhatikan adalah cara penulisanya dan opsi-opsi yang dibutuhkan sesuai harapan administrator.
Ansible secara default menggunakan file hosts yang terletak pada /etc/ansible/hosts
jika saat mengeksekusi ad-hoc command atau ansible-playbook tidak menspesifikkan file inventory.
Misal mengeksekusi: ansible -m ping
. Perintah tersebut akan mengambil default hosts inventory.
Namun ketika dispesifikkan, misalnya ansible all -i path/to/hosts -m ping
maka akan mengambil file inventory hosts yang terletak pada path/to/hosts
.
Ansible: Inventory Hosts INI Format
Menulis inventory hosts ansible dengan format INI sebenarnya mudah, hanya saja perlu dicoba dan disesuaikan dengan kondisi environment anda.
Nah, berikut saya contohkan penulisanya, kemudian silahkan pahami dan buat inventory hosts sesuai kebutuhan anda.
Baca juga:
– Contoh Menulis Inventory Hosts Ansilbe – Study Case
– Ansible – Menulis Inventory Hosts Berbasis YAML
Silahkan buat file dengan nama hosts
. Terserah diletakkan dimana. Cara menggunakan inventory hosts nanti mungkin dibahas lagi pada saat belajar Ansible – Ad-Hoc Command.
[webserver:children] cluster1 cluster2 [cluster1:vars] domain=example.com [cluster2:vars] domain=example.net [cluster1] 192.168.1.1 192.168.1.2 192.168.1.3 [cluster2] 192.168.2.1 192.168.2.2 192.168.2.3 [dbserver:children] mysql postgresql [mysql] 1.1.1.1 2.2.2.2 [postgresql] 3.3.3.3 4.4.4.4
Maksudnya Gimana?
– Ada 2 Group, yaitu: webserver dan dbserver.
– Pada group webserver dibuatlah group lagi, yaitu: cluster1 dan cluster2.
– cluster1 ada 3 hosts: 192.168.1.[1-3] dan cluster2 juga ada 3 hosts: 192.168.2.[1-3]
– Pada group dbserver dibuatlah group lagi, yaitu: mysql dan postgresql.
– mysql ada 2 hosts: 1.1.1.1 dan 2.2.2.2
– postgresql ada 2 hosts: 3.3.3.3 dan 4.4.4.4
– Semua hosts yang berada pada cluster1 menggunakan domain: example.com dan,
– Semua hosts yang berada pada cluster2 menggunakan domain: example.net
Keterangan:
[cluster1]
: membuat group dengancluster1
.[webserver:children]
: membuat induk group, didalam induk group ini ada groupcluster1
dancluster2
.[cluster1:vars]
: membuat variable, formatnyakey: value
. Yang dipakai pada saattemplating
jinja2 atau padatasks
.
Sebenarnya secara keyword default ada group global untuk memanggil semua alamat hosts, keyword tersebut adalah all
.
Jadi, misalkan melakukan: ansible all -i path/to/hosts -m ping
maka perintah ini akan melakukan ping
ke semua hosts didalam file inventory hosts tersebut.
Admin LUKMANLAB, DevOps Engineer, Site Reliability Engineer, System Administrator.