Hi Forrie,

With regards to your iteration question, you would need to use a defined type, something like this (untested):

define nfs_mount ( $server, $prefix, $state = "mounted" ) {
    $mount_point = "${prefix}/${name}"

    #If the state is "unmounted" the mount point 'File' is removed
    file { $mount_point:
        ensure => $state ? {
            "unmounted" => absent,
            "absent" => absent,
            default => present,
        }
    }

    mount { $mount_point:
        ensure => $state,
        device => "{$server}:${mount_point}",
    }
}

nfs_mount { $production: server => $server, prefix => $prefix}

See the documentation for the Mount type in Puppet and it's ensure parameter for possible values for $state in the define above - it's possible to have entries in /etc/fstab but not actually mounted, which should satisfy your two stage cleanup, or you can just set $state to 'absent' straight away and clean up the both NFS mount and mount point. This means you need to maintain two arrays: one of active mount points and one of decomissioned mounts, however you probably don't need to keep the decomissioned mounts around for ever, once every server has cleaned themselves up they can be removed from the manifest.

http://docs.puppetlabs.com/references/latest/type.html#mount

Hope that helps,

-Luke

On 24/09/12 23:43, Forrie wrote:
I have many systems that require NFS mounts for production. Rather than have one entry of file{} and mount{} per NFS import, in a *.pp file, I'd rather set up and iterate over an array. Looking at the docs, I'm not quite sure how to do this properly. We have three groups for which I would need this (production, development, test) that each have their own NFS mounts.

here's what I would use:

$server = "server.name.com"
$prefix = "/some/nfs/root"

# array
production = [
              "dir1",
              "dir2",
              "dir3",
              "dir4",
] # etc etc

Then issue a command to iterate and manage those NFS mounts.

Since these change from time-to-time, and require some pruning... I will be left with "unmanaged" resources (ie: directory mount points) scattered around that I will need to clean up. I read through some tickets for feature requests and got lost in where this is going -- however, to keep the place neat and clean, I'd like to unmanage the mount points and the fstab entries after. The idea of manually doing this from system to system isn't good.

I'm still new-ish to puppet, so any pointers would be appreciated.


Thanks.


--
You received this message because you are subscribed to the Google Groups "Puppet Users" group. To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/MQ9gniWF4gUJ.
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.


--
Luke Bigum
Senior Systems Engineer

Information Systems
Ph: +44 (0) 20 3192 2520
[email protected] | http://www.lmax.com
LMAX, Yellow Building, 1A Nicholas Road, London W11 4AN


FX and CFDs are leveraged products that can result in losses exceeding
your deposit.  They are not suitable for everyone so please ensure you
fully understand the risks involved.  The information in this email is not
directed at residents of the United States of America or any other
jurisdiction where trading in CFDs and/or FX is restricted or prohibited
by local laws or regulations.

The information in this email and any attachment is confidential and is
intended only for the named recipient(s). The email may not be disclosed
or used by any person other than the addressee, nor may it be copied in
any way. If you are not the intended recipient please notify the sender
immediately and delete any copies of this message. Any unauthorised
copying, disclosure or distribution of the material in this e-mail is
strictly forbidden.

LMAX operates a multilateral trading facility. Authorised and regulated by the Financial Services Authority (firm registration number 509778) and is registered in England and Wales (number 06505809). Our registered address is Yellow Building, 1A Nicholas Road, London, W11
4AN.

--
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.

Reply via email to