Press ESC to close

Integrasi Docker dengan Ansible

WhatsAppTelegramFacebookXThreadsCopy Link

Anda membayangkan bisa mengelola ratusan kontainer Docker hanya dengan satu perintah otomatis? Tidak perlu lagi masuk ke tiap server, tidak perlu menjalankan docker run berulang kali. Itulah kekuatan integrasi Docker dengan Ansible — kombinasi sempurna antara otomatisasi dan efisiensi.

Namun, banyak pemula merasa bingung saat mulai belajar. “Harus mulai dari mana?”, “Bagaimana cara Ansible berinteraksi dengan Docker?”, atau “Apakah perlu konfigurasi rumit?” adalah pertanyaan umum yang sering muncul.

Tenang, artikel ini hadir untuk menjawab semua kebingungan itu. Di sini Anda akan menemukan:

  • Penjelasan singkat tentang bagaimana Ansible bekerja dengan Docker.
  • Langkah-langkah instalasi dan konfigurasi praktis.
  • Contoh playbook sederhana untuk mengelola kontainer Docker.
  • Tips agar integrasi berjalan lancar dan efisien.

Apa Itu Ansible dan Mengapa Digunakan Bersama Docker?

Ansible adalah alat otomatisasi (automation tool) berbasis agentless, artinya tidak memerlukan software tambahan di sisi target (hanya perlu SSH dan Python). Dengan Ansible, Anda bisa mengatur konfigurasi server, menjalankan perintah massal, hingga melakukan deployment aplikasi secara otomatis.

Docker, di sisi lain, adalah platform yang memungkinkan Anda menjalankan aplikasi dalam kontainer — lingkungan terisolasi yang ringan dan konsisten di berbagai sistem.

Ketika keduanya digabungkan, hasilnya luar biasa:
Anda bisa membangun, menjalankan, dan mengelola kontainer Docker secara otomatis dengan satu playbook Ansible.


Langkah-Langkah Integrasi Docker dengan Ansible

Berikut panduan praktis langkah demi langkah untuk menghubungkan keduanya.


1. Instalasi Docker

Jika Anda belum memiliki Docker, jalankan perintah berikut di sistem Linux (contoh: Rocky Linux, Ubuntu, atau Debian):

sudo dnf install docker-ce docker-ce-cli containerd.io -y
sudo systemctl enable docker --now

Periksa apakah Docker berjalan:

sudo docker ps

Jika muncul daftar kontainer (atau kosong tanpa error), berarti instalasi berhasil.


2. Instalasi Ansible

Selanjutnya, instal Ansible di mesin controller (biasanya laptop atau server utama):

sudo dnf install ansible -y

Cek versi:

ansible --version

Pastikan versi Ansible sudah 2.9 atau lebih baru agar modul Docker bisa digunakan.


3. Instal Koleksi Docker untuk Ansible

Agar Ansible dapat berinteraksi dengan Docker, kita perlu menginstal koleksi (collection) resminya:

ansible-galaxy collection install community.docker

Koleksi ini berisi berbagai module seperti:

  • docker_container → untuk membuat dan mengelola kontainer.
  • docker_image → untuk menarik (pull) dan menghapus image.
  • docker_network → untuk mengatur jaringan antar kontainer.

4. Membuat Inventory Ansible

Buat file inventory sederhana bernama hosts.ini:

[docker_hosts]
localhost ansible_connection=local

Artinya, Ansible akan menjalankan perintah Docker langsung di mesin lokal.


5. Menulis Playbook untuk Docker

Buat file bernama docker_playbook.yml dengan isi berikut:

---
- name: Deploy Kontainer Docker dengan Ansible
  hosts: docker_hosts
  become: true
  tasks:
    - name: Pastikan image Nginx sudah terunduh
      community.docker.docker_image:
        name: nginx
        source: pull

    - name: Jalankan kontainer Nginx
      community.docker.docker_container:
        name: webserver
        image: nginx
        ports:
          - "8080:80"
        state: started

Playbook ini akan menarik image Nginx dari Docker Hub dan menjalankan kontainer di port 8080.


6. Menjalankan Playbook

Eksekusi playbook Anda dengan perintah:

ansible-playbook -i hosts.ini docker_playbook.yml

Jika semua benar, Anda akan melihat status changed atau ok di terminal.
Sekarang, buka browser dan akses:

http://localhost:8080

Anda akan melihat halaman default Nginx berjalan di dalam kontainer Docker — semua dikendalikan lewat Ansible!


Anda telah memahami dasar integrasi Docker dan Ansible — mulai dari instalasi hingga membuat playbook pertama. Dengan otomatisasi ini, Anda bisa menghemat waktu, menghindari kesalahan manual, dan menjaga konsistensi deployment di berbagai server.

Ingin belajar lebih lanjut?
Baca juga: Membangun Infrastruktur Otomatis dengan Ansible Roles dan Playbooks

WhatsAppTelegramFacebookXThreadsCopy Link