Morning all... 

Firstly, apologies for the length of this post, however I thought it would 
be beneficial to fully explain what I'm trying to achieve. 

I've started using Hiera with Puppet 3.0, and must say I'm very impressed 
soo far. It's handled the bulk of what I've thrown at it so far without any 
issues... 

However I'm now starting to think about some of the more complex challenges 
we're hoping to solve with Puppet... 
One of those is Oracle Database configuration management... 

Under this falls the following components:

   - NetApp Filer volume configuration - Active site and DR site, with 
   SnapMirror relationship between the 2.
   - Oracle Database server configuration - Active site and DR site. 
   
As you can see, that's effectively 4 separate components, spread across 2 
separate sites, but which are closely related... 

Currently, all our Hiera configuration is driven from the physical view, 
that is a host, or an environment, or a data-centre... 
However I'd like to try and turn this configuration on it's head and go 
logical... That is each Database instance has it's own configuration data, 
which contains all the relevant information such as what it's Active and DR 
NetApp filer is, what it's volume sizes are, what Active database server it 
should live on, where it should be in DR mode... 

Now this all seems quite easy to define in Hiera Yaml... Something like the 
following should cover it:
---
database_sid: 'ORACLE01'
active_filer: 'site1-nactl01'
replica_filer: 'site2-nactl01'
active_database_server: 'site1-db01'
replicate_database_server: 'site2-db01'
oracle_version: '11.2.0.3'
volumes:
 ORACLE01_oractrl:
  ensure: present
  size: '1g'
 ORACLE01_oradata:
  ensure: present
  size: '150g'
 ORACLE01_oraredo:
  ensure: present
  size: '10g'
 ORACLE01_oratemp:
  ensure: present
  size: '10g'
 ORACLE01_oraarch:
  ensure: present
  size: '20g'
  snapschedule:
   minutes: 0
   hours: 36
   days: 0
   weeks: 0
snapmirror:
 ...

However the challenge I'm currently struggling to get my head around is how 
I can turn that logical view into the various physical views that are 
needed for each component... 
It also gets further complicated in that there is going to be multiple 
database instances, with some commonality between them, and some 
variation... 

So if I'm running puppet on *site1-db01*, I want to process all databases 
that have either an '*active_database_server*' or a '*
replicate_database_server*' value matching the hostname. 
If running puppet against *site1-nactl01*, then need to process all 
databases that have an '*active_filer*' matching the hostname... 

Any ideas on where I could begin?
Or is there a better way for me to achieve this? 

Thank-you in advance for any replies. 

Regards
Gavin

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/H3tYf7ngL5wJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to