Configuration Management Dasar Menggunakan Ansible (Bagian 2)

Melanjut dari artikel sebelumnya: Configuration Management Dasar Menggunakan Ansible (Bagian 1). Seperti yang sudah saya bicarakan sebelumnya pada post tersebut, kali ini saya akan coba jelaskan Configuration Management Dasar menggunakan Ansible Playbook.

Sekilas tentang Ansible Playbook, jika sebelumnya kita menjalankan task task secara Ad-Hoc atau satu per satu. Dengan bantuan Ansible Playbook, kita dapat mendefinisikan sekumpulan task ke dalam 1 file (YAML), sehingga dengan hanya menjalankan 1 command, banyak task yang dapat dijalankan/dieksekusi. Hal ini mengacu kepada Dokumentasi Ansible Playbook.

Selain menyederhanakan eksekusi task, file-file YAML yang berisi task juga dapat disimpan ke repository. Sehingga setiap orang atau member yang membutuhkan code tersebut, dapat dengan mudah mengambil atau pull code tersebut. Selain itu jika ada perubahan dan dengan mudah melakukan push dan merge code di repository. Hal ini juga bisa disebut sebagai Infrastructure as a Code (IaC).

Topologi yang digunakan masih sama dengan post di bagian 1. Terdapat total 3 buah nodes server. node1 akan bertindak sebagai control plane dimana Ansible terinstall di node ini. Kemudian akan ada node2 dan node3 yang bertindak sebagai child node dimana nantinya konfigurasi akan diteruskan atau di-push ke node node tesebut.

Image

Skenarionya adalah dari control plane node akan melakukan instalasi aplikasi, namun kali ini dengan menjalankan ansible-playbook dari control plane node dan secara paralel konfigurasi akan berjalan ke semua node

Lingkungan sistem juga masih sama dengan post di bagian 1, yaitu 3 node AWS EC2 Instance yang berjalan menggunakan sistem operasi Ubuntu 20.04. Metode instalasi Ansible menggunakan metode instalasi via pip (Python package manager). Versi Python yang digunakan adalah versi 3.8.5

Berikut langkah-langkah konfigurasinya:

  1. Seperti pada post bagian 1, konfigurasi saya lakukan di dalam virtual environment. Kemudian saya buat 1 file baru dengan nama docker-install.yml

     cd demo-ansible
     source bin/activate
     cd lib/python3.8/site-packages/demo-ansbile
     touch docker-install.yml  
    

    Image

  2. Pada contoh kali ini, saya ingin melakukan instalasi awal Docker. Konfigurasi file docker-install.yml seperti berikut

    Image

    Langkah-langkah di atas mengacu kepada Dokumentasi Instalasi Docker di Ubuntu

  3. Sebelum melanjutkan konfigurasi, sekilas saya ingin jelaskan detail detail dari file .yml di atas

    Pada bagian ini, kita akan mendifinsikan awal file YAML yaitu ditandai dengan karakter "—". Kemudian saya sebutkan hosts mana saja yang akan dieksekusi (hosts: nodes). Kemudian dengan bantuan command "become: true", kita akan menjalankan command sebagai sudoer. Task pertama yang saya definisikan adalah update apt.

    Image

    Selanjutnya, sesuai instruksi dari dokumentasi instalasi, saya definisikan task task terkait instalasi dependency, menambahkan GPG file dan menambahkan stable repository.

    Image

    Terakhir saya definisikan task update apt kembali dan install docker

    Image

  4. Langkah konfigurasi berikutnya adalah menjalankan command ansible-playbook dengan mengacu kepada file docker-install.yml di atas.

     ansible-playbook docker-install.yml  
    

    Image

    Selanjutnya ansible akan menjalankan task task yang sudah di-definsikan hingga akhir. Pastikan seluruh task berjalan sukses.

  5. Setelah semua task selesai dan sukses dijalankan. Selanjutnya kita pastikan bahwa docker sudah terinstall di node2 dan node3.

    Image

Dari contoh di atas, kita sudah dapat mensimulasikan configuration management yang lebih efisien menggunakan Ansible Playbook. Dan harapannya akan lebih memudahkan kita juga di saat kita perlu konfigurasi infrastruktur dengan jumlah yang banyak dan terdapat repetisi di dalamnya. Dan dengan metode IaC ini kita juga dapat berkolaborasi dalam menyusun configuration management, karena source code dapat kita simpan dan bagikan via repository.

Sekian artikel kali ini dan semoga bermanfaat.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

Situs yang Didukung WordPress.com.

Atas ↑

%d blogger menyukai ini: