Masdika Loading..
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portofolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • Cara Deploy WordPress di Kubernetes Lengkap dengan SSL Let’s Encrypt
  • Panduan Lengkap Install MetalLB di Kubernetes (VPS/Bare Metal) dengan IP Publik
  • Panduan Lengkap Deploy Ingress NGINX dan Cert-Manager Kubernetes dengan HTTPS Otomatis (Let’s Encrypt)
  • Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  • Monitoring Docker Container dengan CAdvisor, Node Exporter, Prometheus, dan Grafana

Recent Comments

  1. Masdika.BIZ.ID on Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  2. wwqqs on Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  3. Rio Ardiansyah on Panduan Lengkap Redis Docker untuk WordPress
  4. Masdika.BIZ.ID on Cara Monitoring Status Disk RAID di Server Dell Menggunakan Bash Script dan PercCLI
  5. fafiki on Cara Monitoring Status Disk RAID di Server Dell Menggunakan Bash Script dan PercCLI

Archives

  • July 2025
  • June 2025

Categories

  • Tutorial

Masddika.BIZ.ID

  • About
  • Terms & Conditions
  • Privacy Policy
Blog Post

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

June 15, 2025 Tutorial by Masdika.BIZ.ID
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

MasalahPenyebabSolusi
Permission deniedSSH Key belum dikonfigurasiGunakan ssh-copy-id atau --ask-pass
python not foundTarget tidak punya PythonGunakan modul raw untuk install Python
UNREACHABLE!IP salah / SSH matiPastikan 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.

Share:

Post navigation

Prev
Next
2 Comments
  • Dika 8:03 pm June 15, 2025 Reply

    Test

    • Masdika.BIZ.ID 8:06 pm June 15, 2025 Reply

      Tos

Write a comment Cancel Reply

Β© 2025 www.masdika.biz.id β€” Semua Hak Dilindungi