Puppet - Manifest Dosyaları

Puppet'te Ruby programlama dili kullanılarak yazılan ve bir uzantı ile kaydedilen tüm programlar .pp arandı manifests. Genel anlamda, herhangi bir hedef ana makine yaratma veya yönetme niyetiyle oluşturulan tüm Puppet programlarına manifesto denir. Puppet ile yazılan tüm programlar Puppet kodlama stilini takip eder.

Puppet'in özü, kaynakların beyan edilme şekli ve bu kaynakların devletlerini nasıl temsil ettiğidir. Herhangi bir bildiride, kullanıcı, sınıf ve tanım kullanılarak bir arada gruplandırılmış farklı türde kaynaklar koleksiyonuna sahip olabilir.

Bazı durumlarda, Puppet manifest istenen bir duruma ulaşmak için koşullu bir ifadeye bile sahip olabilir. Bununla birlikte, nihayetinde, tüm kaynakların doğru şekilde tanımlandığından ve kullanıldığından emin olmak ve bir kataloğa dönüştürüldükten sonra uygulandığında tanımlanan manifestin, tasarlandığı görevi yerine getirebildiğinden emin olmak aşağı iner.

Manifest Dosya İş Akışı

Kukla manifestosu aşağıdaki bileşenlerden oluşur -

  • Files (bunlar Puppet'in onlarla hiçbir ilgisinin olmadığı düz dosyalardır, sadece onları alıp hedef konuma yerleştirmek için)

  • Resources

  • Templates (bunlar, düğümde yapılandırma dosyaları oluşturmak için kullanılabilir).

  • Nodes (bir istemci düğümü ile ilgili tüm tanımlar burada tanımlanmıştır)

  • Classes

Dikkat Edilmesi Gereken Noktalar

  • Puppet'ta, tüm manifest dosyaları kodlama dili olarak Ruby kullanır ve .pp uzantı.

  • Birçok bildirimdeki "İçe Aktarma" ifadesi, Puppet başladığında dosyaları yüklemek için kullanılır.

  • Bir dizinde bulunan tüm dosyaları içe aktarmak için, import ifadesini import 'clients / *' gibi başka bir şekilde kullanabilirsiniz. Bu hepsini içe aktaracak.pp dizinin içindeki dosyalar.

Bildiri Yazma

Değişkenlerle Çalışma

Bir bildiri yazarken, kullanıcı bildirimin herhangi bir noktasında yeni bir değişken tanımlayabilir veya mevcut bir değişkeni kullanabilir. Puppet farklı türde değişkenleri destekler ancak dizeler ve dizi dizisi gibi bunlardan çok azı sıklıkla kullanılır. Bunların dışında diğer formatlar da desteklenmektedir.

Dize Değişken Örneği

$package = "vim"  

package {  $package: 
   ensure => "installed" 
}

Döngüleri Kullanma

Döngüler, tanımlanmış bir koşul karşılanana kadar aynı kod setinde birden fazla yinelemeden geçmek istendiğinde kullanılır. Ayrıca farklı değerler kümesiyle tekrarlayan görevler yapmak için kullanılırlar. 10 farklı şey için 10 görev oluşturma. Kişi tek bir görev oluşturabilir ve görevi, kurmak istediği farklı paketlerle tekrarlamak için bir döngü kullanabilir.

En yaygın olarak, bir testi farklı değerlerle tekrarlamak için bir dizi kullanılır.

$packages = ['vim', 'git', 'curl']  

package { $packages: 
   ensure => "installed" 
}

Koşullu İfadeler Kullanma

Puppet, geleneksel programlama dillerinde bulunabilen koşullu yapının çoğunu destekler. Koşul, belirli bir görevin mi yoksa bir kod kümesinin mi yürütüleceğini dinamik olarak tanımlamak için kullanılabilir. If / else ve case ifadeleri gibi. Ek olarak, execute gibi koşullar da koşul gibi çalışan, ancak yalnızca bir komut çıktısını koşul olarak kabul eden öznitelikleri destekler.

if $OperatingSystem != 'Linux' { 
   warning('This manifest is not supported on this other OS apart from linux.') 
} else { 
   notify { 'the OS is Linux. We are good to go!': }
}