HOTLINE

(0275) 2974 127

CHAT WA 24/7
0859-60000-390 (Sales)
0852-8969-9009 (Support)
Blog

Cara Menulis, Membuat dan Menjalankan Ansible Playbooks

Ansible Playbooks adalah tempat di mana kode Ansible ditulis, sejenis automation tasks yang dapat menjalankan perintah dengan sedikit atau hampir tidak perlu melibatkan campur tangan manusia. Playbooks merupakan salah satu bagian dari Ansible inventory. Di sini akan mempelajari bagaimana cara menulis, membuat hingga menjalankan Ansible Playbooks di server.

Ansible

Ansible adalah tool manajemen konfigurasi yang modern dan tidak memerlukan software agent pada Remote Nodes atau Hosts Node. Namun hanya perlu menggunakan SSH dan Python saja untuk berkomunikasi dan mengeksekusi perintah pada Hosts Node. Provisioning tool ini dikembangkan oleh salah satu perusahaan yang terkenal membuat software open source, RedHat.

Keberadaan arsitektur yang tidak memerlukan software khusus untuk di install pada server/node membuat Ansible bisa digunakan sebagai alternatif yang bagus untuk otomasi server. Selain itu, Ansible juga menggunakan SSH untuk mengeksekusi automation task dan file YAML (Yet Another Markup Language) yang bisa dibaca manusia untuk menentukan provisioning details.

Ansible dapat berjalan hanya dengan koneksi SSH dan tidak membutuhkan agent apapun untuk menjalankannya, namun untuk menjalankan ansible di server deployment minimal memiliki library python di dalam server deployment tersebut.

Ada 2 hal yang sangat penting jika ingin menggunakan sebuah Ansible, yaitu :

1. Inventory

Inventory adalah tempat di mana kita menyimpan alamat dari host/server yang akan menjadi tujuan dijalankannya konfigurasi yang telah ditentukan oleh Ansible.

2. Playbook

Playbook adalah tempat pendefinisian berbagai jenis konfigurasi yang akan dijalankan di target host.

Sebenarnya ada 2 cara untuk menjalankan ansible, yaitu melalui playbook dan ad-hoc. Jika menjalankan ansible dengan playbook maka perlu untuk membuat file playbook seperti di atas. Namun jika menggunakan ad-hoc bisa langsung menjalankan command tanpa playbook.

  • Ansible Ad-Hoc

Cara menjalankan ansible berupa command-line instruksi via terminal.

  • Ansible Playbooks

Cara menjalankan ansible yang terdiri dari playbook atau file YML dan file YML terdiri dari task, dimana task akan memanggil modul-modul ansible. Ansible playbook akan di jalankan secara berurutan.

  • Ansible Tower

Ansible Tower merupakan automation untuk kalangan Enterprise dan juga berbayar. Ansible Tower memiliki banyak kemudahan di bandingkan ansible tipe lain. Ansible Tower lebih mudah untuk mengontrol server di karenakan memiliki halaman UI, selain itu juga module-module lain. Untuk keamanan ansible Tower juga sudah menyediakan secara langsung.

Anatomi Ansible YAML File

Seperti yang disebutkan di atas, untuk menjalankan Ansible diperlukan inventory dan playbook. Meskipun masih ada file-file lain yang mungkin perlu dibuat, tetapi di sini akan membahas file yang paling dasar dan paling dibutuhkan oleh Ansible.

1. Inventory (file)

Di dalam sebuah inventory perlu mendefinisikan host yang akan menjadi ansible slave dan juga nama grup.

2. Task

Di dalam sebuah playbook, terdapat kumpulan tugas berisi konfigurasi sederhana yang disebut dengan task. Penulisan task yang paling sederhana adalah mendefinisikan nama task dan juga modul yang akan digunakan.

Nama task berfungsi sebagai dokumentasi dari tujuan task tersebut dibuat dan mempermudah untuk troubleshooting ketika error terjadi. Sedangkan modul adalah pengganti dari perintah-perintah yang dijalankan secara manual pada terminal (shell).

3. Playbook (file)

Seperti yang sudah dijelaskan, kumpulan task tersebut akan membuat sebuah object yang disebut play. Karena seringkali 1 playbook hanya memiliki satu play, seringkali play (kumpulan task) disebut sebagai playbook (sebutan untuk file YAML nya).

Struktur dari direktori ketika sudah membuat 2 file tersebut kira-kira seperti ini :

Cara Menulis Ansible Playbooks

Ada beberapa hal yang perlu disiapkan, yaitu :

  • Memiliki 3 VPS yang aktif dengan OS Ubuntu 20.04.
  • Memiliki akses root.
  • 1 VPS yang sudah terinstall Ansible.
  • Inventory File yang sudah disetup pada Ansible Control Node.

Tiga VPS yang perlu disiapkan untuk :

  • Satu Ansible Control Node

Ansible Control Node yang akan digunakan untuk connect dan control ke Ansible Host melalui SSH.

  • Dua Ansible Hosts

Ansible Host nantinya akan dikontrol oleh Ansible Control Node yang sudah dikonfigurasi untuk otomasi.

Kemudian akan memulai dan menjalankan Ansible Playbooks dengan cara berikut :

Create dan Running Ansible Playbooks

Playbooks menggunakan format YAML untuk menentukan 1 atau lebih plays. Di sini memulai dengan membuat direktori baru dengan nama “ansible-practice”. Penulisan Ansible Playbooks dilakukan di Ansible Control Node.

$ cd ~
$ mkdir ansible-practice
$ cd ansible-practice

Salin inventory file ke direktori yang baru dibuat, yaitu ansible-practice.

$ cp ~/ansible/inventory ~/ansible-practice/inventory

Buat file playbook baru.

$ nano playbook-01.yml

Tambahkan konten di bawah ini.

---
- hosts: all
  tasks:
    - name: Print message
      debug:
        msg: Hello Testing Ansible

Kemudian simpan dan keluar.

Coba hasil playbook ini pada server yang disetup di inventory file dengan menjalankan perintah ansible-playbook. Di sini menggunakan inventory file dengan nama inventory dan root untuk menghubungkan ke remote server atau Ansible Hosts.

$ ansible-playbooks -i inventory -u root

Maka outputnya akan seperti di bawah ini.

PLAY [all] *********************************************************************

TASK [Gathering Facts] *********************************************************
Enter passphrase for key '/root/.ssh/id_rsa': 
ok: [103.xxx.xxx.201]

TASK [Print message] ***********************************************************
ok: [103.xxx.xxx.201] => {
    "msg": "Hello Testing Ansible"
}

PLAY RECAP *********************************************************************
103.xxx.xxx.201            : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0 

Playbooks di sini maksudnya adalah suatu konfigurasi yang berisi kumpulan role pada Ansible yang dapat dijalankan untuk mengonfigurasi sebuah server, dengan jumlah server yang ada pada Ansible Hosts.

Kelebihan Ansible

Berikut ini beberapa kelebihan menggunakan Ansible, yaitu :

1. Mudah digunakan

Ansible mudah digunakan karena dapat langsung digunakan dengan 1 command line.

2. Mudah dipahami

Selain digunakan langsung dengan 1 command line, ansible juga mendukung pengumpulan tugas yang biasa disebut dengan ansible-playbook, playbook ini berisikan pekerjaan pekerjaan yang akan dieksekusi secara berurutan. Playbook ini dibuat dengan format yaml yang mudah dipahami. Dengan menggunakan dan juga semua konfigurasi saat ini tetap sama seperti konfigurasi di hari berikutnya.

3. Terdokumentasi

Jika saat ini sedang melakukan setup 1 server dan beberapa bulan kemudian diminta lagi untuk setup beberapa server berdasarkan sebelumnya yang telah disetup, hasilnya mungkin beda. Dengan penggunaan ansible, cukup membuat 1 konfigurasi dan bisa dieksekusi berkali-kali dengan hasil yang sama.

4. Support Command Bash

Ansible memiliki banyak module yang bisa digunakan namun jika ingin mengeksekusi perintah tertentu namun belum ada dimodule ansible, tetap bisa mengesekusinya dengan module command dan kemudian bisa diisi dengan command yang ingin dieksekusi.

5/5 - (2 votes)
Risa Y

Recent Posts

Amankan Website dari XSS Vulnerability dengan CSP

Ketika kamu ingin membuat website, ada beberapa hal yang perlu kamu perhatikan, khususnya tingkat keamanan…

17 hours ago

Rekomendasi Website dan Aplikasi Kompres File PDF

Kompresi online file PDF ukuran 200 KB dan 500 KB atau rahasia kompresi PDF di…

19 hours ago

Disclaimer: Pengertian, Jenis, dan Cara Membuatnya

Kamu pasti tahu disclaimer di blog, kan? Pasalnya, disclaimer merupakan salah satu tulisan yang sering…

2 days ago

Cara Mudah Menghapus Cache di Google Chrome

Pernahkah Anda mendengar kata cache? Jadi, apakah ada perbedaan antara cache hosting dan cache browser…

2 days ago

Yuk Cari Tahu! Cara Memasang Widget di WordPress

Apakah kamu pengguna WordPress? Apakah kamu ingin menambahkan kalender atau kode HTML ke website? Jika…

3 days ago

Apa Saja yang Harus Dipejalari Untuk Menjadi Seorang IT Support?

Saat ini, karir apa pun yang berhubungan dengan IT menjadi semakin populer. Tak heran jika…

3 days ago