Penggunaan Roles dan Playbook pada Ansible

Wednesday, March 2nd, 2016 - Tutorial
Advertisement

ansible-logoTutorlinux.com tak henti hentinya membagikan tulisan tulisan yang berkaitan dengan tools menarik ini, Ansible. Ansible yang telah diakuisisi oleh Red Hat, Inc. , ini sangat populer di kalangan system engineer, system administrator dan tentunya DevOps Engineer. Mengelola ratusan server tak akan lebih mudah tanpa Ansible. Memang masih menjadi sebuah perdebatan, namun pastinya Ansible akan sangat bermanfaat dengan metode yang tepat.

Roles

Metode yang tepat tersebut tentunya dengan mengumpulkan segala resource step instalasi dan konfigurasi ke dalam kumpulan atau koleksi script. Di ansible, hal tersebut dikenal dengan roles. Dan kumpulan roles tersebut dapat dipanggil secara mudah oleh ansible-playbook. Apa itu ansible-playbook dan roles. Roles, secara sederhana berisikan sekumpulan langkah untuk menginstall sebuah software (meski secara prakteknya 1 role bisa dipakai untuk menginstall berbagai software). Namun pada best practice, satu role dipakai untuk 1 set instalasi. Ambil contoh jika anda punya web server, maka 1 role berisikan semua langkah untuk instalasi nginx atau apache. sedangkan untuk php atau rails nya ada 1 role lagi. Memang pada prakteknya, role ini sangat memungkinkan seorang pengguna ansible leluasa mengubah urutan pada ansible playbooknya. Misalnya pada kasus web server, dapat juga dipisahkan 1 role tersendiri untuk menangani virtual host nya. Nah, semua bergantung pada kreatifitas dan kebutuhan si pengguna Ansible itu sendiri. Hm.. ini akan menjadi pembahasan yang cukup panjang dan sedikit membosankan, tapi worth to know 🙂

Contoh sebuah role :

Diusahakan dalam menulis sebuah role, perhatikan penulisan task agar dapat digunakan kembali (faktor re-useable) oleh playbook lainnya.

Pada penggunaan playbook dan roles, roles sendiri mempunyai beberapa direktori dan struktur. Dan hal tersebut dapat mempermudah menjalankan task dan playbook pada akhirnya.

Jika diperhatikan dalam 1 role ada direktori files, templates, tasks, handlers, vars, defaults dan meta.

  • files dan templates umumnya berisikan kumpulan berkas yang ingin di copy. templates sedikit berbeda karena di dalamnya terdapat sebuah file dengan format jinja (j2). kita akan membahas templating ini pada topik yang terpisah.
  • tasks berisikan langkah – langkah yang akan dijalankan secara berurutan dalam role.
  • handlers berisikan langkah yang akan dieksekusi dalam tasks bila task tersebut sudah dilakukan. misalnya setelah mengcopy file configurasi nginx, task dapat memberitahu handlers untuk merestart service nginx
  • vars berisikan variable yang dibutuhkan dalam sebuah task
  • default berisikan variable default untuk task, sehingga jika playbook tidak mengubah variable atau tidak ada extra vars yang di state, maka default akan memberikan nilai awal.
  • meta berisikan hal hal yang dibutuhkan oleh task. pada prakteknya meta akan dieksekusi terlebih dahulu ketimbang task

Playbook

Sedangkan ansible playbook sebenarnya berisikan kumpulan roles yang akan dijalankan. Secara sederhana playbook merupakan keseluruhan langkah utuh untuk mengkonfigurasi sebuah server atau apapun itu. Sebagai contoh sebuah ansible playbook yang dipakai untuk mengkonfigurasi sebuah LEMP stack, maka yang dilakukan adalah membuat role untuk nginx, mysql dan php. Lalu ke semua role tersebut dipanggil oleh ansible playbook. Nah, apa sih gunanya playbook jika hanya berfungsi untuk mengeksekusi semua roles. Playbook tidak hanya mempunyai kemampuan untuk mengeksekusi semua roles, namun dapat juga dipergunakan untuk mengeksekusi task di dalam ansible role berdasarkan tags nya.

Contoh playbook :

Pada playbook kita bisa menambahkan variable yang dibutuhkan oleh tasks. Jika pun sudah diberikan nilai oleh vars atau default, playbook dapat mengoverride isi variable tersebut. Penggunaan variable akan dibahas pada topik selanjutnya.

ansible playbook sendiri dapat dipanggil dengan perintah ansible-playbook -i path/inventory namaplaybook.yml   sangat mudah bukan?

pada topik selanjutnya penulis akan mencoba membuat satu contoh kasus untuk memasang LEMP stack pada ubuntu server. semoga cepat selesai playbooknya ya. Oh iya jangan lupa untuk comment agar dapat menambahkan hal yang terlewat ya 🙂

Incoming search terms:

  • belajar membuat playbook
  • Belajar menjadi DevOps
Advertisement
Penggunaan Roles dan Playbook pada Ansible | Jsmith | 4.5
Like Page Tutorlinux di Facebook
Leave a Reply