use single erb template for different files in a single puppet manifest -


i use single erb template create different files. here erb.

# managed puppet # changes overwritten # <% if (@tanuki_ssl != nil) -%> # config include # ssl section trust , key stores # <% unless @tanuki_ssl['truststore_path'].nil? -%> wrapper.java.additional.940=-djavax.net.ssl.truststore=<%= @tanuki_ssl['truststore_path'] %> <% end -%> <% unless @tanuki_ssl['truststore_pass'].nil? -%> wrapper.java.additional.941=-djavax.net.ssl.truststorepassword=<%= @tanuki_ssl['truststore_pass'] %> <% end -%> <% end -%> <% if (@tanuki_proxy != nil) -%> # config include # proxy section # wrapper.java.additional.951=-dhttp.proxyset=true wrapper.java.additional.952=-dhttp.proxyhost=<%= @tanuki_proxy['host'] %> wrapper.java.additional.953=-dhttp.proxyport=<%= @tanuki_proxy['port'] %> wrapper.java.additional.954=-dhttp.nonproxyhosts=<%= @tanuki_proxy['exceptions'].join('|') %>|<%= @ipaddress %>|<%= @hostname %> wrapper.java.additional.955=-dhttps.proxyset=true wrapper.java.additional.956=-dhttps.proxyhost=<%= @tanuki_proxy['host'] %> wrapper.java.additional.957=-dhttps.proxyport=<%= @tanuki_proxy['port'] %> wrapper.java.additional.958=-dhttps.nonproxyhosts=<%= @tanuki_proxy['exceptions'].join('|') %>|<%= @ipaddress %>|<%= @hostname %> <% end -%> 

in puppet manifest wrote 2 file resources:

if $tanuki_hash['ssl_enabled'] {    $tanuki_ssl = $tanuki_hash['ssl']    file { "${tanuki_path}/${dirname}/conf/940-ssl.inc":     content  => template('profile/app/wrapper.inc.erb'),   } }  if $tanuki_hash['proxy_enabled'] {    if $tanuki_hash['override_system_proxy'] {     $tanuki_proxy=$tanuki_hash['proxy']   } else {     $tanunki_proxy=$proxy_hash   }    file { "${tanuki_path}/${dirname}/conf/950-proxy.inc":     content  => template('profile/app/wrapper.inc.erb'),   } } 

i run puppet file 940-ssl.incl expected content. first if section interpretet.

but file 950-proxy.inc have ssl part too.

so, how can pass needed variable each file?

cheers

christian

it isn't possible pass different variables erb template() function, think need either:

  1. use epp() function embedded puppet syntax instead of erb, lets pass different local variables template when calling it.
  2. use different templates or different scopes. rendering same template within same scope should typically render same result, you're trying work against.

Comments

Popular posts from this blog

asynchronous - C# WinSCP .NET assembly: How to upload multiple files asynchronously -

aws api gateway - SerializationException in posting new Records via Dynamodb Proxy Service in API -

asp.net - Problems sending emails from forum -