# Revision history [back]

### Hiera calling a parameter set in a module

I am wondering if it is possible or if there is a better way for having a yaml file used by Hiera to have dymanic configuration

My current hiera config is as follows.

:backends:
- yaml

:hierarchy:
- "node/%{::clientcert}"
- "role/%{::dec_role}"
- "dc/%{::dec_dc}"
- common
- firewall


For a role, I want to create an autofs resource however, I also want to pass in a specific parameter. Yaml file for role is as follows.

autofs::mounts:
icedrop:
mount: /-
mapfile: /etc/autofs.d/auto.ice
mapcontents: '/srv/ice -fstype=cifs,noperm,credentials=/etc/autofs.d/cred/ice_flat_files %{::ice::params::ice_server}/ICE_Flat_Files'
options: --timeout=600
order: 4


Note that I have tired to pass in a parameter I already have set in ice::params::ice_server

However, nothing gets passed in, so it means this is a null value I assume at the moment. So my question is, can one pass a parameter into Hiera like you would with a normal class or module or can Hiera call this type of parameter.

I could create node yaml file and have this set statically but would prefer to have the one role yaml file and have this working dynamically for all my servers.

Hope I am clear and thanks.

### Hiera calling a parameter set in a module

I am wondering if it is possible or if there is a better way for having a yaml file used by Hiera to have dymanic configuration

My current hiera config is as follows.

:backends:
- yaml

:hierarchy:
- "node/%{::clientcert}"
- "role/%{::dec_role}"
- "dc/%{::dec_dc}"
- common
- firewall


For a role, I want to create an autofs resource however, I also want to pass in a specific parameter. Yaml file for role is as follows.

autofs::mounts:
icedrop:
mount: /-
mapfile: /etc/autofs.d/auto.ice
mapcontents: '/srv/ice -fstype=cifs,noperm,credentials=/etc/autofs.d/cred/ice_flat_files %{::ice::params::ice_server}/ICE_Flat_Files'
options: --timeout=600
order: 4


Note that I have tired to pass in a parameter I already have set in ice::params::ice_server

However, nothing gets passed in, so it means this is a null value I assume at the moment. So my question is, can one pass a parameter into Hiera like you would with a normal class or module or can Hiera call this type of parameter.

I could create node yaml file and have this set statically but would prefer to have the one role yaml file and have this working dynamically for all my servers.

Hope I am clear and thanks.

The parameter ice::params::ice_server can be found in a module I have written. Note $env is a fact we have to determine the environment. class ice::params::ice_server { if$env == 'tst' {
$ice_server = 'testserver03' } elsif$env == 'prd' {
$ice_server = 'prodserver04' } }  Setting the parameter is not an issue and calling itin side other modules is OK, I have done that many times before, but calling it in Heira is not something I have done before. Looking at the puppet documentation the syntax is supposed to be %{::ice::params::ice_server} however in my yaml file this doesn't return anything. I'm thinking do I need to inherit it somehow or perhaps the scope is wrong? Hope this makes it clearer. ### Hiera calling a parameter set in a module I am wondering if it is possible or if there is a better way for having a yaml file used by Hiera to have dymanic configuration My current hiera config is as follows. :backends: - yaml :hierarchy: - "node/%{::clientcert}" - "role/%{::dec_role}" - "dc/%{::dec_dc}" - common - firewall  For a role, I want to create an autofs resource however, I also want to pass in a specific parameter. Yaml file for role is as follows. autofs::mounts: icedrop: mount: /- mapfile: /etc/autofs.d/auto.ice mapcontents: '/srv/ice -fstype=cifs,noperm,credentials=/etc/autofs.d/cred/ice_flat_files %{::ice::params::ice_server}/ICE_Flat_Files' options: --timeout=600 order: 4  Note that I have tired to pass in a parameter I already have set in ice::params::ice_server However, nothing gets passed in, so it means this is a null value I assume at the moment. So my question is, can one pass a parameter into Hiera like you would with a normal class or module or can Hiera call this type of parameter. I could create node yaml file and have this set statically but would prefer to have the one role yaml file and have this working dynamically for all my servers. Hope I am clear and thanks. EDIT: To add..add.... The parameter ice::params::ice_server can be found in a module I have written. Note$env is a fact we have to determine the environment.

class ice::params::ice_server {
if $env == 'tst' {$ice_server = 'testserver03'
}
elsif $env == 'prd' {$ice_server = 'prodserver04'
}
}


Setting the parameter is not an issue and calling itin side other modules is OK, I have done that many times before, but calling it in Heira is not something I have done before.

Looking at the puppet documentation the syntax is supposed to be %{::ice::params::ice_server} however in my yaml file this doesn't return anything. I'm thinking do I need to inherit it somehow or perhaps the scope is wrong?

Hope this makes it clearer.