Soru Kukla birleştirmek şablonları


Şu anda üzerinde çalıştığım modülde, ayarlanması gereken, varsayılan değerlere sahip bir yapılandırma seçenekleri seçeneğim var ... ve daha kısa şablon dosyalarına bölünmüş olması gerekir, aksi takdirde kaydırma kabusu olurdu.

Bunu yapmanın önerilen yolu bazı üçüncü parti modülleri kullanmaktı. Yapılmış bir yol yok mu?


4
2018-05-02 14:40


Menşei




Cevaplar:


Şaşırtıcı bir şekilde çalışan (ve herhangi bir belgeyi bulamadığım) bir başka olası çözüm, içindeki dizinin sözdizimi template() fonksiyon:

file { "${location}/final-file.php":
    ensure  => file,
    content => template(
        'wppuppet/template.a.erb',
        'wppuppet/template.b.erb',
        'wppuppet/template.c.erb'
    ),
}

7
2018-05-02 14:42



Güzel! Onu nasıl buldun? - Adam Ryczkowski
Varsayım> Deneyin> Hata> Tekrarla ve aralarında çok fazla sabır var :) IDE sadece PHP ve JS'yi destekliyor: P - kaiser
Bu puppetlabs belgelerinde: docs.puppetlabs.com/guides/templating.html#combining-templates - daxlerod
@daxlerod sonra o bölümün üstesinden geliyorum: P Bu modüllerin neden bu kadar popüler olduğunu merak ediyorum. - kaiser
Modüller genellikle daha fazla esneklik sunar, parçalarınızın nereden geleceğini önceden bilmeyebilirsiniz. Ayrıca, puppetlabs-mcollective modülündeki mcollective :: plugin türünün çoklu dizinleri birleştirmek için datacat'i nasıl kullandığını gözden geçirin. github.com/puppetlabs/puppetlabs-mcollective - daxlerod


Olası bir çözüm, şablonları değişkenlere almaktır. Ardından dizeyi birleştirin ve inline_template():

$a = template( 'wppuppet/my-file.a.erb' )
$b = template( 'wppuppet/my-file.b.erb' )
$c = template( 'wppuppet/my-file.c.erb' )

file { "${location}/final-file.php":
    ensure  => file,
    content => inline_template( "${a}${b}${c}" ),
}

5
2018-05-02 14:40