Bila anda mengira Chef ini adalah koki yang bisa memasak makanan yang enak, anda salah besar. Chef yang dimaksud dalam artikel ini adalah Chef.io, perangkat otomasi manajemen komputer. Pada umumnya Chef.io digunakan untuk pemeliharaan server.
Kenapa Chef.io dibutuhkan? Kenapa tidak melakukan pemeliharaan sendiri saja?
Saya juga berpikir hal sama, karena toh selama ini sebagai system administrator amatir paling hanya menangani 1-5 server. Untuk jumlah ini masih bisa deh ssh ke masing-masing server untuk melakukan pemeliharaan.
Tetapi, ketika diminta menangani ratusan server, mulai deh kepala cenat cenut. Bagaimana caranya memastikan kalau server-server yang berfungsi sama memiliki konfigurasi sama? Ketika ada website update, tidak lucu dong kalau misalnya halaman di web server yang satu berbeda dengan yang lain? Atau misalnya ada update MySQL yang berbeda antara server satu dengan yang lain? Lagipula, mau ssh ke masing-masing dari ratusan server ini hanya untuk menjalankan "sudo apt-get upgrade"?
Tantangan ini yang coba diselesaikan oleh Chef.io. Seriap server yang dikelola oleh Chef.io, disebut Chef Client, akan terhubung dengan Chef Server. Chef Client akan secara rutin memberikan data terbaru kepada Chef Server, sekaligus meminta konfigurasi terbaru yang dalam dunia Chef.io disebut run-list. Chef client lalu membandingkan antara konfigurasi terbaru dengan konfigurasi saat ini, dan akan menjalankan perintah-perintah pada sistem operasi di Chef Client sehingga konfigurasi Chef Client sesuai dengan konfigurasi terbaru.
Dengan mekanisme ini, setiap update pada server cukup dimasukkan ke dalam run-list. Selanjutnya semua Chef Client yang terhubung dengan Chef Server akan melakukan update sehingga semuanya akan memiliki konfigurasi yang sama.
Lha, terus, kalau saya punya 100 server, semua server itu akan punya konfigurasi yang sama dong? Padahal kan ada server untuk web, ada yang untuk database, ada juga yang untuk pengolahan data. Gimana caranya kalau mau punya server yang berbeda?
Jawabannya, Chef.io mengenal yang terminologi role, atau peran. Setiap server bisa memiliki peran yang berbeda-beda, dan oleh karena itu, di dalam Chef Server, setiap Chef Client bisa diberikan peran yang berbeda. Setiap peran/role bisa memiliki satu atau lebih run-list, dan peran/role yang berbeda bisa memiliki run-list yang berbeda.
Lalu, bagaimana melakukan konfigurasi run-list ini? Nantikan posting selanjutnya yang akan membahas lebih jauh tentang run-list ini. Selamat memasak.
Tidak ada komentar:
Posting Komentar