Hi Christopher,

I've spent some time getting my head around Hiera now, and would appreciate 
some help with how to implement your suggestion:

>
> hiera hash with each environment and its associated mount point 
> hiera lookup on a non-management node grabs its environment 
> environment is used to determine which mount point via hiera_hash 
> management node uses create_resources and hiera_hash to make its mount 
> points 
>

I've now got this :hierarchy:
  - "nodes/%{::hostname}"
  - "application_env/%{::application_env}"
  - common

So first I'm assigning a node via hiera to an environment:

hiera/nodes/box1.yaml:
 ---
application::env: "live"


Then I'm setting an external fact named application_env which I pick up by 
Hiera later on (Not sure this construct is good practice, suggestions 
welcome).

Then I'm configuring unrelated environment-specific settings:

hiera/application_env/live.yaml:
---
application::setting1: true
application::setting2: false
application::setting3:
   - 'foo'
   - 'bar'

So the thing is that as soon as I know the environment name I know 
everything I need to know to create a nfs mount resource inside the puppet 
module:

mount { appnfs:
   device   => "${mountip}:/application_${env},
   fstype   => "nfs",
   name     => "$mountdir",
}

The same would be true on my Management server, with the difference that 
the name would be name => "${mountdir}_${env}".

So what I don't understand is the hiera hash per environment bit. So I 
guess I could create a single Hash with all the environments instead of the 
above one yaml file per environment. Then I can put hashes in each of these 
hash values with the unrelated application settings. But wouldn't I need 
for create_resources a second unrelated hash with all environments with all 
the settings for the mount resource, like device, fstype, name and so on? 
At that point I would again have double configuration, two separate hashes, 
one for the whole rest, one for the mount resources. Also I actually have 3 
NFS mounts per environment, just mentioned one for simplification. Would 
that be a 3rd and 4th hash with mostly duplicate data? What if I need 
something else on the Management server in future per environment ... a 5th 
hash for that?

My hypothetical virtual exported resource somehow sounds like a more 
intuitive approach. an exported resource, which is only virtual, and can 
therefore realized more than once, namely by every application server which 
is exporting it. This would also help in case I have to configure an 
exception, like I need this nfs mount on all environments, except on the 
environment called data_migration. A hash of all environments, used with 
create_resources wouldn't pick that exception up, right? But maybe I'm not 
fully understanding Hiera's possibilities here?

Thanks
Stephan

 

> Possibly I'm getting closer? 
>   
> >    -- 
> >    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...@googlegroups.com <javascript:>. 
> >    To view this discussion on the web visit 
> >    [1]
> https://groups.google.com/d/msgid/puppet-users/26e1282e-45f0-46cd-a7b5-36d50fd012e2%40googlegroups.com.
>  
>
> >    For more options, visit [2]https://groups.google.com/groups/opt_out. 
> > 
> > References 
> > 
> >    Visible links 
> >    1. 
> https://groups.google.com/d/msgid/puppet-users/26e1282e-45f0-46cd-a7b5-36d50fd012e2%40googlegroups.com
>  
> >    2. https://groups.google.com/groups/opt_out 
>

-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/79ec4486-4808-4982-9c25-9d0eddf1a844%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to