Kukla - Çevre
Yazılım geliştirme ve teslimat modelinde, belirli bir ürünü veya hizmeti test etmek için kullanılan farklı türde test ortamları vardır. Standart bir uygulama olarak, her birinin kendi set konfigürasyonuna sahip olduğu temelde geliştirme, test ve üretim olmak üzere üç tür ortam vardır.
Puppet, Ruby on Rails ile aynı hat boyunca birden fazla ortamın yönetimini destekler. Bu ortamların yaratılmasının arkasındaki temel faktör, farklı SLA anlaşması seviyelerinde yönetim için kolay bir mekanizma sağlamaktır. Bazı durumlarda, makinenin herhangi bir tolerans ve eski yazılım kullanılmadan her zaman ayakta durması gerekir. Diğer ortamlar günceldir ve test amacıyla kullanılır. Daha önemli makinelerin yükseltmeleri için kullanılırlar.
Puppet, standart üretim, test ve geliştirme ortamı yapılandırmasına bağlı kalmanızı önerir, ancak burada kullanıcıya ihtiyaca göre özel ortamlar oluşturma avantajı bile sağlar.
Çevre Hedefi
Bir ortama göre bölünmüş kurulumun temel amacı, Puppet'ın modüller ve manifestolar için farklı kaynaklara sahip olabilmesidir. Daha sonra, üretim düğümlerini etkilemeden test ortamındaki konfigürasyondaki değişiklikler test edilebilir. Bu ortamlar, altyapıyı farklı ağ kaynaklarına dağıtmak için de kullanılabilir.
Puppet Master'da Ortamı Kullanma
Bir ortamın amacı, istemciye dosyanın hangi manifest, modül, şablonunun gönderilmesi gerektiğini test etmektir. Bu nedenle Puppet, bu bilgiler için ortama özel kaynak sağlayacak şekilde yapılandırılmalıdır.
Puppet ortamları, basitçe ön ortam bölümleri sunucunun puppet.conf dosyasına eklenerek ve her ortam için farklı yapılandırma kaynağı seçilerek uygulanır. Bu ortam öncesi bölümler daha sonra ana bölüme tercih edilerek kullanılır.
[main]
manifest = /usr/testing/puppet/site.pp
modulepath = /usr/testing/puppet/modules
[development]
manifest = /usr/testing/puppet/development/site.pp
modulepath = /usr/testing/puppet/development/modules
Yukarıdaki kodda, geliştirme ortamındaki herhangi bir istemci dizinde bulunan site.pp bildirim dosyasını kullanacaktır. /usr/share/puppet/development ve Puppet içindeki herhangi bir modülü arayacaktır. /usr/share/puppet/development/modules directory.
Puppet'i herhangi bir ortamla veya ortam olmadan çalıştırmak, varsayılan olarak site.pp dosyasını ve ana yapılandırma bölümündeki manifest ve modül yolu değerlerinde belirtilen dizini kullanır.
Ortam öncesi yapılandırılması gerçekten mantıklı olan yalnızca birkaç yapılandırma vardır ve bu parametrelerin tümü, bir müşterinin yapılandırmasını derlemek için hangi dosyaların kullanılacağını belirleme etrafında döner.
Parametreler aşağıdadır.
Modulepath- Puppet'te, temel bir standart mod olarak, tüm ortamın paylaştığı standart bir modül dizinine ve ardından özel modülün saklanabileceği bir ön ortam dizinine sahip olmak en iyisidir. Modül yolu, Puppet'in ortamla ilgili tüm yapılandırma dosyalarını aradığı konumdur.
Templatedir- Şablon dizini, ilgili şablonların tüm sürümlerinin kaydedildiği konumdur. Modül bu ayarlara tercih edilmelidir, ancak her ortamda belirli bir şablonun farklı sürümlerinin olmasına izin verir.
Manifest - Bu, hangi yapılandırmanın giriş noktası komut dosyası olarak kullanılacağını tanımlar.
Çoklu modüllerle Puppets, konfigürasyonlar için modülerlik elde etmeye yardımcı olur. Puppet'te, büyük ölçüde modüllere güvenildiğinde çok daha iyi çalışan birden fazla ortam kullanılabilir. Modüldeki değişiklikleri kapsülleyerek değişiklikleri ortamlara taşımak daha kolaydır. Dosya sunucusu ortama özgü bir modül yolu kullanır; ayrı bağlanmış dizinler yerine modüllerden dosya sunumu yapılırsa, bu ortam ortama özgü dosyaları alabilecek ve son olarak mevcut ortam da manifest dosyası içinde $ ortam değişkeninde mevcut olacaktır.
İstemci Ortamını Ayarlama
Ortam yapılandırmasıyla ilgili tüm yapılandırmalar puppet.conf dosyasında yapılır. Puppet istemcisinin hangi ortamı kullanması gerektiğini belirlemek için, istemcinin puppet.conf dosyasında ortam konfigürasyon değişkeni için bir değer belirtilebilir.
[puppetd]
environment = Testing
Yapılandırma dosyasındaki yukarıdaki tanım, yapılandırma dosyasının bizim durumumuzda test ettiği ortamı tanımlar.
Bunu komut satırında kullanarak da belirtebilirsiniz -
#puppetd -–environment = testing
Alternatif olarak Puppet, ortam konfigürasyonunda dinamik değerlerin kullanılmasını da destekler. Statik değerleri tanımlamaktan ziyade, geliştiricinin, diğer bazı müşteri özniteliklerine veya bir dış veri kaynağına dayalı olarak istemci ortamını oluşturan özel gerçekler yaratma avantajı vardır. Bunu yapmanın tercih edilen yolu özel bir araç kullanmaktır. Bu araçlar, bir düğümün ortamını belirleyebilir ve genellikle düğüm bilgilerini belirlemede çok daha iyidir.
Kukla Arama Yolu
Puppet, hedef makinede hangi yapılandırmanın uygulanması gerektiğini belirlemek için basit bir arama yolu kullanır. Aynı şekilde Puppet'teki arama yolu, uygulanması gereken uygun değerleri almaya çalışırken çok kullanışlıdır. Puppet'in uygulanması gereken değerleri aradığı aşağıda listelendiği gibi birden fazla yer vardır.
- Komut satırında belirtilen değer
- Ortama özel bir bölümde belirtilen değerler
- Yürütülebilir özel bir bölümde belirtilen değerler
- Ana bölümde belirtilen değerler