Perşembe, Ağustos 29, 2013

Chef Günlükleri (1) - Chef Nedir?

Bu sene stajımı sistem yönetimi üzerine yapıyorum. İlgilendiğim konu ise Chef. Baya sıkıntılar yaşatsa da Chef ile ilgili birçok şey öğrenmiş olduğumu fark etmek hoşuma gidiyor. Tabi öğrenecek daha çok şey var. Ama kendi bildiklerimi aktarmanın, hatta zamanı gelip unuttuğum bazı şeylere geri dönüp bakabilmenin önemli olduğunu düşünüyorum. O sebeple elimden geldiğince ve bildiğim kadarıyla Chef nedir, nasıl çalışır, nasıl kurulur, cookbook nedir gibi birçok şey yazacağım. Yanlış bir nokta gördüğünüzde bunu düzeltirseniz sevinirim. Sonuçta bende kendi çabamla öğreniyorum ve benim bir şeyi herhangi bir şekilde yapabilmiş olmam onun doğru bir yol olduğu anlamına gelmez. Şimdi gelelim Chef'in ne olduğuna.

Chef nedir? 

Chef Ruby ve Erlang ile yazılmış bir yapılandırma yönetim aracıdır diyor wikipedia. Sistem yapılandırmasını otomasyona bağlama görevini yerine getirir.

Peki bu neden çözülmesi gereken bir problem kapsamına girer?

  • Altyapı sürekli değişir, özellikle 'Bulut' sistemlerde
  • Farklı işletim sistemleri
  • Farklı markaların farklı donanımları
  • Yığındaki farklı uygulamalar

Chef ile tam olarak ne yapabilirsiniz?

  • Chef tarafından desteklenen sunucuları başlatıp/kapatabilirsiniz
  • Yeni sunucuların üzerine işletim sistemi kurabilirsiniz
  • Sunucuların üzerine uygulama kurabilirsiniz
  • Yeni uygulamanın ortamına uygun yapılandırılmasını sağlayabilirsiniz

Chef'in temel yapı taşları nelerdir?

  • Ortamlar (enviroment)
  • Nodelar
  • Cookbooklar
  • Tarifler (recipe)
  • Dosyalar/Şablonlar (files/templates)
  • Attributesler
  • Data Bagler
  • Arama
  • Ve daha fazlası
Bu resimden ne anlıyoruz?

  • Chef'te bir sürü katman bulunur: Enviroment, node, role, cookbook ...
  • Chef nodeları çevreler içinde gruplar.
  • Nodelar bir ya da birden fazla rolü içerir.
  • Rol bir ya da daha fazla sayıdaki cookbook'un birleşiminden oluşur.
  • Cookbooklar birden fazla tarif (recipe), şablon (template), dosyaların birleşiminden oluşur.

Chef'in 3 temel parçası avr diyebiliriz. Birisi chef-server diğeri node'ları yöneten chef-client sonuncusu ise sistem yöneticisinin bunları yönettiği workstation.
Chef bileşenlerinin birbiriyle ilişkisi

Resimden açıkça görüldüğü gibi cookbookları ya da ayarları workstationda düzenleyip knife aracılığı ile chef sunucusuna gönderiyoruz. Chef istemcisi ise belirlenen çalışma zamanlarında sunucudan yapılandırma bilgilerini alıp bunları nodelar üzerinde uyguluyor.

Knife nedir?

Workstationdan sunucuyla ilişki kurmaya yarayan bir komut satırı aracı kendisi. Knife kullanıcıların nodeları, cookbookları, rolleri, çevreleri, data bagleri gibi şeyleri kontrol edebilmesini sağlar.

Bir sonraki yazıda chef-server ve chef-client kurulumları ile nodeları tanımlamayı yazacağım. Bu benim en zorlandığım yerdi diyebilirim. Hala tam kavradığımdan emin olamıyorum doğrusu.

Son olarak Chef öğrenmek için bazı linkleri paylaşayım her ne kadar google'a yazıldığında çıkacak ilk linkler olsa da.

1. http://docs.opscode.com/ Resmi dökümantasyon. Kurulum açısından çok yardımcı olmadı doğrusu ama sorun çözme kısmını sevdim.

2. http://learnchef.getharvest.com/introduction.html Bu yazıyı yazmak için kullandığım kaynaklardan biri.

3. http://webchat.freenode.net/?channel=chef IRC #chef kanalı.

Hiç yorum yok:

Yorum Gönder