Very new to Puppet. Tried various ways to do this and I'm not particularly
happy with any of them.
Say I have a common scripts file on my clients: /opt/local/scripts. I want
to store the master version of these files in a directory tree on my Puppet
Master. Something like this under the module's directory:
files/optLocalScripts
files/optLocalScripts/CentOS
files/optLocalScripts/Solaris/sparc
files/optLocalScripts/Solaris/x86
files/optLocalScripts/Common
The idea is that we just have to drop the file in the correct directory,
and it will get copied out the the clients' /opt/local/scripts directory.
Scripts or binaries that are only appropriate for Solaris sparc clients get
put in files/optLocalScripts/Solaris/sparc, etc., etc., and the
files/optLocalScripts/Common is for scripts that will run on any platform
and thus should be copied to all the clients.
So now if I could write a class that would make proper use of this
organized directory structure on the Master, that'd be great. I try to use
the file resource with "recuse => true". Works great for one of the above
sources. If I pass an array of all those source directories to the file
resource, it only uses the first directory in the array:
file { '/opt/local/scripts':
ensure => "present",
#owner => "root",
#group => "root",
#mode => 0755,
recurse => true,
source => ["puppet:///modules/commonScripts/optLocalScripts/Common",
"puppet:///modules/uts_scripts/optLocalScripts/${operatingsystem}",
"puppet:///modules/uts_scripts/optLocalScripts/${operatingsystem}/${hardwareisa}"],
}
In the above example, only the files in my Common directory get copied to
the clients. Another problem with using this approach is that I cannot
specify owner or group or any other attributes, or all the other unmanaged
files on the clients in /opt/local/scripts get changed. I just want to
mange the files that I have in the directory structure on the master, not
other files that may exist on the client.
I can't have a separate File resource for each of my Source directories
either. Why not? Because they would all be named the same:
'/opt/local/scripts'.
Okay so it seems that I must then list each file that I wish to manage in
my class, in addition to keeping the copies on the Master updated. I was
hoping to only have to do the latter. Looking for suggestions.
(Hope I explained this clearly.)
--
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 post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users.
For more options, visit https://groups.google.com/groups/opt_out.