Bugün son zamanların popüler altyapı otomasyon araçlarından bahsetmek istiyorum. CFEngine, Bcfg2, Puppet ve Chef gibi ürünler bulut, sanal ve fiziksel ortamların otomasyonunda sıkça kullanılmaktadır
Altyapı yönetimi yapan ekiplerin işlerini rahatlatan bu ürünler son zamanlarda yazılımcıların da dikkatini çekmeye başladı. Ürünlerin yazılım projelerine de dahil edildiğini görmek mümkün. Özellikle yazılımcılar ile alt yapı yönetimi yapan uzmanlar arasında kalan bölgede bu araçların güzel işler yaptığını görüyoruz.
Bu ürünlerden benim ilgimi en çok çeken Puppet ve Chef e kısa bir bakış atmak istiyorum.
CHEF :
2009 yılından bu yana kullanılmakta olan Chef in Puppet tan etkilendiğini söylemek mümkün. Ubuntu, Debian, Rhel, Centos, Fedora, MAC OS, Windows, MS Windows Server gibi geniş bir yelpazede ürünü destekliyor. Temelde geliştirme Ruby scripting dili domaininde yapılmakta, buda Ruby bilen kişilerin Chef i kullanmasını kolaylaştırıyor.
Birbiri ile iletişim halinde 3 modül içermektedir. Chef sunucusu, node lar ve Chef Workstation. Chef sunucusu çoklu node ortamlarını yönetebilecek konfigurasyon datası içerir.Bu konfigurasyonlar ve kaynaklar gerektiğinde node lar tarafından istenir. Chef otomasyon adımlarını içeren reçeteleri üzerinde tutar. Birden fazla reçete (Recipe) ve şablon (Template) CookBook ları oluşturur. Kullanıcılar "Knife" ismi verilen bir CLI aracılığı ile Chef ile etkileşime geçerler.Belirlenen bir otomasyon reçetesinin bir yada çoklu node ortamına uygulanması mümkündür. Bir otomasyon reçetesi uygulanırken diğer reçeteleri de çağırarak uygulamaya koyabilir.
Alttaki çizimden anlaşılacağı üzere CookBook ları workstationda düzenleyip Knife ile Chef sunucusuna göndeririz. Chef istemcisi belli periyodlarda yapılandırma bilgilerini sunucudan alarak node lar üzerinde uyguluyor.
Chef komponentlerini detaylı listeleyecek olursak;
Component | Description |
---|---|
Attributes | Describe node data, such as the IP address and hostname. |
Chef client | Does work on behalf of a node. A single Chef client can run recipes for multiple nodes. |
Chef Solo | Allows you to run Chef cookbooks in the absence of a Chef server. |
Cookbooks | Contain all the resources you need to automate your infrastructure and can be shared with other Chef users. Cookbooks typically consist of multiple recipes. |
Data bags | Contain globally available data used by nodes and roles. |
Knife | Used by system administrators to upload configuration changes to the Chef Server. Knife is used for communication between nodes via SSH. |
Management console | Chef server's web interface for managing nodes, roles, cookbooks, data bags, and API clients. |
Node | Hosts that run the Chef client. The primary features of a node, from Chef's point of view, are its attributes and its run list. Nodes are the component to which recipes and roles are applied. |
Ohai | Detects data about your operating system. It can be used stand-alone, but its primary purpose is to provide node data to Chef. |
Recipe | The fundamental configuration in Chef. Recipes encapsulate collections of resources that are executed in the order defined to configure the nodes. |
Repository (Chef repository) | The place where cookbooks, roles, configuration files, and other artifacts for managing systems with Chef are hosted. |
Resource | A cross-platform abstraction of something you're configuring on a node. For example, users and packages can be configured differently on different OS platforms; Chef abstracts the complexity in doing this away fro m the user. |
Role | A mechanism for grouping similar features of similar nodes. |
Server (Chef server) | Centralized repository of your server's configuration. |
Chef ile yapılabilecek basit bir örneği ele alacak olursak;
Networkünüzdeki tüm windows, linux, unix sunucularınız ile router ve güvenlik cihazlarınızda NTP konfiurasyonu yapmak istiyorsunuz. NTP konfigurasyonu olmayanlara eklenecek, var olanlarsa ise bu konfigurasyon yenilenecek. Bu işi Chef ile hazırlayacağınız otomasyon reçeteleri ile hızlıca halletmeniz mümkün olacaktır. Onlarca cihazdan binlerce cihaza konfiurasyon yapmak için aynı reçeteleri kullanarak hem zamandan kazanacak hem de insan kaynaklı dikkatsizlikler ile oluşabilecek hataların önüne geçeceksiniz.
Chef ile neler yapabiliriz;
Hayallerinizle sınırlı olmakla birlikte altta birkaç başlık sayabiliriz.
- Sunucu başlatma/kapatma
- Sunucu üzerine uygulama kurma
- Sunucu üzerinde uygulama yönetimi
- Sunucu üzerinde konfigurasyon yönetimi
- Sunucu envanter yönetimi
- Sunucu üzerinde şirket politikalarına uyumluluk kontrolleri
- Kurulacak uygulama öncesi ortam isterlerinin hazırlanması
- Yeni sunuculara işletim sistemi kurulumu...
Chef ile neler yapabiliriz;
Hayallerinizle sınırlı olmakla birlikte altta birkaç başlık sayabiliriz.
- Sunucu başlatma/kapatma
- Sunucu üzerine uygulama kurma
- Sunucu üzerinde uygulama yönetimi
- Sunucu üzerinde konfigurasyon yönetimi
- Sunucu envanter yönetimi
- Sunucu üzerinde şirket politikalarına uyumluluk kontrolleri
- Kurulacak uygulama öncesi ortam isterlerinin hazırlanması
- Yeni sunuculara işletim sistemi kurulumu...
PUPPET :
Puppet ın 2005 yılı civarından buyana kullanıldığını görüyoruz. Google, Oracle gibi firmalar altyapı yönetiminde bu aracı kullanmaktadır. Chef e göre daha zor bir öğrenme süreci olan Puppet çok geniş bir yelpazede işletim sistemini desteklemektedir. Kullanıcı topluluklarının Chef e göre çok daha geniş ve aktif olduğunu söylemek mümkün.
Puppet "Puppet Master" isimli bir ana sunucuyu kullanır. Bu sunucu node lar ve gruplar arasında konfigurasyonları merkezileştirir. Örnek vermek gerekirse üzerinde Apache çalışan linux makinelerinizi Puppet Master üzerinde gruplayabilirsiniz. Puppet Agent yönetilen sistemler üzerinde çalışır. Böylece herhangi bir otomasyon işini yada konfigurasyon değişikliğini bir yada birden fazla grup içinde makinelere aynı anda uygulama şansına sahip olursunuz.
Puppet "Facter" ismi verilen bir araca sahiptir. Facter sistem metadatasını tutar ve sunucular arasında filtrelemeye izin verir. Sunucu isimleri, işletim sistem versiyonları, modelleri, ip leri gibi...
Puppet komponentlerine göz atalım.
Component | Description |
---|---|
Agent | A daemon process running on a node that collects information about the node and sends it to the Puppet master. |
Catalog | Compilation of facts that specifies how to configure the node. |
Facts | Data about a node, sent by the node to the Puppet master. |
Manifest | Describes resources and the dependencies among them. |
Module | Groups related manifests (in a directory). For example, a module might define how a database like MySQL gets installed, configured, and run. |
Node | A host that is managed by the Puppet master. Nodes are defined like classes but contain the host name or fully qualified domain name. |
Puppet master | The server that manages all the Puppet nodes. |
Resource | For example, a package, file, or service. |
[Tablo http://www.ibm.com/ sitesinden alınmıştır.]
Puppet "Dependency Management" özelliğini diğer otomasyon ürünlerine göre çok daha fazla geliştirmiş ve ön plana çıkarmış bir üründür. Buda özellikle kompleks ve geniş IT altyapısı olan firmalarda özellikle altyapı yönetimi yapan ve script kullanmayı tercih mühendislerin gözünde ürünü vazgeçilmez hale getirmektedir.
Puppet ile network otomasyon işleri de yapmak mümkündür. Network ve güvenlik uzmanları çoğunlukla işlerini rahatlatmak amacı ile scripting kullanmakta fakat yaptıkları bu işleri daha organize ve tekrar kullanılabilir hale getirememektedirler. Puppet bu konuda da geniş networklerin yönetiminde uzmanlara zaman kazandırmakta ve mühendisleri yaptıkları işlerde insan hatasından uzak tutmaktadır.
Puppet ile yapılabileceklere bir örnek vermek gerekirse;
Bir bankaya ait 250 şube yönlendiricilerinde onlarca satırlık ACL düzenlemesi yapmak, yeni satır eklemek, silmek, var olan ACL satırlarında değişiklik yapmak ve bu işlemleri hatasız gerekleştirmek çok uzun bir sürece yayılacak bir projedir. Puppet ile bunu çok kısa sürede yapmanız mümkündür. Bunu yaparken yapılan konfigurasyonların test edilmesi, rollback mekanizmasının oluşturulması gibi konular da Puppet ın yetenekleri arasında olacaktır.
Puppet ile yapılabilecekleri genelleyecek olursak;
- Sunucu başlatma/kapatma
- Sunucu üzerine uygulama kurma
- Sunucu üzerinde uygulama yönetimi
- Sunucu üzerinde konfigurasyon yönetimi
- Sunucu envanter yönetimi
- Sunucu üzerinde şirket politikalarına uyumluluk kontrolleri
- Kurulacak uygulama öncesi ortam isterlerinin hazırlanması
- Yeni sunuculara işletim sistemi kurulumu
- Disk/Storage/Dosya Sistemi yönetimi
- Kullanıcı/Grup yönetimi
- Yedekleme işlemleri
- Güvenlik yönetimi
Ve daha önce de belirttiğimiz gibi hayallerinizle sınırlı pek çok otomasyon işi.
Puppet ile network otomasyon işleri de yapmak mümkündür. Network ve güvenlik uzmanları çoğunlukla işlerini rahatlatmak amacı ile scripting kullanmakta fakat yaptıkları bu işleri daha organize ve tekrar kullanılabilir hale getirememektedirler. Puppet bu konuda da geniş networklerin yönetiminde uzmanlara zaman kazandırmakta ve mühendisleri yaptıkları işlerde insan hatasından uzak tutmaktadır.
Puppet ile yapılabileceklere bir örnek vermek gerekirse;
Bir bankaya ait 250 şube yönlendiricilerinde onlarca satırlık ACL düzenlemesi yapmak, yeni satır eklemek, silmek, var olan ACL satırlarında değişiklik yapmak ve bu işlemleri hatasız gerekleştirmek çok uzun bir sürece yayılacak bir projedir. Puppet ile bunu çok kısa sürede yapmanız mümkündür. Bunu yaparken yapılan konfigurasyonların test edilmesi, rollback mekanizmasının oluşturulması gibi konular da Puppet ın yetenekleri arasında olacaktır.
Puppet ile yapılabilecekleri genelleyecek olursak;
- Sunucu başlatma/kapatma
- Sunucu üzerine uygulama kurma
- Sunucu üzerinde uygulama yönetimi
- Sunucu üzerinde konfigurasyon yönetimi
- Sunucu envanter yönetimi
- Sunucu üzerinde şirket politikalarına uyumluluk kontrolleri
- Kurulacak uygulama öncesi ortam isterlerinin hazırlanması
- Yeni sunuculara işletim sistemi kurulumu
- Disk/Storage/Dosya Sistemi yönetimi
- Kullanıcı/Grup yönetimi
- Yedekleme işlemleri
- Güvenlik yönetimi
Ve daha önce de belirttiğimiz gibi hayallerinizle sınırlı pek çok otomasyon işi.
Teşekkürler,
Cem Selmanoğulları
elinize sağlık, güzel bir yazı olmuş..
YanıtlaSilTeşekkür ederim Soner Bey
SilThanks for sharing this information. You may also refer for practice of Puppet and Chef http://www.s4techno.com/lab-setup/
YanıtlaSilThanks for sharing this informative information. You may also visit http://www.s4techno.com/hadoop-training-in-pune/ for more details.
YanıtlaSil