Kebayang nggak harus menginstall aplikasi yang sama di puluhan atau bahkan ratusan server secara manual? Ribet banget, kan? Nah, inilah saatnya kenalan sama Ansible—solusi praktis yang bisa bikin proses instalasi jadi jauh lebih simpel dan efisien. Nggak perlu lagi deh, melakukan langkah-langkah berulang di tiap server, selama servernya bisa diakses lewat remote. Untuk instalasi aplikasi, Ansible adalah jawabannya!
Ansible: Otomasi Mudah untuk Semua Distro Linux
Apa pun distro Linux yang kamu pakai—Ubuntu, CentOS, Debian, Gentoo, atau Slackware—Ansible bisa jalan di semuanya. Dengan satu perintah, aplikasi langsung ter-install di banyak server sekaligus tanpa ribet. Di luar sana ada beberapa alat otomasi lain seperti Puppet, Chef, atau Salt. Tapi dari semua itu, Ansible terbilang paling ringan dan nggak ribet dipakai. Ansible juga nggak butuh agen tambahan di tiap server target, cukup konfigurasi sederhana pakai SSH, dan kamu sudah siap!
Langkah Awal: Instalasi Ansible di CentOS
Kali ini, kita pakai CentOS 7 sebagai contoh. Pertama, pastikan kamu punya satu mesin master Ansible yang akan mengirimkan perintah ke server-server lainnya. Lakukan update dulu supaya sistem CentOS-nya siap:
yum update
Setelah update, install Ansible dengan menambahkan repositori EPEL, lalu install Ansible:
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum install ansible
Konfigurasi Server Target dengan Ansible
Setelah Ansible terinstall, buka file /etc/ansible/hosts untuk menambahkan daftar server target yang ingin kamu kelola. Buat file ini kalau belum ada, lalu tambahkan IP atau hostname dari server yang akan diatur.
vi /etc/ansible/hosts
Masukkan daftar IP server target:
192.168.1.1
192.168.1.2
192.168.1.3
Supaya Ansible bisa terhubung ke server target tanpa harus masukkan password terus-menerus, atur SSH key authentication:
ssh-keygen
ssh-copy-id [email protected]
ssh-copy-id [email protected]
ssh-copy-id [email protected]
Setelah ini, uji koneksi ke server target pakai perintah:
ansible all -m ping
Kalau berhasil, hasilnya akan seperti ini:
192.168.1.1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
Membuat Playbook untuk Instalasi Massal
Sekarang saatnya bikin playbook! Playbook ini adalah file YAML yang berisi daftar tugas yang akan dijalankan di server target. Misalnya, kalau kamu mau install 100 web server dengan WordPress, tinggal buat playbook untuk install Apache, PHP, MySQL, dan WordPress.
Buat file YAML dengan nama install_wordpress.yml:
vi install_wordpress.yml
Isi playbook-nya kira-kira begini:
- hosts: all
tasks:
- name: Install Apache
yum: name=httpd state=latest
- name: Install PHP dan modulnya
yum: name={{ item }} state=latest
with_items:
- php
- php-common
- php-mysql
- name: Install MySQL
yum: name={{ item }} state=latest
with_items:
- mysql
- mysql-server
- name: Download WordPress
get_url: url=http://wordpress.org/latest.tar.gz dest=/root/latest.tar.gz
- name: Extract WordPress ke direktori web server
command: tar xzf /root/latest.tar.gz -C /var/www/html/
Untuk menjalankan playbook ini di server target, gunakan perintah:
ansible-playbook install_wordpress.yml
Ansible akan langsung menjalankan tugas sesuai isi playbook di semua server yang ada di file /etc/ansible/hosts.
Belajar Lebih Lanjut Tentang Ansible
Ansible punya banyak modul yang nggak cuma buat instalasi aplikasi. Kamu bisa pakai untuk konfigurasi jaringan, update sistem, sampai manajemen database. Layanan cloud seperti AWS, Google Cloud, DigitalOcean, atau Vultr bisa kamu manfaatkan untuk menjalankan server virtual sebagai percobaan.
Coba deh, pakai Ansible buat mengelola server secara otomatis. Tugas yang berat bisa jadi jauh lebih ringan dengan otomasi. Jadi, siap untuk instalasi aplikasi secara massal? Dengan Ansible, semua jadi lebih mudah!