Puppet Yazı Dizisi 6: Foreman Kurulumu ve Kullanımı

Foreman Yaşam Döngüsü Aracı Kurulumu

Bu yazıda Foreman ismi verilen yönetim aracının kurulumu ve Puppet ile kullanımı ele alınacaktır. Daha önce Puppet konusunda yayınlanan 5 yazıya buradan erişebilirsiniz.

Daha önce yayınlanan “Puppet Merkezi İstemci Yönetimi” isimli yazıda Foreman’den bahsedilmiş ancak kurulumu ve kullanım detayları bu yazıya bırakılmıştır.

Foreman Kurulumu ve Kullanımı

Foreman sunucu altyapılarını yönetmek üzere kullanılan açık kaynak kodlu, tam teşekkülü bir yaşam döngüsü aracıdır. Sunucu havuzunuzu yönetmek üzere provizyonlama, konfigüre etme ve izleme imkanı sunan Foreman kullanışlı bir web arayüzüne sahiptir. Ayrıca yönetim amaçlı PI ve komut satırı seçenekeleri de mevcuttur.

Foreman tüm Linux versiyonlarında çalışmakla birlikte Puppet ve Chef gibi otomasyon araçları ile birlikte etkileşimli olarak kullanılabilmektedir. Bu yazıda sadece Puppet ile birlikte kullanılmak üzere Ubuntu 14.04 sunucuda Foreman kurulumu ele alınacaktır.

Gereksinimler

Foreman kurulumuna geçmeden önce sunucu havuzunuzda Puppet kurulmuş olmalıdır. Henüz kurulumu tamamlamadıysanız Puppet kurulumu ile ilgili yazıya göz atabilirsiniz.

Kurulum tamamlandığında Foreman sunucusu aynı zamanda puppet-master olarak görev yapacaktır. Bu yazıda Foreman kurulumu mevcut puppet-master sunucusunda yapılmıştır. Bu durumda mevcut site.pp dosyasının üzerine yazılacağı unutulmamalıdır.

Foreman Kurulumu

Foreman kurulumuna geçmeden önce kurulum yapılacak sunucunun isminin alan adı ile birlikte kullanılabilmesi için hosts ve hostname dosyalarında değişiklik yapılmalıdır.

Ardından Foreman kurulumu için yapılacak ilk adım foreman-installer kurmak olmalıdır. Foreman installer Foreman ile birlikte, puppet master ve agent, Apache web sunucusu (SSL ve Passenger ile birlikte) kuracaktır. Foreman installer kurmak için ilgili repolar eklenerek public key tanımlanmalıdır.

Önce aşağıdaki komut ile 10.61.2.116 IP adresine gidildiği doğrulanmalıdır. Aksi halde /etc/hosts dosyası yeniden gözden geçirilmelidir.

Kurulum tamamlandığında foreman-installer çalıştırılmalıdır.

İşlem tamamlandığında aşağıdaki gibi bir çıktı alınması gerekmektedir. Şifre xxxxx şeklinde gizlenmiştir.

Ardından Foreman web arayüzüne belirtilen adresten verilen kullanıcı ve şifre ile erişilebilirsiniz. Aşağıdaki gibi bir giriş ekranı gelmelidir.

foreman-1

Giriş yaptıktan sonra karşınıza aşağıdaki gibi bir yönetim paneli gelecektir. Sadece bir sunucu “good host” durumunda görünmelidir.

foreman-3

Öncelikle üstteki panelden hesaba ait şifre güncellenmelidir.

foreman-4

Modül Kurulumu ve Foreman’a Eklenmesi

Ardından Foreman çalışan puppet-master sunucusuna NTP modülü eklenecektir. Bunun için https://forge.puppetlabs.com/ adresine gidilerek NTP modülü arandığında istenilen modülün sonuçlar arasından puppetlabs/ntp olduğu görülecektir. Desteklenen versiyon v.b. detayları alabilmek ve nasıl çalıştığını anlamak için üzerine tıklayarak daha detaylı bilgiye erişilebilmektedir.

Foreman çalıştırılan Puppet-master sunucusu üzerinde NTP modülünü kurmak için aşağıdaki komut kullanılabilir.

Puppet-master üzerinde kurulan modülün kullanılabilmesi için Foreman’a eklenmesi gerekmektedir. Bunun için arayüz üzerinden “configure” menüsünden “classes” seçilmelidir.

foreman-5

Açılan ekrandan “import from puppet-master” bölümüne tıklanarak sunucudaki sınıfların aktarılması sağlanmalıdır.

foreman-6

Aktarma sonrasında üretim (production) ortamı seçilerek yanında bulunan modüllerin Foreman’a eklenmesi sağlanmalıdır.

foreman-7

Böylece bu örnekte kullanıma hazır olan apache, concat, ntp ve stdlib modülleri Foreman ile kullanılabilecek hale getirilmiş olacaktır.

Varsayılan NTP Havuzunun Değiştirilmesi

NTP havuzunda mevcut lokasyona en yakın sunucuları seçmek üzere “Puppet classes” arama yapılarak ntp sınıfları bulunmalı ve ntp sınıfının üzerine tıklanarak düzenleme moduna geçilmelidir.

foreman-8

Açılan ekranda “smart class parameter” sekmesine geçilerek solda yer alan panelden “servers” seçilmelidir. Ardından “override” seçeneği işaretlenerek “key type” array olarak seçilmeli ve varsayılan değer olarak kullanılacak NTP sunucuları eklenmelidir. Değer olarak [“0.tr.pool.ntp.org”,”1.tr.pool.ntp.org”,”2.tr.pool.ntp.org”,”3.tr.pool.ntp.org”] kullanılabilir.

foreman-9

Foreman Sunucusunun NTP Modülünü Kullanmak Üzere Ayarlanması

İhtiyaçlara göre düzenlenen NTP modülü artık Foreman sunucusu ile birlikte kullanılmaya hazır hale gelmiştir. Buna göre “hosts” menüsü altından “all hosts” bölümüne gidilerek Foreman sunucusu seçilmeli ve yanındaki “edit” butonu ile eklenecek modüller düzenlenmelidir.

foreman-10

Açılan ekranda “Puppet Classes” sekmesi altında “available classes” bölümünde kullanılabilecek sınıflar listelenecektir. NTP modülünün yanındaki “+” işaretine tıklanarak alt sınıflar listelenebilir.

foreman-11

Alttaki “ntp” sınıfının yanındaki “+” seçilerek sınıfın “included classes” altına eklenmesi sağlanmalıdır.

foreman-12

Değişiklikler “submit” butonu ile kaydedilmelidir.

Puppet Konfigürasyonunun Görüntülenmesi

Değişikliklerin ardından karşınıza Foreman sunucusunun özet sayfası gelecektir. Herhangi bir Puppet agent kontrol ettiğinde karşılacağı bilgi YAML sekmesi altında görülebilmektedir.

foreman-13

foreman-13-2

Puppet Agent’ın Çalıştırılması

İstenilen değişiklikler sonrası etkilerini görmek üzere Foreman sunucusunda agent aşağıdaki komut ile çalıştırılabilmektedir.

Tekrar web arayüzüne dönüldüğünde YAML sekmesinin yanıdaki “reports” sekmesinde yapılan değişiklikleri izlemek mümkündür.

foreman-14

Foreman’a Yeni Sunucu Eklenmesi

Foreman sunucusu kurulduktan sonra yapılacak ilk iş Foreman ile yönetilmek üzere yeni sunucular eklemek olacaktır. Bunun için öncelikle bu sunuculara Puppet agent kurulması ve yapılandırılması gerekmektedir. Halen yapmadıysanız daha önce bahsi geçen “Puppet Kurulumu” yazısından takip ederek kurulumu tamamlayabilirsiniz.

İlgili kurulum dokümanında bahsi geçen sertifika imzalama işlemi komut satırı vasıtasıyla Puppet ile yapılabildiği gibi Foreman web arayüzü üzerinden de yapılabilmektedir. Bunun için “Infrastructure” menüsünden “Smart Proxies” bölümü altından sertifikalara geçmek gerekmektedir.

foreman-15

Sertifikalar seçildiğinde imzalanan sertifikalar ve varsa bekleyen sertifikalar listelenecektir.

foreman-16

İmzalanmamış her kayıdın yanında çıkacak olan “sign” butonu kullnılarak veya tek seferde hepsini imzalamak için üstteki “autosign entries” butonuna tıklanarak bekleyen sertifikalar imzalanabilir.

Foreman ile Sunucuların Yönetilmesi

Bekleyen sertifikaların da imzalanması ile birlikte istemcilerde puppet agent çalışmasının ardından Foreman ile yönetilen tüm sunucular “Hosts” menüsü altından “All hosts” bölümünden listelenebilir.

foreman-17

Buradan seçilen bir sunucuya tıklanarak açılan pencerede “Run Puppet” seçeneğinin pasif olduğu görülecektir.

foreman-18

Bu durum daha önce yapılan çalışmada mcollective ile kullanabilmek için puppet.conf içerisindeki “listen=true” seçeneğinin kaldırılmasından kaynaklanmaktadır. “puppet kick” komutunda olduğu gibi Foreman sunucusu üzerinden istemcilerde puppet çalıştırmak için puppet agent’ların “daemon” modunda çalışması gerekmektedir. Ayrıca foreman ayarlarında “Administer” menüsünden “Settings/Puppet” başlığı altında puppetrun “enable” edilmelidir. Son olarak Foreman sunucusunda foreman kullanıcısına “puppet kick” çalıştırmak için sudo yetikisi verilmelidir.

Yapılan değişiklikler kaydedildikten sonra aynı sunucuda “Run puppet” seçeneğinin aktif olduğu görülebilir. Bu butona tıklanarak seçilen sunucuda Puppet’ın çalışması sağlanabilir.

foreman-19

Böylece Foreman kurulumu tamamlanmış, sunucuların foreman ile nasıl yönetilecekleri örneklerle gösterilmiştir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir