Neil and John,

You guys both agree on using individual files and I was thinking of how I 
could do this.  If I have one file or three, it may not be a big deal to do 
individually, but some applications could need dozens or more.  

I don't know if it is possible, some searching makes me believe it isn't, 
but I'll share my thought.

Can you do something like a for loop in a bash script.  So it would be 
something like...


for files in .../module_name/Preferences/  # get a list of files and 
folders in the Preferences subfolder on the Puppet Master
  file { '/System/Library/User 
Template/English.lproj/Library/Preferences/${files}':  #Directory on Puppet 
agent, the variable would make this a unique resource and it would work for 
a file and folder
  source => "puppet:///modules/${module_name}/Preferences/${files}", # 
Since it is looping every file on the Puppet Master would match perfectly 
to the same exact file/folder on the agent.  No duplicate declaration.
done

John,

I think I understand what your code is trying to do, but am not sure I 
understand how to implement.  I think that $preference_sources is making a 
list of paths (puppet paths) to the Preferences folder of each module, and 
I know that sourceselect all means that it will use all sources instead of 
stopping at the first match.  I also see that the preferences_sources is 
being created from a regex expression that I don't completely understand, 
though that shouldn't matter in getting this to work.  

Is this still a defined type?  Should class mac_managed_preferences be 
defined or are we making a new class for each applications preferences 
(assuming that's the $applications variable in the class name)?  I tried it 
as a defined type, and I once again got it to work with one application but 
not two.  Which makes sense as two applications are calling it.  If it is a 
unique class and not a defined type, then wouldn't this class apply 
preferences for applications on machines that don't have them?   

If it still is a defined type, then this is the code that caused a 
duplicate declaration below.  Perhaps a syntax issue?   This is the only 
syntax where I could get things to run.  If this code is for a unique 
class, then I think I need a bit more description in how it is to work.  

class managed_preferences {}
  define mac_managed_preferences ($application) {
  include managed_preferences

  $preference_sources = regsubst($application, '^.*$', 
'puppet:///modules/\0/Preferences')

  file { '/System/Library/User Template/English.lproj/Library/Preferences':
   ensure => 'directory',

    owner => 'root',
    group => 'wheel',
    mode => '0600',
    recurse => true,
    source => $preference_sources,
    sourceselect => 'all'
  }
}






-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/dcec0f04-da8c-4ca1-a824-c58944da9683%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to