1. Genel Bakış Puppet, kullanımı kolay ve güçlü olan açık kaynaklı bir yazılım otomasyonu yapılandırma ve dağıtım aracıdır ve giderek daha fazla ilgi görüyor; birçok büyük BT şirketi artık Puppet ile kümelerde yazılım yönetmek ve dağıtmak için kullanıyor; örneğin Google ise Puppet ile 6.000'den fazla Mac masaüstü bilgisayarını (2007 verileri) yönetiyor. Bu makale esas olarak kuklanın kurulum yöntemi, tasarım mimarisi ve kullanım yöntemini tanıtmaktadır.
2. Mimari tasarım Puppet, C/S mimarisine dayanır. Sunucu tarafı, istemci sunucu için tüm yapılandırma kodlarını saklar; buna kuklada manifest denir. İstemci manifestoyu indirdikten sonra, sunucu manifestoya göre paket yönetimi, kullanıcı yönetimi ve dosya yönetimi gibi yapılandırılabilir.
Yukarıdaki şekilde gösterildiği gibi, kuklanın iş akışı şöyledir: (1) İstemci kukla facter'ı çağırır ve facter, ana adı, bellek boyutu, IP adresi gibi bazı değişkenleri tespit eder. pupppetd bu bilgileri SSL bağlantısı üzerinden sunucuya gönderir; (2) Sunucu tarafı kukla yöneticisi, istemcinin ana adını tespit eder, ardından manifestoda ilgili düğüm yapılandırmasını bulur ve bu içeriğin bölümünü ayrıştırır. Ayrıştırma birkaç aşamaya ayrılır: sözdizimi kontrolü ve eğer sözdizimi yanlışsa hata bildirimi. Eğer sözdizimi doğruysa, ayrıştırmaya devam edin ve ayrıştırmanın sonucu ara bir "pseudocode" oluşturur ve ardından sözde kodu istemciye gönderir; (3) İstemci "pseudocode"u alır ve çalıştırır, istemci ise yürütme sonucunu sunucuya gönderir; (4) Sunucu tarafı, istemcinin yürütme sonucunu loga yazar. PUPPET çalışması sürecinde iki dikkat edilmesi gereken nokta vardır: birincisi, güvenliği sağlamak için istemci ve master SSL ve sertifikalara dayanır ve sadece ana sertifika tarafından doğrulanmış istemci ana sertifika ile iletişim kurabilir; İkincisi, kukla sistemi beklediğiniz belirli bir durumda tutar ve sürekli tutar; örneğin bir dosyayı tespit edip her zaman var olmasını sağlar, ssh servisinin sürekli açık olmasını sağlar, dosya silinirse veya ssh servisi kapanırsa, kukla bir sonraki çalıştırıldığında (varsayılan olarak 30 dakika) dosyayı yeniden oluşturur veya ssh servisini başlatır.
3. Yazılım kurulumu Kurulum için apt-get komutunu kullanmak önerilmez çünkü bu komutla indirilen kuklada bir hata vardır. Doğrudan kaynak kodundan kurulabilir ve kurulması gereken yazılım ruby, facter ve kukladır.
3.1 Kurulum Prosedürü /etc/host ile ana adını değiştirmek için düzenleyin, çünkü kukla sertifika tabanlıdır ve sertifikada ana adını içerir; Ruby, Facter ve Puppet'ı Master ve Slave'e kur, Ruby Install.rb ile Facter ve Puppet'ı kur.
3.2 Kurulumdan sonra dizin yapısı (1) Kurulum dizini Kurulum dizini /etc/kukla içinde saklanır ve bu dizin deposu manifest dosyalarında ortaya çıkar. /user/sbin altında diğer çalıştırılabilir dosyalar ana olarak şunları içerir: kukla: Kullanıcı tarafından yazılmış bağımsız ana dosyaları çalıştırmak için kullanılır, örneğin: kukla -l /tmp/manifest.log manifest.pp puppetd: Yönetilen ana bilgisayarda çalışan bir istemci programıdır, örneğin: Puppet –server servername –waitforcert 60 puppetmasterd: Yönetim makinesinde çalışan bir sunucu programı, örneğin: puppetmasterd –debug Puppetca Kukla sertifikasyon programı, esas olarak köle sertifikalarını doğrulamak için kullanılır, örneğin: Doğrulanacak köleni kontrol et: pupetca –list Bu köleleri onaylayın: kukla -s –a Puppetrun, istemciye bağlanmak için kullanılır ve yerel yapılandırma dosyasını çalıştırmaya zorlar, örneğin: PuppetRun -p 10 –host host1 –host host2 -t remotefile -t webserver (2) Yapılandırma dosyaları puppet.conf Puppet'ın ana yapılandırma dosyası kök kullanıcılar için /etc/puppet/puppet.conf ve normal kullanıcılar için ~user/.puppet/puppet.conf'dur Belirli yapılandırma parametreleri için bkz:
http://docs.puppetlabs.com/references/stable/configuration.html#configuration-files fileserver.conf Kukla dosya sunucusunun yapılandırma dosyası. Erişim izinlerini yapılandırmak için yol yapılandırma dosyası yolunu kullanın ve izin verme/reddetme izinlerini kullanın, bkz. http://docs.puppetlabs.com/guides/file_serving.html
3.3 Kurulumun başarılı olduğundan emin olun Kölenin hostunun slave00 ve master host'un masterhost olduğunu varsayarak master ile doğrulamak için bir slave seçin, slave00'a girin: puppetd –test –server servername Sonra masterhost'ta doğrulanacak köleye bakın: Puppetca –List Eğer sorun değilse, slave00'ın kölenin sertifikasını imzaladığını görebilirsiniz: Puppetca -s -a Bu şekilde, slave00 sertifika doğrulamasını geçer ve ana ile daha fazla etkileşime girebilir. Masterhost'un /etc/puppet/manifests dizinine site.pp dosyasını yazın, orada şöyle der: node default { dosya { "/tmp/test": content=>"merhaba", mod => 0644;
}
} Aynı zamanda, slave00'da puppetd –test –server sunucu adını girin, slave00'ın /tmp klasörünü kontrol edin ve içeriği hello olan yeni bir dosya testi oluşturun; dosyanın izni -rw-r—r- olarak belirlenir. Bu şekilde, kukla kurulumunun başarılı olduğu kanıtlanmış
|