Pendahuluan
Ansible adalah alat otomatisasi yang banyak digunakan oleh sysadmin dan DevOps untuk mengelola server, menginstal aplikasi, hingga mengatur konfigurasi sistem. Agar penggunaan Ansible lebih mudah, efisien, dan rapi, kita perlu memahami struktur proyek dalam Ansible.
Artikel ini akan membahas struktur dasar yang digunakan dalam Ansible dan bagaimana kamu bisa mengatur file dan folder agar proyek otomatisasi lebih terorganisir.
Struktur Dasar dalam Proyek Ansible
Saat kita mulai membuat proyek dengan Ansible, kita biasanya akan melihat susunan folder dan file seperti ini:
Penjelasan Komponen Utama
Inventory
File ini berisi daftar server (host) yang ingin kita kelola. Bisa dalam format sederhana seperti:
Atau dalam format YAML yang lebih kompleks.
Playbook
Playbook adalah file YAML yang berisi instruksi otomatisasi. Misalnya: install web server, salin file konfigurasi, dan lain-lain.
Contoh sederhana:
Roles
Roles adalah cara untuk mengatur tugas dalam folder khusus agar lebih modular dan terpisah. Ini sangat membantu jika proyek mulai besar.
Dalam satu role, biasanya terdapat:
-
tasks/
→ berisi filemain.yml
dengan daftar tugas utama. -
handlers/
→ tugas khusus yang dijalankan saat ada perubahan. -
templates/
→ file konfigurasi dinamis berbasis Jinja2. -
files/
→ file statis yang akan disalin ke server. -
vars/
dandefaults/
→ tempat menyimpan variabel.
Group Vars & Host Vars
Kita bisa menyimpan variabel khusus untuk grup server atau host tertentu agar tidak perlu mendefinisikan variabel berulang kali.
Contoh Implementasi Sederhana
Misalnya kamu ingin menginstal Apache di server 192.168.1.10. Struktur sederhana bisa seperti ini:
Isi file inventory
:
Isi file playbook.yml
:
Isi file roles/apache/tasks/main.yml
:
Best Practice dalam Menyusun Struktur
-
Gunakan roles sejak awal untuk struktur yang lebih rapi.
-
Simpan variabel di tempat yang sesuai (group_vars, host_vars, defaults).
-
Gunakan penamaan folder dan file yang konsisten.
-
Kelola proyek Ansible kamu menggunakan Git agar mudah dilacak dan dikelola tim.
Kesimpulan
Struktur dalam Ansible sangat membantu agar proyek otomatisasi tetap terorganisir dan mudah dikelola, terutama saat proyek makin besar. Dengan mengikuti struktur yang baik dan memanfaatkan fitur seperti roles dan variabel, kamu bisa membuat proses otomatisasi lebih cepat, rapi, dan bisa digunakan bersama tim.
Yuk, mulai buat proyek Ansible kecil dengan struktur yang benar. Selamat mencoba!