On Mon, Feb 27, 2012 at 1:17 PM, Mohamed Lrhazi <[email protected]> wrote:
> From my ENC, I return something like, for a given node:
>
> nfs_mounts:
> - [/data, fas3319-518.example.com:/vol/crddb_data/test]
>
> and in my manifests I added:
>
> define mount_nfs_shares() {
> $mount_point = $name[0]
> $mount_device = $name[1]
$name is not an array, but rather just the resource title, so you
can't do this, you need to pass parameters to the define such as:
define mount_nfs(
$mount_point = $name,
$mount_device
) {
...
}
This is now a resource which can be declared as:
mount_nfs { '/data':
mount_device => 'fas3319-518.example.com:/vol/crddb_data/test',
}
> notice("mount_point: ",$mount_point)
> notice("mount_device: ",$mount_device)
>
> file{ $mout_point: ensure => directory }
> mount { $mount_point:
> device => $mount_device,
> name => $mount_point,
> require => File[$mount_point],
> }
> }
> mount_nfs_shares { $nfs_mounts: }
>
> This results in error:
>
>
> Feb 27 16:10:07 pirates puppet-master[16073]: [daemon.err] Could not
> find node 'nodename.example.com'; cannot compile
>
> The idea of course is for me to be able to specify for each node, in
> my ENC, a list of NFS mount it needs, and have the corresponding
> puppet resources created and compiled for each.
>
> Why is this not working? And what would be better way of achieve my goal?
Defines are resources, you can not pass resources via ENC. You have
two options, create a class that passes the options, or in your
example, I think you are looking for something like create_resources
function and pass the resources hash to create mount
Thanks,
Nan
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.