Panduan Lengkap Instalasi Ansible di Ubuntu/Debian dan AlmaLinux/Rocky

π Apa Itu Ansible?
Ansible adalah alat otomasi open-source yang digunakan untuk konfigurasi sistem, manajemen aplikasi, dan deployment software secara otomatis. Ansible dikembangkan oleh Red Hat dan terkenal karena menggunakan arsitektur agentlessβtidak memerlukan aplikasi tambahan di server target. Ia berkomunikasi dengan mesin target menggunakan SSH (untuk Linux) atau WinRM (untuk Windows).
Ansible menggunakan bahasa deklaratif YAML untuk membuat playbook, sehingga mudah dipahami oleh manusia sekalipun tidak berlatar belakang teknis mendalam.
π‘ Keunggulan Ansible
- Mudah digunakan: Instalasi sederhana, tidak perlu agen di setiap server target
- Deklaratif dan ringkas: Menggunakan YAML, mudah dibaca dan ditulis
- Aman: Menggunakan SSH, mendukung Ansible Vault untuk menyimpan rahasia terenkripsi
- Fleksibel dan scalable: Cocok untuk sedikit atau ribuan server
- Komunitas besar: Banyak modul, dokumentasi, dan integrasi
π§ Cara Kerja Ansible
[Control Node] -- SSH --> [Managed Node]
Control Node akan menjalankan playbook dan mengirim perintah via SSH ke semua Managed Node. Tidak ada daemon atau agen tambahan yang perlu dijalankan di sisi target.
π Prasyarat
Control Node (Server Utama)
- OS: Ubuntu/Debian, AlmaLinux/Rocky, CentOS, Fedora, macOS
- Python: Versi 2.7 atau β₯ 3.5
- Minimal RAM 512MB (disarankan 1GB+)
Managed Node (Target Server)
- SSH aktif dan bisa diakses
- Python 2.6+ atau 3.5+ sudah terinstall (wajib)
- Konfigurasi firewall yang mengizinkan port 22
π¦ Instalasi Ansible di Ubuntu/Debian
1. Update Paket Sistem
sudo apt update && sudo apt upgrade -y
Memastikan semua paket sistem terbaru agar kompatibel.
2. Tambahkan Repository Ansible
sudo apt install software-properties-common -y
sudo add-apt-repository --yes --update ppa:ansible/ansible
Menambahkan PPA resmi agar bisa install versi stabil Ansible.
3. Install Ansible
sudo apt install ansible -y
Perintah utama untuk install Ansible.
4. Verifikasi Instalasi
ansible --version
Mengecek versi Ansible yang terpasang.
π¦ Instalasi Ansible di AlmaLinux/Rocky Linux
1. Update Sistem
sudo dnf update -y
Mengupdate semua paket sistem.
2. Tambahkan EPEL Repository
sudo dnf install epel-release -y
EPEL menyediakan banyak paket tambahan termasuk Ansible.
3. Install Ansible
sudo dnf install ansible -y
Install paket Ansible.
4. Verifikasi Instalasi
ansible --version
π οΈ Konfigurasi Dasar
1. Buat File Inventory
echo "192.168.1.10 ansible_user=root" > ~/ansible_hosts
Mendefinisikan IP dan user untuk server target.
2. Uji Koneksi
ansible -i ~/ansible_hosts all -m ping --ask-pass
Mengirim ping dari Ansible ke semua target.
βοΈ Contoh Playbook Sederhana
Buat file hello.yml
:
---
- name: Uji Playbook Ansible
hosts: all
become: yes
tasks:
- name: Ping
ping:
- name: Buat file uji coba
copy:
content: "Hello dari Ansible"
dest: /tmp/hello_ansible.txt
Jalankan playbook:
ansible-playbook -i ~/ansible_hosts hello.yml --ask-become-pass
π Pengujian Lanjutan
Menyalin File
ansible all -i ~/ansible_hosts -m copy -a "src=/etc/hosts dest=/tmp/hosts_copy" --ask-become-pass
Jalankan Perintah Shell
ansible all -i ~/ansible_hosts -a "uptime"
Jalankan Modul raw
jika Python belum tersedia di node
ansible all -i ~/ansible_hosts -m raw -a "apt install -y python3" --ask-become-pass
π‘οΈ Gunakan Ansible Vault untuk Data Rahasia
Ansible Vault digunakan untuk menyimpan data sensitif secara terenkripsi, seperti password, token, atau API key. Ini berguna agar data penting tidak terlihat langsung di file YAML biasa.
Contoh isi secrets.yml
sebelum dienkripsi:
mysql_root_password: rahasiaRoot123
mysql_user: appuser
mysql_user_password: rahasiaUser123
Enkripsi file:
ansible-vault encrypt secrets.yml
π§ͺ Contoh Deploy MySQL Server
Inventory (~/ansible_hosts
)
192.168.1.10 ansible_user=root
File: mysql_deploy.yml
---
- name: Deploy MySQL Server
hosts: all
become: yes
vars_files:
- secrets.yml
tasks:
- name: Install MySQL Server
apt:
name: mysql-server
state: present
when: ansible_os_family == "Debian"
- name: Set root password
mysql_user:
name: root
host_all: yes
password: "{{ mysql_root_password }}"
login_unix_socket: /var/run/mysqld/mysqld.sock
- name: Buat user aplikasi
mysql_user:
name: "{{ mysql_user }}"
password: "{{ mysql_user_password }}"
priv: '*.*:ALL'
host: "%"
state: present
login_user: root
login_password: "{{ mysql_root_password }}"
- name: Buat database aplikasi
mysql_db:
name: appdb
state: present
login_user: root
login_password: "{{ mysql_root_password }}"
Jalankan Playbook:
ansible-playbook -i ~/ansible_hosts mysql_deploy.yml --ask-vault-pass
π§© Troubleshooting Umum
Masalah | Penyebab | Solusi |
---|---|---|
Permission denied | SSH Key belum dikonfigurasi | Gunakan ssh-copy-id atau --ask-pass |
python not found | Target tidak punya Python | Gunakan modul raw untuk install Python |
UNREACHABLE! | IP salah / SSH mati | Pastikan IP benar, SSH hidup, firewall terbuka |
π Penutup
Dengan Ansible, kamu dapat menyederhanakan manajemen server, deployment aplikasi, dan konfigurasi sistem secara otomatis dan konsisten. Panduan ini ditujukan untuk pemula agar bisa memulai dengan cepat dan percaya diri.
Pastikan kamu juga membaca dokumentasi resmi di https://docs.ansible.com/ dan eksplorasi fitur lanjutan seperti Role, Inventory Dinamis, dan integrasi CI/CD.
π§βπ» Ingin lebih lanjut?
- Buat Role untuk webserver
- Deploy WordPress otomatis
- Gunakan Ansible di Jenkins pipeline
Silakan tinggalkan kritik dan saran di kolom komentar. Jika tertarik, jangan ragu untuk membaca artikel lanjutan.
Test
Tos