Christian Charpentier
2014-Jun-24 09:53 UTC
[Puppet Users] Problem using hiera variable in templates
Hi, I'm trying to use variables stored in hiera files in module templates. I read it's better to avoid to use hiera function in templates so i tried to get the hiera value in the config.pp manifest with a local variable. Then to use the local variable in the template, but it doesn't work. *common.yaml* --- apache_packages_list: - apr-1.4.8 - apr-devel-1.4.8 - apr-util-1.5.2 - apr-util-devel-1.5.2 - distcache-1.4.5 - distcache-devel-1.4.5 - httpd-2.4.6 - httpd-tools-2.4.6 - mod_ssl-2.4.6 accounts_conf_filename: accounts.victorbuckservices.com.conf accounts_conf_balancer_filename: accounts.victorbuckservices.com.balancer.conf certificate_filename: all.dev.victorbuckservices.com.crt key_filename: all.dev.victorbuckservices.com.key *ServerName: accounts.dev.victorbuckservices.comServerAdmin: test@victorbuckservices.com* SSLCertificateFile: /etc/pki/tls/certs/all.dev.victorbuckservices.com.crt SSLCertificateKeyFile: /etc/pki/tls/private/all.dev.victorbuckservices.com.key *config.pp* class apache::config { $accounts_conf_filename = hiera('accounts_conf_filename') $accounts_conf_balancer_filename = hiera('accounts_conf_balancer_filename') $crt_filename = hiera('certificate_filename') $key_filename = hiera('key_filename') * $servername = hiera('ServerName') $serveradmin = hiera('ServerAdmin')* file {"/etc/httpd/conf.d/$accounts_conf_filename": ensure => file, content => template("/etc/puppet/hieradata/$accounts_conf_filename.erb"), } file {"/etc/httpd/conf.d/$accounts_conf_balancer_filename": ensure => file, content => template("/etc/puppet/hieradata/$accounts_conf_balancer_filename"), } file {'/etc/pki/tls/certs/$crt_filename': ensure => file, content => template("/etc/puppet/hieradata/$crt_filename"), } file {'/etc/pki/tls/private/$key_filename': ensure => file, content => template("/etc/puppet/hieradata/$key_filename"), } } *accounts.victorbuckservices.com.conf.erb* <VirtualHost accounts.dev.victorbuckservices.com:80> ServerName <% ServerName = scope.lookupvar('apache::config::servername') %> ServerAdmin <% ServerAdmin = scope.lookupvar('apache::config::serveradmin') %> I also tried syntax as follow: ServerName <%= scope.function_hiera('ServerName') %> ServerName <%= @servername %> But i doesn't works neither. Any idea or suggestion to make this right? Cheers, Christian -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscribe@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/505d7ccb-20f2-4af6-a2f9-66a03535e495%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.