Skip to main content

Command Palette

Search for a command to run...

Kenalan dengan Ansible: Apa Itu, Bagaimana Cara Kerjanya, dan Mengapa YAML Penting

Updated
3 min read
Kenalan dengan Ansible: Apa Itu, Bagaimana Cara Kerjanya, dan Mengapa YAML Penting

Apa itu Ansible?

Ansible adalah sebuah alat open-source untuk pengaturan perangkat lunak, pengelolaan konfigurasi, dan penerapan aplikasi secara otomatis tanpa perlu melakukan konfigurasi secara manual. Tool ini menggunakan bahasa yang sederhana yang mudah dipahami yaitu YAML untuk menjelaskan tugas, dan dapat bekerja dengan beragam sistem dan teknologi.

Ansible pertama kali dikembangkan oleh Michael DeHaan. Dirilis pada tahun 2012 dan dengan cepat mendapatkan perhatian karena sederhana dan efektif. Kemudian pada tahun 2015, ansible diakuisisi oleh Red Hat salah satu perusahaan perangkat lunak open-source terbesar.

Cara Kerja Ansible

Bayangkan kamu seorang administrasi sistem yang bertugas pada banyak server. Setiap server memerlukan konfigurasi yang sama. Pastinya harus dilakukan konfigurasi secara satu per satu dan memerlukan waktu lama. Dengan menggunakan tools bernama ansible, kamu bisa membuat konfigurasi yang sama dengan hanya menjalankan dalam 1 waktu secara singkat.

Perbandingan ansible dengan alat otomatisasi Lainnya

  • Ansible tidak memerlukan agen yang diinstal pada setiap node, membuatnya lebih mudah untuk diimplementasikan.

  • Menggunakan YAML yang membuat lebih mudah dibaca dan ditulis. ● Lebih mudah dipelajari karena sintaksnya yang sederhana dan tidak memerlukan pengetahuan pemrograman yang mendalam.

  • Memiliki komunitas yang besar dan aktif, sehingga kamu bisa mendapatkan dukungan dan sumber daya yang banyak.

Arsitektur Ansible

Pada ansible memiliki arsitektur yang sangat sederhana dan elegan yang menjadikan ia begitu populer. Arsitektur Ansible bersifat agentless, artinya tidak membutuhkan perangkat lunak tambahan (agent) yang diinstal pada setiap server yang akan dikelola. Hal ini membuat proses penyiapan dan pemeliharaan menjadi lebih mudah.

Diagram arsitektur ansible

Berikut merupakan komponen utama ansible:

  • Control Node: server utama tempat untuk menjalankan ansible.

  • Managed Nodes: beberapa server yang akan dikelola bisa berupa server fisik, virtual, atau cloud instance.

  • Inventory: sebuah file yang berisi daftar semua managed nodes yang akan dikelola. Serta dapat mengelompokan server berbeda sehingga dapat menjalankan ansible ke salah satu kelompok.

  • Playbook: file yang berisi konfigurasi apa saja yang ditulis dalam bahasa YAML. ● Modules: unit terkecil dari ansible yang bertanggung jawab untuk melakukan tugas seperti menginstal paket, menyalin file, atau memulai layanan.

  • SSH: ansible menggunakan protokol SSH untuk bisa berkomunikasi dengan managed nodes.

Ansible Pakai bahasa apa?

YAML (YAML Ain't Markup Language) adalah sebuah bahasa yang dirancang untuk membuat data lebih mudah dibaca oleh manusia. YAML memiliki sifat yang case-sensitive, artinya huruf besar dan kecil dianggap berbeda. Misalnya, kata "Key" dan "key" akan dianggap sebagai dua elemen berbeda.

Getting Started with YAML

Berikut fungsi lain dari YAML:

  • Mudah dibaca dan ringkas membantu memahami konfigurasi dan data yang disajikan dengan cepat.

  • Mendukung struktur data kompleks termasuk list, map, dan scalar types, seperti integer, boolean, dan float.

  • Digunakan di beberapa bahasa pemrograman, seperti Python, Java, Ruby, dan JavaScript.

  • Sering digunakan dalam alur kerja integrasi dan pengiriman terus menerus (CI/CD) seperti Jenkins dan GitLab.

  • YAML menggunakan Ankors untuk menghindari duplikasi serta membuat kode lebih rapi dan efisien.

  • Sering kali digunakan untuk konfigurasi perangkat lunak.

Contoh Sederhana YAML:

nama: Sony 
umur: 25 
hobi: 
- bermain game 
- membaca buku 
kota: Blitar

Dari contoh di atas, terlihat bahwa YAML menggunakan indentasi untuk menunjukkan hierarki data. Setiap baris dimulai dengan kunci (nama) diikuti oleh tanda titik dua (:) dan nilai. Untuk list atau array, menggunakan tanda hubung (-).

Panduan Dasar Ansible dan Pentingnya YAML