John, I would like to re-explain the problem I am trying to solve to make sure that what I want to do is possible, and that it can be done in the way you are trying to help me.
In my first post, I mentioned wanting different modules to write to the /System/Library/User Template/English.lproj/Library/Preferences/ folder. Which I will now just call preferences. I have two modules I am working on, one installs Office 2011, and one installs Maya 2012. Office has three files that I want to put in the preferences folder, and Maya has one. So the tree on each client would be: /preferences/com.microsoft.* /preferences/com.autodesk.* As you can see, the files are in the root of the preferences folder, not subfolders of it. It is possible other modules (applications I install) may have individual files in the root of preferences and a subfolder, or just a subfolder with preferences inside. I envision on my master I would have the preferences that I need copied to the preferences of the client to be in the modules/office_2012/files/preferences folder. I hope this clears the problem up and I have an idea for another solution if the above approach won't work. Is it possible for puppet to read the files in the preferences folder on the master in a loop and the file name be a variable so that the file type (/Preferences/${variable}) would be the correct destination? On Tuesday, September 23, 2014 8:49:10 AM UTC-5, jcbollinger wrote: > > > > On Monday, September 22, 2014 4:51:38 PM UTC-5, aar...@gmail.com wrote: >> >> I did the following to see if it would work, and I got (for me anyway) a >> surprising result. It may be the source of some of my confusion and reason >> why I'm finding this so difficult. Note, I don't want to do this this way. >> I just did it as an experiment. >> >> define mac_managed_preferences ($source) { >> include managed_preferences >> >> file { "/System/Library/User >> Template/English.lproj/Library/Preferences/${source}" : >> source => "puppet:///modules/${source}/Preferences/", >> owner => "root", >> group => "wheel", >> mode => "600", >> recurse => "true", >> } >> >> exec { "Move Preferences": >> command => "mv $source/* ../Preferences/", >> path => "/bin", >> cwd => "/System/Library/User >> Template/English.lproj/Library/Preferences/", >> require => File["/System/Library/User >> Template/English.lproj/Library/Preferences/${source}"], >> } >> >> exec { "Delete Folder": >> command => "rm -rf $source", >> path => "/bin/", >> cwd => "/System/Library/User >> Template/English.lproj/Library/Preferences/", >> require => Exec["Move Preferences"], >> >> } >> } >> >> Here is the relevant portion of the module that installs the application. >> >> mac_managed_preferences { "$module_name": >> source => "$module_name", >> } >> >> >> I got an error: Duplicate declaration [Move Preferences] is already >> declared in file (path to managed_preferences file) cannot redeclare at >> (path to same file). In my previous posts I said that I though that I >> accessed the module multiple times, but declared it once, but this message >> is making me understand that puppet says I was declaring it multiple times, >> but I am unsure how. >> > > > Multiple declaration is not about how many times a resource appears in > your manifests files; it is about how many times it appears in the > *catalog* built from the manifests. Every instance of a defined type > added to the catalog carries a declaration of each resource declared in the > type definition's body. Each declaration of a defined type creates a > separate instance. E.g. > > # two instances of defined type > # my_module::my_type: > my_module::my_type { 'foo': } > my_module::my_type { 'bar': } > > That's why I said earlier that "defined type instances must declare only > resources that wholly belong to them; they must not not declare shared > resources". Let me now augment that by pointing out that any resource that > is not specific to a defined-type instance cannot wholly belong to that > instance, at least when multiple instances of the type are declared. > > > John > > -- 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/5e108b5c-a7fa-4fa1-9881-67c9cbabe2bc%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.