web-dev-qa-db-ja.com

Puppet連結テンプレート

私が現在取り組んでいるモジュールでは、設定する必要があり、デフォルト値があり、スクロールする悪夢になるので、より短いテンプレートファイルにフラグメント化する必要がある構成オプションがたくさんあります。

そのための推奨される方法は、いくつかのサードパーティモジュールを使用することでした。組み込みの方法はありませんか?

4
kaiser

驚くほど機能する(そしてドキュメントが見つからなかった)別の可能な解決策は、template()関数内の配列構文です。

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

考えられる解決策の1つは、変数でテンプレートをフェッチすることです。次に、文字列を連結して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
kaiser