Mengetahui Spesifikasi Server dengan Mudah Menggunakan ansible-cmdb

Beberapa waktu yang lalu, saya kebagian untuk melakukan collecting data dari spesifikasi server di salah satu klien. Data yang dibutuhkan diantaranya RAM, Hardisk, CPU, Kernel, dll.

Mungkin jika hanya 1 atau 2 server. Kita bisa mengeceknya secara manual menggunakan perintah seperti df -h, free -m atau sejenisnya. Namun yang jadi masalah adalah, klien yang saya tangani ini memiliki server kurang lebih 64 server.

Wuahaha, bisa kriting tangan ngetik perintah yang itu-itu aja. Alternatifnya kita bisa menggunakan script looping menggunakan bash. Namun outpunya datar, hanya begitu-gitu saja.

Saya biasa melakukan manajemen server yang banyak menggunakan ansible, tool untuk melakukan automatisasi dalam melakukan konfigurasi suatu atau sekumpulan server. Namun awalnya belum kepikiran bigimana caranya “gathering fact” atau mengumpulkan data spesifikasi server yang ada pada remote host/server tujuan secara otomatis.

Ketemulah namanya ansible-cmdb. ansible-cmdb adalah sebuah tool yang diperuntukkan untuk mengumpulkan data yang ada pada remote host/server tujuan secara otomatis. Dengan berbagai macam output keren! Pokoknya sat set bat bes!

Beberapa output yang didukung adalah:

  1. HTML
  2. JSON
  3. CSV
  4. Markdown
  5. Markdown Split
  6. SQL
  7. Plain Text
  8. dan lain-lain

Gimana caranya? Mudah

Pastikan ansible sudah terpasang

Pastikan ansible pada host/komputer kamu sudah terpasang, kemudian isi remote hosts yang akan di collect datanya. Isi di /etc/ansible/hosts

Untuk instalasinya kalau di Mac cukup:

brew install ansible

Silakan disesuaikan dengan sistem operasi yang digunakan.

Pastikan SSH di server tujuan aktif

Agar ansible dapat terhubung dan datanya bisa dikoleksi, pastikan SSH di server tujuan aktif dan bisa diakses. Jangan lupa juga untuk menggunakan less password(tanpa password). Untuk mengeceknya bisa menggunakan perintah berikut.

ansible all -m ping --user root

server1.excellent.co.id | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
server2.excellent.co.id | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
server3.excellent.co.id | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Pasang ansible-cmdb

Pasang paket ansible-cmdb terlebih dahulu pada komputer kamu. Kalau di Mac cukup dengan perintah berikut:

brew install ansible-cmdb

Ansible juga bisa dipasang menggukan pip atau bisa disesuaikan dengan sistem operasi yang ada. Silakan melihat panduannya pada https://ansible-cmdb.readthedocs.io/en/latest/installation/.

Collect Data Server Tujuan

ansible --user root -m setup --tree out/ all

Maka nanti pada folder out/ akan terdapat file hasil collect data dari server tujuan. Namun masih acak-acakan dan belum terstruktur. Selanjutnya adalah bagaimana menyulap file hasil collect dari ansible ke format yang lebih manusiawi

Konversi ke Format HTML

Nah salah satu untuk memanusiakan data tersebut adalah dengan mengkonversikannya ke format HTML. Caranya cukup jalankan perintah berikut pada posisi direktori yang sama:

ansible-cmdb -t html_fancy_split -p local_js=1 out/
open cmdb/index.html

Dari perintah pertama, maka nanti akan menghasilkan folder baru dengan nama cmdb. Di dalam folder tersebut terdapat serangkaian file HTML, dan ada 1 buat HTML gabungan pada folder cmdb. Yaitu Index HTML. Nah, kita bisa membuka file HTML tersebut menggunakan perintah kedua (open cmdb/index.html). Hasilnya seperti ini:

Beuh, cakep kan? sekali jalankan perintah. Data terkumpul dan dikemas dalam bentuk yang lebih manusiawi.

Konversi ke Format Ke CSV

Bagi kamu juga yang datanya ini mau dimasukkan ke LibreOffice/MS Excel dengan format CSV. kamu juga bisa ambil data ini dengan mudah hanya cukup menjalankan perintah:

ansible-cmdb -t csv out/ > spesifikasi.csv

Nah, itu kira-kira gambaran singkat dari ansible-cmdb. Tool ini benar-benar sangat mempermudah kita untuk mengkoleksi data secara cepat, sat set bat bes. Walaupun server yang kita miliki banyak.

Untuk mengetahui lebih lanjut perihal ansible-cmdb silakan mengunjungi tautan berikut: https://ansible-cmdb.readthedocs.io/en/latest/.

Semoga bermanfaat 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.