Thank you for your reply :) The head of the code would need something like this:
$server = "nfs-server.domain.com" $prefix = "/our/prefix" # Arrays to iterate over, which would be a little longer than this $proddirs = [ "201201", "201202", "201203" ] $testdirs = [ "201201", "201202", "201203" ] $devdirs = [ "201201", "201202", "201203" ] $nfsopts = "tcp,hard,intr,rw,bg" By "iterate" I meant to work through a specific array, such as above. Reading through the Mount part of the docs, I don't believe that "absent" will remove the actual directory point, it says: "Set it to absent to unmount (if necessary) and remove the filesystem from the fstab" So I would handle that by running another iteration over an array for each section that would have a routine to make sure it's "absent" and then also rmdir the entry in the filesystem. I'm not understanding where the below is iterating or over where... as $name would need to be defined somehow. Thanks! On Tuesday, September 25, 2012 5:09:15 AM UTC-4, Luke Bigum wrote: > > 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 > > puppet...@googlegroups.com<javascript:>. > > > To unsubscribe from this group, send email to > > puppet-users...@googlegroups.com <javascript:>. > > 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 > luke....@lmax.com <javascript:> | 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 view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/wCGS0RWvZFwJ. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.