Konfigurasi Banyak Server dengan Ansible untuk Otomatisasi Infrastruktur
Ansible adalah tool DevOps Infrastructure as Code (IaC) yang berfungsi sebagai configuration management dan automation platform. Ansible memungkinkan administrator sistem dan DevOps Engineer melakukan konfigurasi banyak server secara simultan, konsisten, dan otomatis tanpa perlu instalasi agent di server target.
Dengan Ansible, proses provisioning, deployment aplikasi, hingga manajemen konfigurasi server Linux dapat dilakukan secara terpusat, scalable, dan efisien. Tool ini sangat populer untuk mengelola VPS, cloud server, dan environment production.
Cara Kerja Ansible dalam Manajemen Server
Arsitektur Ansible bersifat agentless, sehingga lebih ringan dan mudah diimplementasikan. Mekanisme kerjanya sebagai berikut:
-
Control Node adalah server utama tempat Ansible diinstall dan dijalankan.
-
Managed Nodes adalah server target yang akan dikonfigurasi.
-
Komunikasi antara Control Node dan Managed Nodes menggunakan protokol SSH.
-
Managed Nodes tidak memerlukan instalasi software tambahan selain SSH.
-
Daftar server target disimpan dalam Inventory file berupa IP address atau hostname.
-
Perintah konfigurasi ditulis dalam Playbook menggunakan format YAML.
-
Setiap konfigurasi dijalankan dalam bentuk Task, dan setiap task menggunakan Ansible Module seperti package, service, database, atau network.
Pendekatan ini menjadikan Ansible ideal untuk automation server, configuration management, dan deployment aplikasi.
Tutorial Environment Ansible
Pada tutorial ini, environment yang digunakan adalah sebagai berikut:
-
Control Node: Ubuntu 20.04
-
Managed Nodes: 2 VPS Ubuntu 20.04
-
Server Web: 178.128.55.175
-
Server Database: 165.22.102.165
-
Versi Ansible: 2.12.6
Konfigurasi SSH Key untuk Ansible
Agar Ansible dapat mengakses Managed Nodes secara aman, digunakan SSH key-based authentication.
Membuat SSH Key di Control Node
Contoh lokasi penyimpanan SSH key:
Mengirim SSH Key ke Managed Nodes
Uji Koneksi SSH
Jika berhasil login tanpa password, maka SSH key sudah siap digunakan oleh Ansible.
Install Ansible di Ubuntu
Install Ansible menggunakan repository resmi untuk mendapatkan versi stabil terbaru.
Untuk sistem operasi lain, silakan merujuk dokumentasi resmi Ansible.
Konfigurasi Inventory Ansible
Inventory berfungsi sebagai daftar Managed Nodes yang akan dikontrol Ansible.
Membuat Direktori Project Ansible
Membuat File Inventory
Isi file inventory:
Penjelasan:
-
ansible_usermenentukan user SSH yang digunakan. -
ansible_ssh_private_key_filemenentukan SSH key. -
Group
webserverdandatabasememudahkan segmentasi server.
Verifikasi Inventory
Test Koneksi ke Semua Host
Jika seluruh host merespons pong, koneksi Ansible sudah siap.
Membuat Playbook Ansible
Playbook digunakan untuk mendefinisikan seluruh konfigurasi server secara terstruktur.
Membuat File Playbook
Isi File playbook.yml
Playbook ini akan:
-
Update repository di semua server
-
Install Nginx dan PHP di server web
-
Install MariaDB di server database
-
Membuat database dan user MySQL secara otomatis
Menjalankan Playbook Ansible
Ansible akan mengeksekusi seluruh task secara otomatis dan menampilkan ringkasan hasil eksekusi pada setiap server.
Pengujian Hasil Konfigurasi
Cek Web Server
Akses melalui browser:
Cek Database Server
Login menggunakan user aplikasi:
Jika database dan user berhasil dibuat, maka konfigurasi Ansible sukses.
Kesimpulan
Ansible adalah solusi automation dan configuration management yang sangat efektif untuk mengelola banyak server Linux sekaligus. Dengan pendekatan Infrastructure as Code, Ansible membantu meningkatkan efisiensi operasional, mengurangi human error, dan mempercepat deployment aplikasi di lingkungan cloud dan VPS production.
Artikel ini menjadi fondasi penting sebelum melangkah ke topik lanjutan seperti Ansible Roles, Ansible Vault, CI/CD Automation, dan Security Hardening Server Linux.
.png)