Automation Tool : Puppet

Pekan ini, saya kembali mencoba untuk mencari dan mempelajari ilmu baru, khususnya automatisasi dengan Puppet. Salah satu hal dalam dunia IT yang membutuhkan effort yang cukup besar adalah scaling. Ya scaling, jadi bagaimana cara mengembangkan sistem-sistem yang sudah ada menjadi sistem yang lebih besar untuk memenuhi kebutuhan user yang semakin hari semakin bertambah, apalagi sekarang hampir semua aspek yang ada sudah beralih menggunakan teknologi komputer.

Proses scaling ini tentu saja membutuhkan waktu yang tidak sebentar, serta ahli yang sudah mengerti betul dengan teknologi yang akan di scaling. Maka dari itu, saat ini banyak sekali muncul teknologi-teknologi automatisasi yang memberikan kemudahan bagi para administrator IT, jadi nantinya scaling tidak perlu dilakukan secara manual. Administrator IT cukup membuat server master dengan konfigurasi yang standard, setelah itu konfigurasi server master akan langsung di aplikasikan ke komputer-komputer yang ada di sistem secara otomatis. Sehingga nantinya, administrator IT bisa memiliki waktu yang lebih banyak untuk belajar & mengembangkan kemampuan, karena sebagian besar pekerjaan sudah bisa dialihkan ke automation tool.

Automation tool ini juga bisa menjamin tidak akan ada error yang terjadi, karena kita tahu sistem komputer tidak akan pernah lelah. Berbeda dengan manusia yang bisa kelelahan, dan bisa dipastikan akan melakukan kesalahan apabila melakukan pekerjaan yang sama berulang kali & terus menerus selama berjam-jam.

Nah salah satu automation tool yang ada. Puppet ini bisa digunakan untuk automatisasi komputer berbasis Linux, MS Windows maupun MacOS.

Konsepnya kurang lebih seperti dibawah ini. Saya akan jelaskan konsep sebelum & sesudah adanya automation tool

Sebelum

  • Ada 1 infrastruktur yang besar terdiri ratusan komputer bahkan ribuan tanpa konfigurasi apa-apa (Fresh install). Nantinya akan dibuat dengan pengaturan/konfigurasi yang sama persis
  • Pengaturan/konfigurasi setiap komputer dilakukan secara manual satu persatu dengan jumlah orang yang tidak sebanding dengan jumlah komputer
  • Apabila ada penambahan komputer, maka perlu adanya effort lagi untuk melakukan pengaturan/konfigurasi setiap komputer baru secara manual
  • Apabila ada perubahan standard pengaturan/konfigurasi, maka perubahan harus dilakukan secara manual di setiap komputer.
  • Memakan waktu yang sangat lama & adanya resiko human error karena melakukan hal yang sama berulang kali

Sesudah

  • Ada 1 infrastruktur yang besar terdiri ratusan komputer bahkan ribuan tanpa konfigurasi apa-apa (Fresh install). Nantinya akan dibuat dengan pengaturan/konfigurasi yang sama persis
  • Dalam insfrastruktur tersebut, ada 1 server master (Puppet) yang sudah dibuat dengan standard pengaturan/konfigurasi yang ada
  • Semua komputer yang ada akan mengambil informasi pengaturan/konfigurasi apa saja yang harus dilakukan
  • Setelah itu semua komputer akan melakukan pengaturan/konfigurasi yang sudah distandardkan oleh server master
  • Setelah konfigurasi selesai, komputer akan memberikan report ke server master dan menyatakan bahwa pengaturan/konfigurasi sudah sesuai sehingga admin tahu bahwa konfigurasi sudah dilakukan di komputer tersebut
  • Tidak menghabiskan waktu admin, admin bisa belajar & menambah wawasan sambil menunggu konfigurasi semua komputer selesai, serta tidak akan ada human error

Sangat terlihat ya perbedaannya, dengan automatisasi admin tidak perlu repot lagi melakukan konfigurasi secara manual, bahkan admin bisa memiliki waktu lebih banyak untuk belajar.

Sekedar informasi tambahan, automation tool ini dibagi menjadi 2 tipe, tipe push dan juga pull. Puppet sendiri merupakan automation tool dengan tipe pull. Keduanya pun memiliki mekanisme yang berbeda.

Automation tool tipe push sesuai namanya memiliki mekanisme mendorong, jadi server master yang akan memberikan standard konfigurasi dan server master juga yang akan memberikan trigger kepada komputer client untuk eksekusi pengaturan/konfigurasi tersebut. Jadi secara prinsip yang bekerja secara aktif adalah server master. Contoh automation tool dengan tipe push ini adalah Ansible & Saltstack

Automation tool tipe pull memiliki mekanisme menarik, jadi komputer client akan melakukan pengecekkan standard pengaturan/konfigurasi yang ada di server master, apabila ada perubahan maka komputer klien akan menarik informasi pengaturan/konfigurasi yang ada di server master dan menerapkan konfigurasi tersebut. Jadi secara prinsip yang berkerja secara aktif adalah server-server client, tetapi karena hal tersebut juga maka setiap server client harus dilengkapi dengan agent automation tool. Contoh automation tool dengan tipe pull ini adalah Puppet & Chef

Secara penggunaan resource, tentu saja tipe push membutuhkan resource server master yang lebih banyak karena master yang berperan aktif, sedangkan untuk tipe pull membutuhkan agent di setiap clientnya sehingga membutuhkan sedikit effort dari admin untuk install agent sesaat setelah instalasi sistem operasi client dilakukan. Jadi pemilihan tipe harus disesuaikan dengan infrastruktur/environtment yang akan dikonfigurasi.

Ya kurang lebih seperti itu ya, sharing saya tentang Puppet automation tool, walaupun lebih banyak bahas konsep automation toolnya daripada Puppetnya 😀 . Untuk tulisan dengan topik konfigurasi Puppet belum bisa saya tulis, dikarenakan saya memang baru mulai 😀

One comment

Leave a Reply

Your email address will not be published.