You can fake interation. "$name" is a free variable for whatever you're
passing in. I have NOT tested this, but it might look something like this:
define my_mounts {
mount { "/home/$name":
>
> device => "our-thumper.domain.com:/export/$name",
atboot => yes,
fstype => "nfs",
options => "tcp,hard,intr,rw,bg",
name => "/home/$name",
ensure => mounted,
remounts => true,
pass => "0",
require => File["/home/$name"],
}
>
>
}
Then call it with:
my_mounts { $mounts: }
On Wed, Aug 21, 2013 at 2:39 PM, Forrie <[email protected]> wrote:
> I have several NFS mounts to manage, on many systems. On each system, I
> must ensure that the root directory and path exist and have the correct
> permissions beforehand, then ensure they are mounted in Puppet.
>
> For each, I would normally do:
>
> file { "/home/directory1":
>>
>> ensure => directory,
>>
>> owner => "user",
>>
>> group => "group",
>>
>> mode => "755",
>>
>> }
>>
>>
>>> mount { "/home/directory1":
>>
>> device => "our-thumper.domain.com:/export/directory1",
>>
>> atboot => yes,
>>
>> fstype => "nfs",
>>
>> options => "tcp,hard,intr,rw,bg",
>>
>> name => "/home/directory1",
>>
>> ensure => mounted,
>>
>> remounts => true,
>>
>> pass => "0",
>>
>> require => File["/home/directory1"],
>>
>> }
>>
>>
>
> which isn't very efficient when you have a ton of them to mange.
>
> It doesn't appear that Puppet can iterate through an array, but could I do
> something like:
>
> file { "/home/directory1", "/home/directory2", "/home/directory3":
>
> but requiring this File will be a problem in the "mount" pass.
>
> Perhaps a template?
>
> How are others solving this sort of problem? For me, it would be a lot
> easier (and more readable) if we could maintain an array at the top of the
> rules that contained either the full patch or the basename, then iterate
> through them.
>
>
>
> _F
>
>
>
> --
> 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.
>
--
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.